Message ID | 20201005203451.9985-11-post@lespocky.de |
---|---|
State | Superseded |
Headers | show |
Series | leds: pwm: Make automatic labels work | expand |
Hello Alexander, On 10/5/20 10:34 PM, Alexander Dahl wrote: > The node names for devices using the pwm-leds driver follow a certain > naming scheme (now). Parent node name is not enforced, but recommended > by DT project. > > DTC arch/arm/boot/dts/stm32mp157c-lxa-mc1.dt.yaml > CHECK arch/arm/boot/dts/stm32mp157c-lxa-mc1.dt.yaml > /home/alex/build/linux/arch/arm/boot/dts/stm32mp157c-lxa-mc1.dt.yaml: led-rgb: 'led-blue', 'led-green', 'led-red' do not match any of the regexes: '^led(-[0-9a-f]+)?$', 'pinctrl-[0-9]+' > From schema: /home/alex/src/linux/leds/Documentation/devicetree/bindings/leds/leds-pwm.yaml > > Signed-off-by: Alexander Dahl <post@lespocky.de> Acked-by: Ahmad Fatoum <a.fatoum@pengutronix.de> But got two questions below: > --- > > Notes: > v6 -> v7: > * split up patch (one per sub arch) > * added actual warnings to commit message > > arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts b/arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts > index 5700e6b700d3..25d548cb975b 100644 > --- a/arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts > +++ b/arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts > @@ -36,34 +36,34 @@ > stdout-path = &uart4; > }; > > - led-act { > + led-controller-1 { > compatible = "gpio-leds"; > > - led-green { > + led-1 { > label = "mc1:green:act"; > gpios = <&gpioa 13 GPIO_ACTIVE_LOW>; > linux,default-trigger = "heartbeat"; > }; > }; > > - led-rgb { > + led-controller-2 { Is a single RGB LED really a controller? > compatible = "pwm-leds"; > > - led-red { > + led-2 { Shouldn't this have been led-1 as well or is the numbering "global" ? > label = "mc1:red:rgb"; > pwms = <&leds_pwm 1 1000000 0>; > max-brightness = <255>; > active-low; > }; > > - led-green { > + led-3 { > label = "mc1:green:rgb"; > pwms = <&leds_pwm 2 1000000 0>; > max-brightness = <255>; > active-low; > }; > > - led-blue { > + led-4 { > label = "mc1:blue:rgb"; > pwms = <&leds_pwm 3 1000000 0>; > max-brightness = <255>; >
Hello Ahmad, thanks for your feedback, comments below. On Tue, Oct 27, 2020 at 08:03:40AM +0100, Ahmad Fatoum wrote: > Hello Alexander, > > On 10/5/20 10:34 PM, Alexander Dahl wrote: > > The node names for devices using the pwm-leds driver follow a certain > > naming scheme (now). Parent node name is not enforced, but recommended > > by DT project. > > > > DTC arch/arm/boot/dts/stm32mp157c-lxa-mc1.dt.yaml > > CHECK arch/arm/boot/dts/stm32mp157c-lxa-mc1.dt.yaml > > /home/alex/build/linux/arch/arm/boot/dts/stm32mp157c-lxa-mc1.dt.yaml: led-rgb: 'led-blue', 'led-green', 'led-red' do not match any of the regexes: '^led(-[0-9a-f]+)?$', 'pinctrl-[0-9]+' > > From schema: /home/alex/src/linux/leds/Documentation/devicetree/bindings/leds/leds-pwm.yaml > > > > Signed-off-by: Alexander Dahl <post@lespocky.de> > > Acked-by: Ahmad Fatoum <a.fatoum@pengutronix.de> > > But got two questions below: > > > --- > > > > Notes: > > v6 -> v7: > > * split up patch (one per sub arch) > > * added actual warnings to commit message > > > > arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts | 12 ++++++------ > > 1 file changed, 6 insertions(+), 6 deletions(-) > > > > diff --git a/arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts b/arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts > > index 5700e6b700d3..25d548cb975b 100644 > > --- a/arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts > > +++ b/arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts > > @@ -36,34 +36,34 @@ > > stdout-path = &uart4; > > }; > > > > - led-act { > > + led-controller-1 { > > compatible = "gpio-leds"; > > > > - led-green { > > + led-1 { > > label = "mc1:green:act"; > > gpios = <&gpioa 13 GPIO_ACTIVE_LOW>; > > linux,default-trigger = "heartbeat"; > > }; > > }; > > > > - led-rgb { > > + led-controller-2 { > > Is a single RGB LED really a controller? I just followed the recommendations by Rob here. > > compatible = "pwm-leds"; > > > > - led-red { > > + led-2 { > > Shouldn't this have been led-1 as well or is the numbering "global" ? Also good question. This numbering is for dts only, it usually does not correspond with LEDs on the board, so it could be numbered per led-controller as well? Greets Alex > > > label = "mc1:red:rgb"; > > pwms = <&leds_pwm 1 1000000 0>; > > max-brightness = <255>; > > active-low; > > }; > > > > - led-green { > > + led-3 { > > label = "mc1:green:rgb"; > > pwms = <&leds_pwm 2 1000000 0>; > > max-brightness = <255>; > > active-low; > > }; > > > > - led-blue { > > + led-4 { > > label = "mc1:blue:rgb"; > > pwms = <&leds_pwm 3 1000000 0>; > > max-brightness = <255>; > > > > -- > Pengutronix e.K. | | > Steuerwalder Str. 21 | http://www.pengutronix.de/ | > 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | > Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
Hello, On 10/27/20 11:05 AM, Alexander Dahl wrote: > Hello Ahmad, > > thanks for your feedback, comments below. > >>> - led-rgb { >>> + led-controller-2 { >> >> Is a single RGB LED really a controller? > > I just followed the recommendations by Rob here. Do you happen to know if the new multicolor LED support could be used here? I find it unfortunate that the device tree loses information relevant to humans to adhere to a fixed nomenclature. Apparently led-controller isn't even codified in the YAML binding (It's just in the examples). If you respin, please add a comment that this is a single RGB led. I'd prefer to keep the information in the DTB as well though. > >>> compatible = "pwm-leds"; >>> >>> - led-red { >>> + led-2 { >> >> Shouldn't this have been led-1 as well or is the numbering "global" ? > > Also good question. This numbering is for dts only, it usually does > not correspond with LEDs on the board, so it could be numbered per > led-controller as well? I'd prefer that it starts by 1. That way it's aligned with PWM channel ID. Thanks for fixing the dtschema warnings by the way! Cheers, Ahmad > > Greets > Alex > >> >>> label = "mc1:red:rgb"; >>> pwms = <&leds_pwm 1 1000000 0>; >>> max-brightness = <255>; >>> active-low; >>> }; >>> >>> - led-green { >>> + led-3 { >>> label = "mc1:green:rgb"; >>> pwms = <&leds_pwm 2 1000000 0>; >>> max-brightness = <255>; >>> active-low; >>> }; >>> >>> - led-blue { >>> + led-4 { >>> label = "mc1:blue:rgb"; >>> pwms = <&leds_pwm 3 1000000 0>; >>> max-brightness = <255>; >>> >> >> -- >> Pengutronix e.K. | | >> Steuerwalder Str. 21 | http://www.pengutronix.de/ | >> 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | >> Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 | >
Hello Alexander, On 10/28/20 8:34 AM, Alexander Dahl wrote: > Hello Ahmad, > > Am Dienstag, 27. Oktober 2020, 11:58:10 CET schrieb Ahmad Fatoum: >> Hello, >> >> On 10/27/20 11:05 AM, Alexander Dahl wrote: >>> Hello Ahmad, >>> >>> thanks for your feedback, comments below. >>> >>>>> - led-rgb { >>>>> + led-controller-2 { >>>> >>>> Is a single RGB LED really a controller? >>> >>> I just followed the recommendations by Rob here. >> >> Do you happen to know if the new multicolor LED support could be used here? > > AFAIK not yet. The multicolor class should be ready and it is used by some > drivers for I²C connected LED controllers, but if I understood Pavel > correctly, additional work has to be done for a gpio and/or pwm multicolor > driver. See this thread from August for example: > > https://lore.kernel.org/linux-leds/2530787.iFCFyWWcSu@g550jk/ I see. Thanks for the info. >> I find it unfortunate that the device tree loses information relevant to >> humans to adhere to a fixed nomenclature. Apparently led-controller isn't >> even codified in the YAML binding (It's just in the examples). If you >> respin, please add a comment that this is a single RGB led. I'd prefer to >> keep the information in the DTB as well though. > > The "new" attributes 'function' and 'color' attributes should cover this > information. IIRC those were introduced sometime before v5.4 and documentation > is in the leds/common.yaml binding. I don't see it in the scope of this patch > series, but if we would merge this warning fix first, the information is lost, > so maybe those attributes should be added before? Does it? The label already says it's a green LED, but the information that it's a single physical LED 'bulb' is lost. > > My heuristics on that would be looking at the label and if there's a distinct > color in it, add the color property. I could do that for all pwm LEDs known to > the tree currently. That would be a bigger task for GPIO leds though. ;-) I would be ok with just the led-containing node hinting that it's a single RGB led. Cheers, Ahmad > >> >>>>> compatible = "pwm-leds"; >>>>> >>>>> - led-red { >>>>> + led-2 { >>>> >>>> Shouldn't this have been led-1 as well or is the numbering "global" ? >>> >>> Also good question. This numbering is for dts only, it usually does >>> not correspond with LEDs on the board, so it could be numbered per >>> led-controller as well? >> >> I'd prefer that it starts by 1. That way it's aligned with PWM channel >> ID. > > Ack. > >> >> Thanks for fixing the dtschema warnings by the way! > > Well, I "introduced" them by converting the leds-pwm binding to yaml (not > merged yet), so I could as well fix the warnings then? ;-) > > Greets > Alex > >> >> Cheers, >> Ahmad >> >>> Greets >>> Alex >>> >>>>> label = "mc1:red:rgb"; >>>>> pwms = <&leds_pwm 1 1000000 0>; >>>>> max-brightness = <255>; >>>>> active-low; >>>>> >>>>> }; >>>>> >>>>> - led-green { >>>>> + led-3 { >>>>> >>>>> label = "mc1:green:rgb"; >>>>> pwms = <&leds_pwm 2 1000000 0>; >>>>> max-brightness = <255>; >>>>> active-low; >>>>> >>>>> }; >>>>> >>>>> - led-blue { >>>>> + led-4 { >>>>> >>>>> label = "mc1:blue:rgb"; >>>>> pwms = <&leds_pwm 3 1000000 0>; >>>>> max-brightness = <255>; > >
diff --git a/arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts b/arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts index 5700e6b700d3..25d548cb975b 100644 --- a/arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts +++ b/arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts @@ -36,34 +36,34 @@ stdout-path = &uart4; }; - led-act { + led-controller-1 { compatible = "gpio-leds"; - led-green { + led-1 { label = "mc1:green:act"; gpios = <&gpioa 13 GPIO_ACTIVE_LOW>; linux,default-trigger = "heartbeat"; }; }; - led-rgb { + led-controller-2 { compatible = "pwm-leds"; - led-red { + led-2 { label = "mc1:red:rgb"; pwms = <&leds_pwm 1 1000000 0>; max-brightness = <255>; active-low; }; - led-green { + led-3 { label = "mc1:green:rgb"; pwms = <&leds_pwm 2 1000000 0>; max-brightness = <255>; active-low; }; - led-blue { + led-4 { label = "mc1:blue:rgb"; pwms = <&leds_pwm 3 1000000 0>; max-brightness = <255>;
The node names for devices using the pwm-leds driver follow a certain naming scheme (now). Parent node name is not enforced, but recommended by DT project. DTC arch/arm/boot/dts/stm32mp157c-lxa-mc1.dt.yaml CHECK arch/arm/boot/dts/stm32mp157c-lxa-mc1.dt.yaml /home/alex/build/linux/arch/arm/boot/dts/stm32mp157c-lxa-mc1.dt.yaml: led-rgb: 'led-blue', 'led-green', 'led-red' do not match any of the regexes: '^led(-[0-9a-f]+)?$', 'pinctrl-[0-9]+' From schema: /home/alex/src/linux/leds/Documentation/devicetree/bindings/leds/leds-pwm.yaml Signed-off-by: Alexander Dahl <post@lespocky.de> --- Notes: v6 -> v7: * split up patch (one per sub arch) * added actual warnings to commit message arch/arm/boot/dts/stm32mp157c-lxa-mc1.dts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)