Message ID | 20210715191141.430307-1-linus.walleij@linaro.org |
---|---|
State | New |
Headers | show |
Series | [1/3,v6] gpio: pcf857x: Name instance after dev_name() | expand |
On Thu, Jul 15, 2021 at 9:13 PM Linus Walleij <linus.walleij@linaro.org> wrote: > > Put the label on this gpio_chip from the dev_name() instead of > the client name. > > The client name will be pcf8574 etc for all instances even if > there are several chips on a system. > > This manifests on the DaVinci DM6467 (non-devicetree) which > will contain 3 different pcf8574 devices that as a result cannot > be told apart because they are all named "pcf8574", affecting > the GPIO descriptor tables which need a unique label per chip. > > By passing in .dev_name in the struct i2c_board_info we can > explicitly name each instance and use that to discern the chips > when using board files. > > Cc: Sekhar Nori <nsekhar@ti.com> > Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com> > Signed-off-by: Linus Walleij <linus.walleij@linaro.org> > --- > ChangeLog v5->v6: > - Rebase on v5.14-rc1 > ChangeLog ->v5: > - New patch to deal with the chip label > --- > drivers/gpio/gpio-pcf857x.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/gpio/gpio-pcf857x.c b/drivers/gpio/gpio-pcf857x.c > index b7568ee33696..2271ec86e414 100644 > --- a/drivers/gpio/gpio-pcf857x.c > +++ b/drivers/gpio/gpio-pcf857x.c > @@ -311,7 +311,7 @@ static int pcf857x_probe(struct i2c_client *client, > if (status < 0) > goto fail; > > - gpio->chip.label = client->name; > + gpio->chip.label = dev_name(&client->dev); > > gpio->client = client; > i2c_set_clientdata(client, gpio); > -- > 2.31.1 > Reviewed-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
diff --git a/drivers/gpio/gpio-pcf857x.c b/drivers/gpio/gpio-pcf857x.c index b7568ee33696..2271ec86e414 100644 --- a/drivers/gpio/gpio-pcf857x.c +++ b/drivers/gpio/gpio-pcf857x.c @@ -311,7 +311,7 @@ static int pcf857x_probe(struct i2c_client *client, if (status < 0) goto fail; - gpio->chip.label = client->name; + gpio->chip.label = dev_name(&client->dev); gpio->client = client; i2c_set_clientdata(client, gpio);
Put the label on this gpio_chip from the dev_name() instead of the client name. The client name will be pcf8574 etc for all instances even if there are several chips on a system. This manifests on the DaVinci DM6467 (non-devicetree) which will contain 3 different pcf8574 devices that as a result cannot be told apart because they are all named "pcf8574", affecting the GPIO descriptor tables which need a unique label per chip. By passing in .dev_name in the struct i2c_board_info we can explicitly name each instance and use that to discern the chips when using board files. Cc: Sekhar Nori <nsekhar@ti.com> Cc: Bartosz Golaszewski <bgolaszewski@baylibre.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> --- ChangeLog v5->v6: - Rebase on v5.14-rc1 ChangeLog ->v5: - New patch to deal with the chip label --- drivers/gpio/gpio-pcf857x.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.31.1