Re: [PATCH v3 08/10] gpio: mockup: pass the chip label as device property

From: Andy Shevchenko
Date: Tue Sep 29 2020 - 06:53:57 EST


On Tue, Sep 29, 2020 at 12:10:02PM +0200, Bartosz Golaszewski wrote:
> From: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx>
>
> While we do check the "chip-name" property in probe(), we never actually
> use it. Let's pass the chip label to the driver using device properties
> as we'll want to allow users to define their own once dynamically
> created chips are supported.
>
> The property is renamed to "chip-label" to not cause any confusion with
> the actual chip name which is of the form: "gpiochipX".
>
> If the "chip-label" property is missing, let's do what most devices in
> drivers/gpio/ do and use dev_name().

Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>

> Signed-off-by: Bartosz Golaszewski <bgolaszewski@xxxxxxxxxxxx>
> ---
> drivers/gpio/gpio-mockup.c | 17 ++++++++---------
> 1 file changed, 8 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/gpio/gpio-mockup.c b/drivers/gpio/gpio-mockup.c
> index 856ba5da1e8c..1466f480aacd 100644
> --- a/drivers/gpio/gpio-mockup.c
> +++ b/drivers/gpio/gpio-mockup.c
> @@ -429,21 +429,14 @@ static int gpio_mockup_probe(struct platform_device *pdev)
> if (rv)
> return rv;
>
> - rv = device_property_read_string(dev, "chip-name", &name);
> + rv = device_property_read_string(dev, "chip-label", &name);
> if (rv)
> - name = NULL;
> + name = dev_name(dev);
>
> chip = devm_kzalloc(dev, sizeof(*chip), GFP_KERNEL);
> if (!chip)
> return -ENOMEM;
>
> - if (!name) {
> - name = devm_kasprintf(dev, GFP_KERNEL,
> - "%s-%c", pdev->name, pdev->id + 'A');
> - if (!name)
> - return -ENOMEM;
> - }
> -
> mutex_init(&chip->lock);
>
> gc = &chip->gc;
> @@ -523,6 +516,7 @@ static int __init gpio_mockup_init(void)
> int i, prop, num_chips, err = 0, base;
> struct platform_device_info pdevinfo;
> struct platform_device *pdev;
> + char chip_label[32];
> u16 ngpio;
>
> if ((gpio_mockup_num_ranges < 2) ||
> @@ -556,6 +550,11 @@ static int __init gpio_mockup_init(void)
> memset(&pdevinfo, 0, sizeof(pdevinfo));
> prop = 0;
>
> + snprintf(chip_label, sizeof(chip_label),
> + "gpio-mockup-%c", i + 'A');
> + properties[prop++] = PROPERTY_ENTRY_STRING("chip-label",
> + chip_label);
> +
> base = gpio_mockup_range_base(i);
> if (base >= 0)
> properties[prop++] = PROPERTY_ENTRY_U32("gpio-base",
> --
> 2.26.1
>

--
With Best Regards,
Andy Shevchenko