diff mbox series

[v3,1/3] dt-bindings: leds: Add LED1202 LED Controller

Message ID Zx0AqwUUchl4M6po@admins-Air
State New
Headers show
Series [v3,1/3] dt-bindings: leds: Add LED1202 LED Controller | expand

Commit Message

Vicentiu Galanopulo Oct. 26, 2024, 2:46 p.m. UTC
The LED1202 is a 12-channel low quiescent current LED driver with:
  * Supply range from 2.6 V to 5 V
  * 20 mA current capability per channel
  * 1.8 V compatible I2C control interface
  * 8-bit analog dimming individual control
  * 12-bit local PWM resolution
  * 8 programmable patterns

If the led node is present in the controller then the channel is
set to active.

Signed-off-by: Vicentiu Galanopulo <vicentiu.galanopulo@remote-tech.co.uk>
---

Changes in v3:
  - remove active property
Changes in v2:
  - renamed label to remove color from it
  - add color property for each node
  - add function and function-enumerator property for each node

 .../devicetree/bindings/leds/st,led1202.yml   | 103 ++++++++++++++++++
 1 file changed, 103 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/leds/st,led1202.yml

Comments

Jacek Anaszewski Oct. 27, 2024, 2:31 p.m. UTC | #1
Hi Vicentiu,

On 10/26/24 16:46, Vicentiu Galanopulo wrote:
> The LED1202 is a 12-channel low quiescent current LED driver with:
>    * Supply range from 2.6 V to 5 V
>    * 20 mA current capability per channel
>    * 1.8 V compatible I2C control interface
>    * 8-bit analog dimming individual control
>    * 12-bit local PWM resolution
>    * 8 programmable patterns
> 
> If the led node is present in the controller then the channel is
> set to active.
> 
> Signed-off-by: Vicentiu Galanopulo <vicentiu.galanopulo@remote-tech.co.uk>
> ---
> 
> Changes in v3:
>    - remove active property
> Changes in v2:
>    - renamed label to remove color from it
>    - add color property for each node
>    - add function and function-enumerator property for each node
> 
>   .../devicetree/bindings/leds/st,led1202.yml   | 103 ++++++++++++++++++
>   1 file changed, 103 insertions(+)
>   create mode 100644 Documentation/devicetree/bindings/leds/st,led1202.yml
> 
> diff --git a/Documentation/devicetree/bindings/leds/st,led1202.yml b/Documentation/devicetree/bindings/leds/st,led1202.yml
> new file mode 100644
> index 000000000000..f64273599181
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/leds/st,led1202.yml
> @@ -0,0 +1,103 @@
> +patternProperties:
> +    "^led@[0-9a-f]+$":
> +    type: object
> +    $ref: common.yaml#
> +    unevaluatedProperties: false
> +
> +    properties:
> +        reg:
> +        minimum: 0
> +        maximum: 11
> +
> +    required:
> +        - reg
> +
> +additionalProperties: false
> +
> +examples:
> +    - |
> +        #include <dt-bindings/leds/common.h>
> +
> +    i2c {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        led-controller@58 {
> +            compatible = "st,led1202";
> +            reg = <0x58>;
> +            address-cells = <1>;
> +            size-cells = <0>;
> +
> +            led@0 {
> +                reg = <0>;
> +                label = "led1";
> +                function = LED_FUNCTION_STATUS;
> +                color = <LED_COLOR_ID_RED>;
> +                function-enumerator = <1>;

You should use devm_led_classdev_register_ext() to let LED core create
LED class device name basing on the above three properties.
'label' property will be useless in that case, so please drop it and
avoid constructing LED name in the driver.

> +            };
> +
> +            led@1 {
> +                reg = <1>;
> +                label = "led2";
> +                function = LED_FUNCTION_STATUS;
> +                color = <LED_COLOR_ID_GREEN>;
> +                function-enumerator = <2>;
> +            };
> +
> +            led@2 {
> +                reg = <2>;
> +                label = "led3";
> +                function = LED_FUNCTION_STATUS;
> +                color = <LED_COLOR_ID_BLUE>;
> +                function-enumerator = <3>;
> +            };
> +
> +            led@3 {
> +                reg = <3>;
> +                label = "led4";
> +                function = LED_FUNCTION_STATUS;
> +                color = <LED_COLOR_ID_RED>;
> +                function-enumerator = <4>;
> +            };
> +
> +            led@4 {
> +                reg = <4>;
> +                label = "led5";
> +                function = LED_FUNCTION_STATUS;
> +                color = <LED_COLOR_ID_GREEN>;
> +                function-enumerator = <5>;
> +            };
> +
> +            led@5 {
> +                reg = <5>;
> +                label = "led6";
> +                function = LED_FUNCTION_STATUS;
> +                color = <LED_COLOR_ID_BLUE>;
> +                function-enumerator = <6>;
> +            };
> +
> +            led@6 {
> +                reg = <6>;
> +                label = "led7";
> +                function = LED_FUNCTION_STATUS;
> +                color = <LED_COLOR_ID_RED>;
> +                function-enumerator = <7>;
> +            };
> +
> +            led@7 {
> +                reg = <7>;
> +                label = "led8";
> +                function = LED_FUNCTION_STATUS;
> +                color = <LED_COLOR_ID_GREEN>;
> +                function-enumerator = <8>;
> +            };
> +
> +            led@8 {
> +                reg = <8>;
> +                label = "led9";
> +                function = LED_FUNCTION_STATUS;
> +                color = <LED_COLOR_ID_BLUE>;
> +                function-enumerator = <9>;
> +            };
> +        };
> +    };
Krzysztof Kozlowski Oct. 27, 2024, 8:33 p.m. UTC | #2
On Sat, Oct 26, 2024 at 04:46:03PM +0200, Vicentiu Galanopulo wrote:
> The LED1202 is a 12-channel low quiescent current LED driver with:
>   * Supply range from 2.6 V to 5 V
>   * 20 mA current capability per channel
>   * 1.8 V compatible I2C control interface
>   * 8-bit analog dimming individual control
>   * 12-bit local PWM resolution
>   * 8 programmable patterns
> 
> If the led node is present in the controller then the channel is
> set to active.
> 
> Signed-off-by: Vicentiu Galanopulo <vicentiu.galanopulo@remote-tech.co.uk>
> ---
> 
> Changes in v3:
>   - remove active property
> Changes in v2:
>   - renamed label to remove color from it
>   - add color property for each node
>   - add function and function-enumerator property for each node

Where is the rest of the patches? I commented previously that you send
them in some odd way messing with reviewers MUAs and lists.

It seems nothing improved. Follow submitting-patches and use git
format-patch or b4, where both handle it correctly.


> 
>  .../devicetree/bindings/leds/st,led1202.yml   | 103 ++++++++++++++++++
>  1 file changed, 103 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/leds/st,led1202.yml

OK, so you just ignored entire previous feedback?

NAK.

Best regards,
Krzysztof
Vicentiu Galanopulo Nov. 1, 2024, 8:20 p.m. UTC | #3
> > Changes in v3:
> >   - remove active property
> > Changes in v2:
> >   - renamed label to remove color from it
> >   - add color property for each node
> >   - add function and function-enumerator property for each node
> 
> Where is the rest of the patches? I commented previously that you send
> them in some odd way messing with reviewers MUAs and lists.

I think I finally understood. I cannot correct the previous ones, but
I can add the links here in this thread in the form:

v1: https://lore.kernel.org/lkml/ZnCnnQfwuRueCIQ0@admins-Air/T/
v2: https://lore.kernel.org/all/ZniNdGgKyUMV-hjq@admins-Air/T/
v3: https://lore.kernel.org/all/ZniNdGgKyUMV-hjq@admins-Air/T/

will this work?
 
> It seems nothing improved. Follow submitting-patches and use git
> format-patch or b4, where both handle it correctly.
> 

Reply in thread is fixed, the test results you ask for in v2 are
here:

$ make dt_binding_check DT_SCHEMA_FILES=leds
  SCHEMA  Documentation/devicetree/bindings/processed-schema.json
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/dtc/dtc.o
  HOSTCC  scripts/dtc/flattree.o
  HOSTCC  scripts/dtc/fstree.o
  HOSTCC  scripts/dtc/data.o
  HOSTCC  scripts/dtc/livetree.o
  HOSTCC  scripts/dtc/treesource.o
  HOSTCC  scripts/dtc/srcpos.o
  HOSTCC  scripts/dtc/checks.o
  HOSTCC  scripts/dtc/util.o
  LEX     scripts/dtc/dtc-lexer.lex.c
  YACC    scripts/dtc/dtc-parser.tab.[ch]
  HOSTCC  scripts/dtc/dtc-lexer.lex.o
  HOSTCC  scripts/dtc/dtc-parser.tab.o
  HOSTLD  scripts/dtc/dtc
  HOSTCC  scripts/dtc/libfdt/fdt.o
  HOSTCC  scripts/dtc/libfdt/fdt_ro.o
  HOSTCC  scripts/dtc/libfdt/fdt_wip.o
  HOSTCC  scripts/dtc/libfdt/fdt_sw.o
  HOSTCC  scripts/dtc/libfdt/fdt_rw.o
  HOSTCC  scripts/dtc/libfdt/fdt_strerror.o
  HOSTCC  scripts/dtc/libfdt/fdt_empty_tree.o
  HOSTCC  scripts/dtc/libfdt/fdt_addresses.o
  HOSTCC  scripts/dtc/libfdt/fdt_overlay.o
  HOSTCC  scripts/dtc/fdtoverlay.o
  HOSTLD  scripts/dtc/fdtoverlay
  CHKDT   Documentation/devicetree/bindings
  LINT    Documentation/devicetree/bindings
  DTEX    Documentation/devicetree/bindings/leds/leds-rt4505.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/leds-rt4505.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/rohm,bd71828-leds.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/rohm,bd71828-leds.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/richtek,rt8515.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/richtek,rt8515.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/leds-pwm.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/leds-pwm.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/issi,is31fl319x.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/issi,is31fl319x.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/mediatek,mt6370-flashlight.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/mediatek,mt6370-flashlight.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/irled/gpio-ir-tx.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/irled/gpio-ir-tx.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/irled/pwm-ir-tx.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/irled/pwm-ir-tx.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/irled/ir-spi-led.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/irled/ir-spi-led.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/leds-lp50xx.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/leds-lp50xx.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/regulator-led.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/regulator-led.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/leds-max77650.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/leds-max77650.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/allwinner,sun50i-a100-ledc.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/allwinner,sun50i-a100-ledc.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/rohm,bd2606mvv.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/rohm,bd2606mvv.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/nxp,pca995x.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/nxp,pca995x.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/trigger-source.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/trigger-source.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/onnn,ncp5623.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/onnn,ncp5623.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/common.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/common.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/maxim,max77693.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/maxim,max77693.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/cznic,turris-omnia-leds.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/cznic,turris-omnia-leds.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/qcom,pm8058-led.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/qcom,pm8058-led.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/leds-bcm6328.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/leds-bcm6328.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/nxp,pca953x.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/nxp,pca953x.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/register-bit-led.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/register-bit-led.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/leds-class-multicolor.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/leds-class-multicolor.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/leds-bcm63138.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/leds-bcm63138.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/kinetic,ktd202x.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/kinetic,ktd202x.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/backlight/kinetic,ktd253.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/backlight/kinetic,ktd253.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/backlight/lp855x-backlight.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/backlight/lp855x-backlight.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/backlight/mediatek,mt6370-backlight.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/backlight/mediatek,mt6370-backlight.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/backlight/mps,mp3309c.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/backlight/mps,mp3309c.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/backlight/richtek,rt4831-backlight.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/backlight/richtek,rt4831-backlight.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/backlight/common.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/backlight/common.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/backlight/led-backlight.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/backlight/led-backlight.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/backlight/kinetic,ktd2801.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/backlight/kinetic,ktd2801.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/backlight/ti,lm3509.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/backlight/ti,lm3509.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/backlight/pwm-backlight.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/backlight/pwm-backlight.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/backlight/kinetic,ktz8866.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/backlight/kinetic,ktz8866.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/backlight/gpio-backlight.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/backlight/gpio-backlight.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/backlight/lm3630a-backlight.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/backlight/zii,rave-sp-backlight.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/backlight/zii,rave-sp-backlight.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/backlight/qcom-wled.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/backlight/qcom-wled.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/leds-group-multicolor.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/leds-group-multicolor.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/panasonic,an30259a.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/panasonic,an30259a.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/leds-gpio.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/leds-gpio.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/mediatek,mt6370-indicator.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/mediatek,mt6370-indicator.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/leds-pwm-multicolor.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/leds-pwm-multicolor.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/leds-aw2013.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/leds-aw2013.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/ti,tca6507.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/ti,tca6507.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/leds-mt6360.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/leds-mt6360.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/leds-qcom-lpg.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/leds-qcom-lpg.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/st,led1202.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/st,led1202.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/leds-lp55xx.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/leds-lp55xx.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/qcom,spmi-flash-led.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/qcom,spmi-flash-led.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/silergy,sy7802.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/silergy,sy7802.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/ti.lm36922.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/ti.lm36922.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/skyworks,aat1290.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/skyworks,aat1290.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/nxp,pca963x.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/nxp,pca963x.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/kinetic,ktd2692.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/kinetic,ktd2692.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/awinic,aw200xx.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/awinic,aw200xx.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/leds-sgm3140.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/leds-sgm3140.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/leds-lgm.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/leds-lgm.example.dtb
  DTEX    Documentation/devicetree/bindings/leds/sprd,sc2731-bltc.example.dts
  DTC [C] Documentation/devicetree/bindings/leds/sprd,sc2731-bltc.example.dtb 

> > 
> >  .../devicetree/bindings/leds/st,led1202.yml   | 103 ++++++++++++++++++
> >  1 file changed, 103 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/leds/st,led1202.yml
> 
> OK, so you just ignored entire previous feedback?
> 
> NAK.

Sorry, for some reason, I kept sending a truncated version of the
yaml file from v2, which did not had the review changes. 
 

The LED1202 is a 12-channel low quiescent current LED driver with:
  * Supply range from 2.6 V to 5 V
  * 20 mA current capability per channel
  * 1.8 V compatible I2C control interface
  * 8-bit analog dimming individual control
  * 12-bit local PWM resolution
  * 8 programmable patterns

If the led node is present in the controller then the channel is
set to active.

v1: https://lore.kernel.org/lkml/ZnCnnQfwuRueCIQ0@admins-Air/T/
v2: https://lore.kernel.org/all/ZniNdGgKyUMV-hjq@admins-Air/T/
v3: https://lore.kernel.org/all/ZniNdGgKyUMV-hjq@admins-Air/T/

Signed-off-by: Vicentiu Galanopulo <vicentiu.galanopulo@remote-tech.co.uk>
---
Changes in v4:
  - remove label property, use devm_led_classdev_register_ext instead
  - use as base patch the v3  
Changes in v3:
  - remove active property
Changes in v2:
  - renamed label to remove color from it
  - add color property for each node
  - add function and function-enumerator property for each node

 .../devicetree/bindings/leds/st,led1202.yaml  | 132 ++++++++++++++++++
 1 file changed, 132 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/leds/st,led1202.yaml

diff --git a/Documentation/devicetree/bindings/leds/st,led1202.yaml b/Documentation/devicetree/bindings/leds/st,led1202.yaml
new file mode 100644
index 000000000000..7e49e6464d41
--- /dev/null
+++ b/Documentation/devicetree/bindings/leds/st,led1202.yaml
@@ -0,0 +1,132 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/leds/st,led1202.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ST LED1202 LED controllers
+
+maintainers:
+  - Vicentiu Galanopulo <vicentiu.galanopulo@remote-tech.co.uk>
+
+description: |
+  The LED1202 is a 12-channel low quiescent current LED controller
+  programmable via I2C; The output current can be adjusted separately
+  for each channel by 8-bit analog and 12-bit digital dimming control.
+  Datasheet available at
+  https://www.st.com/en/power-management/led1202.html
+
+properties:
+  compatible:
+    const: st,led1202
+
+  reg:
+    maxItems: 1
+
+  "#address-cells":
+    const: 1
+
+  "#size-cells":
+    const: 0
+    
+patternProperties:
+  "^led@[0-9a-f]$":
+    type: object
+    $ref: common.yaml#
+    unevaluatedProperties: false
+
+    properties:
+      reg:
+        minimum: 0
+        maximum: 11
+
+    required:
+      - reg
+
+required:
+  - compatible
+  - reg
+  - "#address-cells"
+  - "#size-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/leds/common.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        led-controller@58 {
+            compatible = "st,led1202";
+            reg = <0x58>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            led@0 {
+                reg = <0x0>;
+                function = LED_FUNCTION_STATUS;
+                color = <LED_COLOR_ID_RED>;
+                function-enumerator = <1>;
+            };
+
+            led@1 {
+                reg = <0x1>;
+                function = LED_FUNCTION_STATUS;
+                color = <LED_COLOR_ID_GREEN>;
+                function-enumerator = <2>;
+            };
+
+            led@2 {
+                reg = <0x2>;
+                function = LED_FUNCTION_STATUS;
+                color = <LED_COLOR_ID_BLUE>;
+                function-enumerator = <3>;
+            };
+
+            led@3 {
+                reg = <0x3>;
+                function = LED_FUNCTION_STATUS;
+                color = <LED_COLOR_ID_RED>;
+                function-enumerator = <4>;
+            };
+
+            led@4 {
+                reg = <0x4>;
+                function = LED_FUNCTION_STATUS;
+                color = <LED_COLOR_ID_GREEN>;
+                function-enumerator = <5>;
+            };
+
+            led@5 {
+                reg = <0x5>;
+                function = LED_FUNCTION_STATUS;
+                color = <LED_COLOR_ID_BLUE>;
+                function-enumerator = <6>;
+            };
+
+            led@6 {
+                reg = <0x6>;
+                function = LED_FUNCTION_STATUS;
+                color = <LED_COLOR_ID_RED>;
+                function-enumerator = <7>;
+            };
+
+            led@7 {
+                reg = <0x7>;
+                function = LED_FUNCTION_STATUS;
+                color = <LED_COLOR_ID_GREEN>;
+                function-enumerator = <8>;
+            };
+
+            led@8 {
+                reg = <0x8>;
+                function = LED_FUNCTION_STATUS;
+                color = <LED_COLOR_ID_BLUE>;
+                function-enumerator = <9>;
+            };
+        };
+    };
+...
diff mbox series

Patch

diff --git a/Documentation/devicetree/bindings/leds/st,led1202.yml b/Documentation/devicetree/bindings/leds/st,led1202.yml
new file mode 100644
index 000000000000..f64273599181
--- /dev/null
+++ b/Documentation/devicetree/bindings/leds/st,led1202.yml
@@ -0,0 +1,103 @@ 
+patternProperties:
+    "^led@[0-9a-f]+$":
+    type: object
+    $ref: common.yaml#
+    unevaluatedProperties: false
+
+    properties:
+        reg:
+        minimum: 0
+        maximum: 11
+
+    required:
+        - reg
+
+additionalProperties: false
+
+examples:
+    - |
+        #include <dt-bindings/leds/common.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        led-controller@58 {
+            compatible = "st,led1202";
+            reg = <0x58>;
+            address-cells = <1>;
+            size-cells = <0>;
+
+            led@0 {
+                reg = <0>;
+                label = "led1";
+                function = LED_FUNCTION_STATUS;
+                color = <LED_COLOR_ID_RED>;
+                function-enumerator = <1>;
+            };
+
+            led@1 {
+                reg = <1>;
+                label = "led2";
+                function = LED_FUNCTION_STATUS;
+                color = <LED_COLOR_ID_GREEN>;
+                function-enumerator = <2>;
+            };
+
+            led@2 {
+                reg = <2>;
+                label = "led3";
+                function = LED_FUNCTION_STATUS;
+                color = <LED_COLOR_ID_BLUE>;
+                function-enumerator = <3>;
+            };
+
+            led@3 {
+                reg = <3>;
+                label = "led4";
+                function = LED_FUNCTION_STATUS;
+                color = <LED_COLOR_ID_RED>;
+                function-enumerator = <4>;
+            };
+
+            led@4 {
+                reg = <4>;
+                label = "led5";
+                function = LED_FUNCTION_STATUS;
+                color = <LED_COLOR_ID_GREEN>;
+                function-enumerator = <5>;
+            };
+
+            led@5 {
+                reg = <5>;
+                label = "led6";
+                function = LED_FUNCTION_STATUS;
+                color = <LED_COLOR_ID_BLUE>;
+                function-enumerator = <6>;
+            };
+
+            led@6 {
+                reg = <6>;
+                label = "led7";
+                function = LED_FUNCTION_STATUS;
+                color = <LED_COLOR_ID_RED>;
+                function-enumerator = <7>;
+            };
+
+            led@7 {
+                reg = <7>;
+                label = "led8";
+                function = LED_FUNCTION_STATUS;
+                color = <LED_COLOR_ID_GREEN>;
+                function-enumerator = <8>;
+            };
+
+            led@8 {
+                reg = <8>;
+                label = "led9";
+                function = LED_FUNCTION_STATUS;
+                color = <LED_COLOR_ID_BLUE>;
+                function-enumerator = <9>;
+            };
+        };
+    };