# 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.

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

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>;
            };
         };
       };
    };

...
