diff mbox

[v1,4/4] leds: no longer use unnamed gpios

Message ID 1420621722-7428-5-git-send-email-oliver+list@schinagl.nl
State New, archived
Headers show

Commit Message

Olliver Schinagl Jan. 7, 2015, 9:08 a.m. UTC
From: Olliver Schinagl <oliver@schinagl.nl>

The gpio document says we should not use unnamed bindings for gpios.
This patch uses the 'led-' prefix to the gpios and updates code and
documents. Because the devm_get_gpiod_from_child() falls back to using
old-style unnamed gpios, we can update the code first, and update
dts files as time allows.

Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
---
 Documentation/devicetree/bindings/leds/leds-gpio.txt | 12 ++++++------
 drivers/leds/leds-gpio.c                             |  2 +-
 2 files changed, 7 insertions(+), 7 deletions(-)

Comments

Dmitry Torokhov Jan. 7, 2015, 11:55 p.m. UTC | #1
On Wed, Jan 07, 2015 at 10:08:42AM +0100, Olliver Schinagl wrote:
> From: Olliver Schinagl <oliver@schinagl.nl>
> 
> The gpio document says we should not use unnamed bindings for gpios.
> This patch uses the 'led-' prefix to the gpios and updates code and
> documents. Because the devm_get_gpiod_from_child() falls back to using
> old-style unnamed gpios, we can update the code first, and update
> dts files as time allows.
> 
> Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
> ---
>  Documentation/devicetree/bindings/leds/leds-gpio.txt | 12 ++++++------
>  drivers/leds/leds-gpio.c                             |  2 +-
>  2 files changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/leds/leds-gpio.txt b/Documentation/devicetree/bindings/leds/leds-gpio.txt
> index d544cf1..2c138cc 100644
> --- a/Documentation/devicetree/bindings/leds/leds-gpio.txt
> +++ b/Documentation/devicetree/bindings/leds/leds-gpio.txt
> @@ -7,7 +7,7 @@ Each LED is represented as a sub-node of the gpio-leds device.  Each
>  node's name represents the name of the corresponding LED.
>  
>  LED sub-node properties:
> -- gpios :  Should specify the LED's GPIO, see "gpios property" in
> +- led-gpios :  Should specify the LED's GPIO, see "gpios property" in
>    Documentation/devicetree/bindings/gpio/gpio.txt.  Active low LEDs should be
>    indicated using flags in the GPIO specifier.
>  - label :  (optional)
> @@ -32,12 +32,12 @@ leds {
>  	compatible = "gpio-leds";
>  	hdd {
>  		label = "IDE Activity";
> -		gpios = <&mcu_pio 0 GPIO_ACTIVE_LOW>;
> +		led-gpios = <&mcu_pio 0 GPIO_ACTIVE_LOW>;
>  		linux,default-trigger = "ide-disk";
>  	};
>  
>  	fault {
> -		gpios = <&mcu_pio 1 GPIO_ACTIVE_HIGH>;
> +		led-gpios = <&mcu_pio 1 GPIO_ACTIVE_HIGH>;
>  		/* Keep LED on if BIOS detected hardware fault */
>  		default-state = "keep";
>  	};
> @@ -46,11 +46,11 @@ leds {
>  run-control {
>  	compatible = "gpio-leds";
>  	red {
> -		gpios = <&mpc8572 6 GPIO_ACTIVE_HIHG>;
> +		led-gpios = <&mpc8572 6 GPIO_ACTIVE_HIHG>;
>  		default-state = "off";
>  	};
>  	green {
> -		gpios = <&mpc8572 7 GPIO_ACTIVE_HIGH>;
> +		led-gpios = <&mpc8572 7 GPIO_ACTIVE_HIGH>;
>  		default-state = "on";
>  	};
>  };
> @@ -59,7 +59,7 @@ leds {
>  	compatible = "gpio-leds";
>  
>  	charger-led {
> -		gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
> +		led-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
>  		linux,default-trigger = "max8903-charger-charging";
>  		retain-state-suspended;
>  	};
> diff --git a/drivers/leds/leds-gpio.c b/drivers/leds/leds-gpio.c
> index 8e5af69..5b7bc84 100644
> --- 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".

Thanks.
Olliver Schinagl Jan. 8, 2015, 8:45 a.m. UTC | #2
Hey Dmitry,

On 08-01-15 00:55, Dmitry Torokhov wrote:
> On Wed, Jan 07, 2015 at 10:08:42AM +0100, Olliver Schinagl wrote:
>> From: Olliver Schinagl <oliver@schinagl.nl>
>>
>> The gpio document says we should not use unnamed bindings for gpios.
>> This patch uses the 'led-' prefix to the gpios and updates code and
>> documents. Because the devm_get_gpiod_from_child() falls back to using
>> old-style unnamed gpios, we can update the code first, and update
>> dts files as time allows.
>>
>> Signed-off-by: Olliver Schinagl <oliver@schinagl.nl>
>> ---
>>   Documentation/devicetree/bindings/leds/leds-gpio.txt | 12 ++++++------
>>   drivers/leds/leds-gpio.c                             |  2 +-
>>   2 files changed, 7 insertions(+), 7 deletions(-)
>>
>> diff --git a/Documentation/devicetree/bindings/leds/leds-gpio.txt b/Documentation/devicetree/bindings/leds/leds-gpio.txt
>> index d544cf1..2c138cc 100644
>> --- a/Documentation/devicetree/bindings/leds/leds-gpio.txt
>> +++ b/Documentation/devicetree/bindings/leds/leds-gpio.txt
>> @@ -7,7 +7,7 @@ Each LED is represented as a sub-node of the gpio-leds device.  Each
>>   node's name represents the name of the corresponding LED.
>>   
>>   LED sub-node properties:
>> -- gpios :  Should specify the LED's GPIO, see "gpios property" in
>> +- led-gpios :  Should specify the LED's GPIO, see "gpios property" in
>>     Documentation/devicetree/bindings/gpio/gpio.txt.  Active low LEDs should be
>>     indicated using flags in the GPIO specifier.
>>   - label :  (optional)
>> @@ -32,12 +32,12 @@ leds {
>>   	compatible = "gpio-leds";
>>   	hdd {
>>   		label = "IDE Activity";
>> -		gpios = <&mcu_pio 0 GPIO_ACTIVE_LOW>;
>> +		led-gpios = <&mcu_pio 0 GPIO_ACTIVE_LOW>;
>>   		linux,default-trigger = "ide-disk";
>>   	};
>>   
>>   	fault {
>> -		gpios = <&mcu_pio 1 GPIO_ACTIVE_HIGH>;
>> +		led-gpios = <&mcu_pio 1 GPIO_ACTIVE_HIGH>;
>>   		/* Keep LED on if BIOS detected hardware fault */
>>   		default-state = "keep";
>>   	};
>> @@ -46,11 +46,11 @@ leds {
>>   run-control {
>>   	compatible = "gpio-leds";
>>   	red {
>> -		gpios = <&mpc8572 6 GPIO_ACTIVE_HIHG>;
>> +		led-gpios = <&mpc8572 6 GPIO_ACTIVE_HIHG>;
>>   		default-state = "off";
>>   	};
>>   	green {
>> -		gpios = <&mpc8572 7 GPIO_ACTIVE_HIGH>;
>> +		led-gpios = <&mpc8572 7 GPIO_ACTIVE_HIGH>;
>>   		default-state = "on";
>>   	};
>>   };
>> @@ -59,7 +59,7 @@ leds {
>>   	compatible = "gpio-leds";
>>   
>>   	charger-led {
>> -		gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
>> +		led-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
>>   		linux,default-trigger = "max8903-charger-charging";
>>   		retain-state-suspended;
>>   	};
>> diff --git a/drivers/leds/leds-gpio.c b/drivers/leds/leds-gpio.c
>> index 8e5af69..5b7bc84 100644
>> --- 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 ;)

Olliver
>
> Thanks.
>

--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Rob Herring Jan. 8, 2015, 2:40 p.m. UTC | #3
On Thu, Jan 8, 2015 at 2:45 AM, Olliver Schinagl <oliver@schinagl.nl> wrote:
> Hey Dmitry,
>
>
> On 08-01-15 00:55, Dmitry Torokhov wrote:
>>
>> On Wed, Jan 07, 2015 at 10:08:42AM +0100, Olliver Schinagl wrote:
>>>
>>> From: Olliver Schinagl <oliver@schinagl.nl>
>>>
>>> The gpio document says we should not use unnamed bindings for gpios.
>>> This patch uses the 'led-' prefix to the gpios and updates code and
>>> documents. Because the devm_get_gpiod_from_child() falls back to using
>>> old-style unnamed gpios, we can update the code first, and update
>>> dts files as time allows.

[...]

>>> --- 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.

Rob
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Dmitry Torokhov Jan. 8, 2015, 10:12 p.m. UTC | #4
On Thu, Jan 08, 2015 at 08:40:20AM -0600, Rob Herring wrote:
> On Thu, Jan 8, 2015 at 2:45 AM, Olliver Schinagl <oliver@schinagl.nl> wrote:
> > Hey Dmitry,
> >
> >
> > On 08-01-15 00:55, Dmitry Torokhov wrote:
> >>
> >> On Wed, Jan 07, 2015 at 10:08:42AM +0100, Olliver Schinagl wrote:
> >>>
> >>> From: Olliver Schinagl <oliver@schinagl.nl>
> >>>
> >>> The gpio document says we should not use unnamed bindings for gpios.
> >>> This patch uses the 'led-' prefix to the gpios and updates code and
> >>> documents. Because the devm_get_gpiod_from_child() falls back to using
> >>> old-style unnamed gpios, we can update the code first, and update
> >>> dts files as time allows.
> 
> [...]
> 
> >>> --- 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.

Thanks.
Linus Walleij Jan. 14, 2015, 12:45 p.m. UTC | #5
On Thu, Jan 8, 2015 at 11:12 PM, Dmitry Torokhov
<dmitry.torokhov@gmail.com> wrote:
> On Thu, Jan 08, 2015 at 08:40:20AM -0600, Rob Herring wrote:
>> On Thu, Jan 8, 2015 at 2:45 AM, Olliver Schinagl <oliver@schinagl.nl> wrote:

>> >>> --- 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.

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Olliver Schinagl Jan. 14, 2015, 1:20 p.m. UTC | #6
On 14-01-15 13:45, Linus Walleij wrote:
> On Thu, Jan 8, 2015 at 11:12 PM, Dmitry Torokhov
> <dmitry.torokhov@gmail.com> wrote:
>> On Thu, Jan 08, 2015 at 08:40:20AM -0600, Rob Herring wrote:
>>> On Thu, Jan 8, 2015 at 2:45 AM, Olliver Schinagl <oliver@schinagl.nl> wrote:
>>>>>> --- 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?

Olliver
>
> Yours,
> Linus Walleij

--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Alexandre Courbot Jan. 19, 2015, 3:43 a.m. UTC | #7
On Wed, Jan 14, 2015 at 10:20 PM, Olliver Schinagl <oliver@schinagl.nl> wrote:
>
> On 14-01-15 13:45, Linus Walleij wrote:
>>
>> On Thu, Jan 8, 2015 at 11:12 PM, Dmitry Torokhov
>> <dmitry.torokhov@gmail.com> wrote:
>>>
>>> On Thu, Jan 08, 2015 at 08:40:20AM -0600, Rob Herring wrote:
>>>>
>>>> On Thu, Jan 8, 2015 at 2:45 AM, Olliver Schinagl <oliver@schinagl.nl>
>>>> wrote:
>>>>>>>
>>>>>>> --- 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.
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Alexandre Courbot Jan. 19, 2015, 4:09 a.m. UTC | #8
On Mon, Jan 19, 2015 at 12:43 PM, Alexandre Courbot <gnurou@gmail.com> wrote:
> On Wed, Jan 14, 2015 at 10:20 PM, Olliver Schinagl <oliver@schinagl.nl> wrote:
>>
>> On 14-01-15 13:45, Linus Walleij wrote:
>>>
>>> On Thu, Jan 8, 2015 at 11:12 PM, Dmitry Torokhov
>>> <dmitry.torokhov@gmail.com> wrote:
>>>>
>>>> On Thu, Jan 08, 2015 at 08:40:20AM -0600, Rob Herring wrote:
>>>>>
>>>>> On Thu, Jan 8, 2015 at 2:45 AM, Olliver Schinagl <oliver@schinagl.nl>
>>>>> wrote:
>>>>>>>>
>>>>>>>> --- 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).
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/Documentation/devicetree/bindings/leds/leds-gpio.txt b/Documentation/devicetree/bindings/leds/leds-gpio.txt
index d544cf1..2c138cc 100644
--- a/Documentation/devicetree/bindings/leds/leds-gpio.txt
+++ b/Documentation/devicetree/bindings/leds/leds-gpio.txt
@@ -7,7 +7,7 @@  Each LED is represented as a sub-node of the gpio-leds device.  Each
 node's name represents the name of the corresponding LED.
 
 LED sub-node properties:
-- gpios :  Should specify the LED's GPIO, see "gpios property" in
+- led-gpios :  Should specify the LED's GPIO, see "gpios property" in
   Documentation/devicetree/bindings/gpio/gpio.txt.  Active low LEDs should be
   indicated using flags in the GPIO specifier.
 - label :  (optional)
@@ -32,12 +32,12 @@  leds {
 	compatible = "gpio-leds";
 	hdd {
 		label = "IDE Activity";
-		gpios = <&mcu_pio 0 GPIO_ACTIVE_LOW>;
+		led-gpios = <&mcu_pio 0 GPIO_ACTIVE_LOW>;
 		linux,default-trigger = "ide-disk";
 	};
 
 	fault {
-		gpios = <&mcu_pio 1 GPIO_ACTIVE_HIGH>;
+		led-gpios = <&mcu_pio 1 GPIO_ACTIVE_HIGH>;
 		/* Keep LED on if BIOS detected hardware fault */
 		default-state = "keep";
 	};
@@ -46,11 +46,11 @@  leds {
 run-control {
 	compatible = "gpio-leds";
 	red {
-		gpios = <&mpc8572 6 GPIO_ACTIVE_HIHG>;
+		led-gpios = <&mpc8572 6 GPIO_ACTIVE_HIHG>;
 		default-state = "off";
 	};
 	green {
-		gpios = <&mpc8572 7 GPIO_ACTIVE_HIGH>;
+		led-gpios = <&mpc8572 7 GPIO_ACTIVE_HIGH>;
 		default-state = "on";
 	};
 };
@@ -59,7 +59,7 @@  leds {
 	compatible = "gpio-leds";
 
 	charger-led {
-		gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
+		led-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>;
 		linux,default-trigger = "max8903-charger-charging";
 		retain-state-suspended;
 	};
diff --git a/drivers/leds/leds-gpio.c b/drivers/leds/leds-gpio.c
index 8e5af69..5b7bc84 100644
--- 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);
 		if (IS_ERR(led.gpiod)) {
 			fwnode_handle_put(child);
 			goto err;