[PATCH 2/6] gpio: Introduce gpio descriptor 'name'

Linus Walleij linus.walleij at linaro.org
Mon Aug 10 02:37:06 PDT 2015


On Tue, Aug 4, 2015 at 11:23 AM, Markus Pargmann <mpa at pengutronix.de> wrote:

> The latest gpio hogging mechanism assigns each gpio a 'line-name' in the
> devicetree. The 'name' field is different from the 'label' field.
> 'label' is only used for requested GPIOs to describe its current use by
> driver or userspace.
>
> The 'name' field describes the GPIO itself, not the use. This is most
> likely identical to the label in the schematic on the GPIO line and
> should help to find this particular GPIO.
>
> This patch adds a helper function to find gpio descriptors by name
> instead of gpio number.
>
> Signed-off-by: Markus Pargmann <mpa at pengutronix.de>

Oh I realized there is a big problem with this.

struct gpio_chip already contains this:

        const char              *const *names;

Now it seems like names can be stored in two places:
in an array in the gpio_chip and in a name tag in struct
gpio_desc.

So how do we handle this?

I guess we need to keep just *one* of them, so maybe remove
the names array from the struct gpio_chip and add a helper function
that sets the names on the descs for the lines like:

int gpiochip_set_names(struct gpio_chip *gc, const char * const names);

And then refactor all code and chips that use the old names
array to use this instead. I don't think they are too many, really.

(Maybe I got it all wrong, hammer me down, it is monday.)

Yours,
Linus Walleij



More information about the linux-arm-kernel mailing list