Re: [PATCH v1 4/4] leds: no longer use unnamed gpios
From: Alexandre Courbot <hidden>
Date: 2015-01-19 04:09:37
Also in:
linux-devicetree, linux-gpio, linux-leds, lkml
On Mon, Jan 19, 2015 at 12:43 PM, Alexandre Courbot [off-list ref] wrote:
On Wed, Jan 14, 2015 at 10:20 PM, Olliver Schinagl [off-list ref] wrote:quoted
On 14-01-15 13:45, Linus Walleij wrote:quoted
On Thu, Jan 8, 2015 at 11:12 PM, Dmitry Torokhov [off-list ref] wrote:quoted
On Thu, Jan 08, 2015 at 08:40:20AM -0600, Rob Herring wrote:quoted
On Thu, Jan 8, 2015 at 2:45 AM, Olliver Schinagl [off-list ref] wrote:quoted
quoted
quoted
--- a/drivers/leds/leds-gpio.c +++ b/drivers/leds/leds-gpio.c@@ -184,7 +184,7 @@ static struct gpio_leds_priv*gpio_leds_create(struct platform_device *pdev) struct gpio_led led = {}; const char *state = NULL; - led.gpiod = devm_get_gpiod_from_child(dev, NULL, child); + led.gpiod = devm_get_gpiod_from_child(dev, "led", child);Would not this break existing boards using old bindings? You need to handle both cases: if you can't located "led-gpios" then you will have to try just "gpios".Very true. I was rather even hoping we could update all bindings, I don't mind going through the available dts files to fix them ... But need to know that that's the proper way to go before doing the work ;)That will not work. You cannot make changes that require a new dtb with a new kernel. This would also break for the other way around (i.e. a new dtb and old kernel). You would have to search for both led-gpios and gpios. I'm not sure if we can do that generically for all GPIOs. If you had a node with both "blah-gpios" and "gpios", it would break. I would hope there are no such cases like that. We also now have to consider how ACPI identifies GPIOs and whether this makes sense.I think only the driver itself can know about such "legacy" mappings and make a decision.Yeah leds-gpio.c will need to be patched to check for "led-gpios" first and then fall back to "gpios" if not found.yeah I've done the work, just need to double check it and resend a v2. Linus, I assume you want the already applied patches omitted from v2?Yes, please base new revisions on Linus' devel branch, omitting any patches that he has already accepted.
Actually on top of breaking backward compatibility, I think the case of LED GPIOs is one of thoses where it makes sense to not have a name (the GPIO usage is obvious from the DT hierarchy, and there cannot be another one). So I don't feel like this change is really needed (other patches in this series are still useful though).