Message ID | 20220824103032.163451-4-jjhiblot@traphandler.com |
---|---|
State | Superseded |
Headers | show |
Series | Add a multicolor LED driver for groups of monochromatic LEDs | expand |
On 24/08/2022 14:21, Sascha Hauer wrote: > On Wed, Aug 24, 2022 at 12:30:31PM +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> >> Reviewed-by: Rob Herring <robh@kernel.org> >> --- >> .../bindings/leds/leds-group-multicolor.yaml | 61 +++++++++++++++++++ >> 1 file changed, 61 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..79e5882a08e2 >> --- /dev/null >> +++ b/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml >> @@ -0,0 +1,61 @@ >> +# 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 >> + >> + leds: >> + description: >> + An aray of monochromatic leds >> + $ref: /schemas/types.yaml#/definitions/phandle-array >> + >> +required: >> + - leds >> + >> +allOf: >> + - $ref: leds-class-multicolor.yaml# >> + >> +unevaluatedProperties: 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>; >> + }; > led-2 has the same GPIO as led-1, should likely be <&mcu_pio 2 GPIO_ACTIVE_HIGH>; ok. > >> + }; >> + >> + multi-led { >> + compatible = "leds-group-multicolor"; >> + color = <LED_COLOR_ID_RGB>; >> + function = LED_FUNCTION_INDICATOR; >> + leds = <&led0>, <&led1>, <&led2>; >> + }; > When reading this I wondered how the driver knows which LED has which > color. Should you assign colors to the individual LEDs to make that > clear in the example? Good point. I'll add this to the example. Thanks. JJ > > Sascha >
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..79e5882a08e2 --- /dev/null +++ b/Documentation/devicetree/bindings/leds/leds-group-multicolor.yaml @@ -0,0 +1,61 @@ +# 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 + + leds: + description: + An aray of monochromatic leds + $ref: /schemas/types.yaml#/definitions/phandle-array + +required: + - leds + +allOf: + - $ref: leds-class-multicolor.yaml# + +unevaluatedProperties: 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>; + }; + }; + + multi-led { + compatible = "leds-group-multicolor"; + color = <LED_COLOR_ID_RGB>; + function = LED_FUNCTION_INDICATOR; + leds = <&led0>, <&led1>, <&led2>; + }; + +...