On Tue, May 26, 2020 at 11:46:37AM -0500, Dan Murphy wrote: > Add DT bindings for the LEDs multicolor class framework. > Add multicolor ID to the color ID list for device tree bindings. > > CC: Rob Herring <robh@xxxxxxxxxx> > Acked-by: Pavel Machek <pavel@xxxxxx> > Acked-by: Jacek Anaszewski <jacek.anaszewski@xxxxxxxxx> > Signed-off-by: Dan Murphy <dmurphy@xxxxxx> > --- > .../bindings/leds/leds-class-multicolor.yaml | 71 +++++++++++++++++++ > drivers/leds/led-core.c | 1 + > include/dt-bindings/leds/common.h | 3 +- > 3 files changed, 74 insertions(+), 1 deletion(-) > create mode 100644 Documentation/devicetree/bindings/leds/leds-class-multicolor.yaml > > diff --git a/Documentation/devicetree/bindings/leds/leds-class-multicolor.yaml b/Documentation/devicetree/bindings/leds/leds-class-multicolor.yaml > new file mode 100644 > index 000000000000..fa6ea8e5c46b > --- /dev/null > +++ b/Documentation/devicetree/bindings/leds/leds-class-multicolor.yaml > @@ -0,0 +1,71 @@ > +# SPDX-License-Identifier: GPL-2.0 Dual license new bindings please. GPL-2.0-only OR BSD-2-Clause > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/leds/leds-class-multicolor.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Common properties for the multicolor LED class. > + > +maintainers: > + - Dan Murphy <dmurphy@xxxxxx> > + > +description: | > + Bindings for multi color LEDs show how to describe current outputs of > + either integrated multi-color LED elements (like RGB, RGBW, RGBWA-UV > + etc.) or standalone LEDs, to achieve logically grouped multi-color LED > + modules. This is achieved by adding multi-led nodes layer to the > + monochrome LED bindings. > + The nodes and properties defined in this document are unique to the multicolor > + LED class. Common LED nodes and properties are inherited from the common.txt > + within this documentation directory. > + > +properties: > + color: > + description: | > + For multicolor LED support this property should be defined as > + LED_COLOR_ID_MULTI and further definition can be found in > + include/linux/leds/common.h. This should have: const: X # LED_COLOR_ID_MULTI It can't use the define, so you have to use the value. > + > +required: > + - color > + > +examples: > + - | > + #include <dt-bindings/leds/common.h> > + i2c { > + #address-cells = <1>; > + #size-cells = <0>; > + > + led-controller@14 { > + #address-cells = <1>; > + #size-cells = <0>; > + compatible = "ti,lp5009"; > + reg = <0x14>; > + > + multi-led@1 { Define $nodename must be 'multi-led(@[0-9a-f]+)?' > + #address-cells = <1>; > + #size-cells = <0>; > + reg = <1>; > + color = <LED_COLOR_ID_MULTI>; > + function = LED_FUNCTION_CHARGING; > + > + led@0 { Then the schema should define child nodes named 'led'. > + reg = <0>; > + color = <LED_COLOR_ID_RED>; I assume in this case 'reg' and 'color' need to be defined as required? > + }; > + > + led@1 { > + reg = <1>; > + color = <LED_COLOR_ID_GREEN>; > + }; > + > + led@2 { > + reg = <2>; > + color = <LED_COLOR_ID_BLUE>; > + }; > + }; > + }; > + }; > + > +additionalProperties: false > +... > diff --git a/drivers/leds/led-core.c b/drivers/leds/led-core.c This isn't a binding file. Belongs in another patch. > index f1f718dbe0f8..846248a0693d 100644 > --- a/drivers/leds/led-core.c > +++ b/drivers/leds/led-core.c > @@ -34,6 +34,7 @@ const char * const led_colors[LED_COLOR_ID_MAX] = { > [LED_COLOR_ID_VIOLET] = "violet", > [LED_COLOR_ID_YELLOW] = "yellow", > [LED_COLOR_ID_IR] = "ir", > + [LED_COLOR_ID_MULTI] = "multicolor", > }; > EXPORT_SYMBOL_GPL(led_colors); > > diff --git a/include/dt-bindings/leds/common.h b/include/dt-bindings/leds/common.h > index 0ce7dfc00dcb..a463ce6a8794 100644 > --- a/include/dt-bindings/leds/common.h > +++ b/include/dt-bindings/leds/common.h > @@ -30,7 +30,8 @@ > #define LED_COLOR_ID_VIOLET 5 > #define LED_COLOR_ID_YELLOW 6 > #define LED_COLOR_ID_IR 7 > -#define LED_COLOR_ID_MAX 8 > +#define LED_COLOR_ID_MULTI 8 > +#define LED_COLOR_ID_MAX 9 > > /* Standard LED functions */ > /* Keyboard LEDs, usually it would be input4::capslock etc. */ > -- > 2.25.1 >