Re: [PATCH v2 3/4] arm64: dts: sun50i-a64-pinephone: add multicolor led node

From: Aren
Date: Fri Feb 23 2024 - 10:29:08 EST


On Fri, Feb 23, 2024 at 09:46:25AM +0100, Ondřej Jirman wrote:
> Hello Aren,
>
> On Tue, Feb 06, 2024 at 01:13:19PM -0500, Aren Moynihan wrote:
> > The red, green, and blue leds currently in the device tree represent a
> > single rgb led on the front of the PinePhone.
> >
> > Signed-off-by: Aren Moynihan <aren@xxxxxxxxxxxxxxxxx>
> > ---
> >
> > Changes in v2:
> > - remove function property from individual led nodes
> >
> > .../boot/dts/allwinner/sun50i-a64-pinephone.dtsi | 16 ++++++++++------
> > 1 file changed, 10 insertions(+), 6 deletions(-)
> >
> > diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
> > index ad2476ee01e4..e53e0d4579a7 100644
> > --- a/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
> > +++ b/arch/arm64/boot/dts/allwinner/sun50i-a64-pinephone.dtsi
> > @@ -39,28 +39,32 @@ chosen {
> > leds {
> > compatible = "gpio-leds";
> >
> > - led-0 {
> > - function = LED_FUNCTION_INDICATOR;
>
> This looks like a needless change that will just break people's current scripts
> and setup. It does mine, and there sure are others that will be surprised, too.
>
> This leads to a change in sysfs path from:
>
> /sys/class/leds/blue:indicator
>
> to
>
> /sys/class/leds/blue:
>
> which is 1) a weird name and 2) a backwards compatibility break for seemingly
> no apparent reason. Any reaons for the change?

Leds-group-multicolor will make those read-only, so that will break when
it's enabled either way. Removing the function property makes it less
likely that programs attempting to discover leds will use the wrong
path.

I left these in v1 of this patch, but was recommended to remove them.
https://lore.kernel.org/lkml/k26bellccok4tj3kz2nrtp2vth2rnsiea677e2kzm56m767wjx@pnkqiz5hmiyb/

Thanks for taking a look at this
- Aren

> People normally hardcode these paths in eg. /etc/tmpfiles.d to apply LED triggers
> to particular LEDs.
>
> Kind regards,
> o.
>
> > + led0: led-0 {
> > color = <LED_COLOR_ID_BLUE>;
> > gpios = <&pio 3 20 GPIO_ACTIVE_HIGH>; /* PD20 */
> > retain-state-suspended;
> > };
> >
> > - led-1 {
> > - function = LED_FUNCTION_INDICATOR;
> > + led1: led-1 {
> > color = <LED_COLOR_ID_GREEN>;
> > gpios = <&pio 3 18 GPIO_ACTIVE_HIGH>; /* PD18 */
> > retain-state-suspended;
> > };
> >
> > - led-2 {
> > - function = LED_FUNCTION_INDICATOR;
> > + led2: led-2 {
> > color = <LED_COLOR_ID_RED>;
> > gpios = <&pio 3 19 GPIO_ACTIVE_HIGH>; /* PD19 */
> > retain-state-suspended;
> > };
> > };
> >
> > + multi-led {
> > + compatible = "leds-group-multicolor";
> > + color = <LED_COLOR_ID_RGB>;
> > + function = LED_FUNCTION_INDICATOR;
> > + leds = <&led0>, <&led1>, <&led2>;
> > + };
> > +
> > reg_ps: ps-regulator {
> > compatible = "regulator-fixed";
> > regulator-name = "ps";
> > --
> > 2.43.0
> >