[PATCH 2/6] gpio: Introduce gpio descriptor 'name'
From: Linus Walleij <hidden>
Date: 2015-08-10 09:37:07
Also in:
linux-gpio
On Tue, Aug 4, 2015 at 11:23 AM, Markus Pargmann [off-list ref] 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 <redacted>
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