Message ID | 20220615154918.521687-4-jjhiblot@traphandler.com |
---|---|
State | New |
Headers | show |
Series | [1/4] leds: class: simplify the implementation of devm_of_led_get() | expand |
On Wed, Jun 15, 2022 at 05:49:17PM +0200, Jean-Jacques Hiblot wrote: > This allows to group multiple monochromatic LEDs into a multicolor > LED, e.g. RGB LEDs. > > Signed-off-by: Jean-Jacques Hiblot <jjhiblot@traphandler.com> > --- > .../bindings/leds/leds-group-multicolor.yaml | 94 +++++++++++++++++++ > 1 file changed, 94 insertions(+) > create mode 100644 Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml > > diff --git a/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml b/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml > new file mode 100644 > index 000000000000..30a67985ae33 > --- /dev/null > +++ b/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml > @@ -0,0 +1,94 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/leds/leds-group-multicolor.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Multi-color LED built with monochromatic LEDs > + > +maintainers: > + - Jean-Jacques Hiblot <jjhiblot@traphandler.com> > + > +description: | > + This driver combines several monochromatic LEDs into one multi-color > + LED using the multicolor LED class. > + > +properties: > + compatible: > + const: leds-group-multicolor > + > + multi-led: > + type: object > + > + patternProperties: > + "^led-[0-9a-z]+$": > + type: object > + $ref: common.yaml# > + > + additionalProperties: false > + > + properties: > + leds: Not a standard property. What is the type? Really, just do a GPIO multi-color LED binding similar to the PWM one rather than adding this layer. I suppose you could combine LEDs from all different controllers, but that seems somewhat unlikely to me. Rob
On 28/06/2022 00:12, Rob Herring wrote: > On Wed, Jun 15, 2022 at 05:49:17PM +0200, Jean-Jacques Hiblot wrote: >> This allows to group multiple monochromatic LEDs into a multicolor >> LED, e.g. RGB LEDs. >> >> Signed-off-by: Jean-Jacques Hiblot <jjhiblot@traphandler.com> >> --- >> .../bindings/leds/leds-group-multicolor.yaml | 94 +++++++++++++++++++ >> 1 file changed, 94 insertions(+) >> create mode 100644 Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml >> >> diff --git a/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml b/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml >> new file mode 100644 >> index 000000000000..30a67985ae33 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml >> @@ -0,0 +1,94 @@ >> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) >> +%YAML 1.2 >> +--- >> +$id: http://devicetree.org/schemas/leds/leds-group-multicolor.yaml# >> +$schema: http://devicetree.org/meta-schemas/core.yaml# >> + >> +title: Multi-color LED built with monochromatic LEDs >> + >> +maintainers: >> + - Jean-Jacques Hiblot <jjhiblot@traphandler.com> >> + >> +description: | >> + This driver combines several monochromatic LEDs into one multi-color >> + LED using the multicolor LED class. >> + >> +properties: >> + compatible: >> + const: leds-group-multicolor >> + >> + multi-led: >> + type: object >> + >> + patternProperties: >> + "^led-[0-9a-z]+$": >> + type: object >> + $ref: common.yaml# >> + >> + additionalProperties: false >> + >> + properties: >> + leds: > Not a standard property. What is the type? That would be a reference to the node of a LED > Really, just do a GPIO multi-color LED binding similar to the PWM one > rather than adding this layer. I suppose you could combine LEDs from all > different controllers, but that seems somewhat unlikely to me. I'm not using gpio leds, rather leds driven by two TLC5925. I agree that combining from different model of controller is unlikely. However from 2 separate chips of the same model is not (ex: driving 5 RGB LEDs with two 8-output chips) In the case of the TLC5925, that is not really a problem because as long as the chips are on the same CS, they are considered as a single entity by the driver. But for I2C chips at least that would be a problem. JJ > > Rob
diff --git a/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml b/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml new file mode 100644 index 000000000000..30a67985ae33 --- /dev/null +++ b/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml @@ -0,0 +1,94 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/leds/leds-group-multicolor.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Multi-color LED built with monochromatic LEDs + +maintainers: + - Jean-Jacques Hiblot <jjhiblot@traphandler.com> + +description: | + This driver combines several monochromatic LEDs into one multi-color + LED using the multicolor LED class. + +properties: + compatible: + const: leds-group-multicolor + + multi-led: + type: object + + patternProperties: + "^led-[0-9a-z]+$": + type: object + $ref: common.yaml# + + additionalProperties: false + + properties: + leds: + maxItems: 1 + + color: true + + required: + - leds + - color + +required: + - compatible + +allOf: + - $ref: leds-class-multicolor.yaml# + +additionalProperties: false + +examples: + - | + #include <dt-bindings/gpio/gpio.h> + #include <dt-bindings/leds/common.h> + + monochromatic-leds { + compatible = "gpio-leds"; + + led0: led-0 { + gpios = <&mcu_pio 0 GPIO_ACTIVE_LOW>; + }; + + led1: led-1 { + gpios = <&mcu_pio 1 GPIO_ACTIVE_HIGH>; + }; + + led2: led-2 { + gpios = <&mcu_pio 1 GPIO_ACTIVE_HIGH>; + }; + }; + + multicolor-led-group { + compatible = "leds-group-multicolor"; + + multi-led { + color = <LED_COLOR_ID_RGB>; + function = LED_FUNCTION_INDICATOR; + max-brightness = <256>; + + led-red { + leds = <&led0>; + color = <LED_COLOR_ID_RED>; + }; + + led-green { + leds = <&led1>; + color = <LED_COLOR_ID_GREEN>; + }; + + led-blue { + leds = <&led2>; + color = <LED_COLOR_ID_BLUE>; + }; + }; + }; + +...
This allows to group multiple monochromatic LEDs into a multicolor LED, e.g. RGB LEDs. Signed-off-by: Jean-Jacques Hiblot <jjhiblot@traphandler.com> --- .../bindings/leds/leds-group-multicolor.yaml | 94 +++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml