# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/leds/leds-lp50xx.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: LED driver for LP50XX RGB LED from Texas Instruments.

maintainers:
  - Dan Murphy <dmurphy@ti.com>

description: |
  The LP50XX is multi-channel, I2C RGB LED Drivers that can group RGB LEDs into
  a LED group or control them individually.

  The difference in these RGB LED drivers is the number of supported RGB
  modules.

  For more product information please see the link below:
  https://www.ti.com/lit/ds/symlink/lp5012.pdf
  https://www.ti.com/lit/ds/symlink/lp5024.pdf
  https://www.ti.com/lit/ds/symlink/lp5036.pdf

properties:
  compatible:
    enum:
      - ti,lp5009
      - ti,lp5012
      - ti,lp5018
      - ti,lp5024
      - ti,lp5030
      - ti,lp5036

  reg:
    maxItems: 1
    description:
      I2C slave address
      lp5009/12 - 0x14, 0x15, 0x16, 0x17
      lp5018/24 - 0x28, 0x29, 0x2a, 0x2b
      lp5030/36 - 0x30, 0x31, 0x32, 0x33

  enable-gpios:
    maxItems: 1
    description: GPIO pin to enable/disable the device.

  vled-supply:
    description: LED supply.

  '#address-cells':
    const: 1

  '#size-cells':
    const: 0

patternProperties:
  '^multi-led@[0-9a-f]$':
    type: object
    allOf:
      - $ref: leds-class-multicolor.yaml#
    properties:
      reg:
        minItems: 1
        maxItems: 12
        description:
          This property denotes the LED module number(s) that is used on the
          for the child node.  The LED modules can either be used stand alone
          or grouped into a module bank.

    patternProperties:
      "(^led-[0-9a-f]$|led)":
        type: object
        $ref: common.yaml#

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
   #include <dt-bindings/gpio/gpio.h>
   #include <dt-bindings/leds/common.h>

   i2c {
       #address-cells = <1>;
       #size-cells = <0>;

       led-controller@14 {
           compatible = "ti,lp5009";
           reg = <0x14>;
           #address-cells = <1>;
           #size-cells = <0>;
           enable-gpios = <&gpio1 16>;

           multi-led@1 {
               #address-cells = <1>;
               #size-cells = <0>;
               reg = <0x1>;
               color = <LED_COLOR_ID_RGB>;
               function = LED_FUNCTION_CHARGING;

               led-0 {
                   color = <LED_COLOR_ID_RED>;
               };

               led-1 {
                   color = <LED_COLOR_ID_GREEN>;
               };

               led-2 {
                   color = <LED_COLOR_ID_BLUE>;
               };
          };

          multi-led@2 {
            #address-cells = <1>;
            #size-cells = <2>;
            reg = <0x2 0x3 0x5>;
            color = <LED_COLOR_ID_RGB>;
            function = LED_FUNCTION_STANDBY;

            led-6 {
              color = <LED_COLOR_ID_RED>;
            };

            led-7 {
              color = <LED_COLOR_ID_GREEN>;
            };

            led-8 {
              color = <LED_COLOR_ID_BLUE>;
            };
         };
       };
    };

...
