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

title: Kinetic KTD2026/7 RGB/White LED Driver

maintainers:
  - André Apitzsch <git@apitzsch.eu>

description: |
  The KTD2026/7 is a RGB/White LED driver with I2C interface.

  The data sheet can be found at:
    https://www.kinet-ic.com/uploads/KTD2026-7-04h.pdf

properties:
  compatible:
    enum:
      - kinetic,ktd2026
      - kinetic,ktd2027

  reg:
    maxItems: 1

  vin-supply:
    description: Regulator providing power to the "VIN" pin.

  vio-supply:
    description: Regulator providing power for pull-up of the I/O lines.
      Note that this regulator does not directly connect to KTD2026, but is
      needed for the correct operation of the status ("ST") and I2C lines.

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

  multi-led:
    type: object
    $ref: leds-class-multicolor.yaml#
    unevaluatedProperties: false

    properties:
      "#address-cells":
        const: 1

      "#size-cells":
        const: 0

    patternProperties:
      "^led@[0-3]$":
        type: object
        $ref: common.yaml#
        unevaluatedProperties: false

        properties:
          reg:
            description: Index of the LED.
            minimum: 0
            maximum: 3

        required:
          - reg
          - color

    required:
      - "#address-cells"
      - "#size-cells"

patternProperties:
  "^led@[0-3]$":
    type: object
    $ref: common.yaml#
    unevaluatedProperties: false

    properties:
      reg:
        description: Index of the LED.
        minimum: 0
        maximum: 3

    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@30 {
            compatible = "kinetic,ktd2026";
            reg = <0x30>;
            #address-cells = <1>;
            #size-cells = <0>;

            vin-supply = <&pm8916_l17>;
            vio-supply = <&pm8916_l6>;

            led@0 {
                reg = <0>;
                function = LED_FUNCTION_STATUS;
                color = <LED_COLOR_ID_RED>;
            };

            led@1 {
                reg = <1>;
                function = LED_FUNCTION_STATUS;
                color = <LED_COLOR_ID_GREEN>;
            };

            led@2 {
                reg = <2>;
                function = LED_FUNCTION_STATUS;
                color = <LED_COLOR_ID_BLUE>;
            };
        };
    };
  - |
    #include <dt-bindings/leds/common.h>

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

        led-controller@30 {
            compatible = "kinetic,ktd2026";
            reg = <0x30>;
            #address-cells = <1>;
            #size-cells = <0>;

            vin-supply = <&pm8916_l17>;
            vio-supply = <&pm8916_l6>;

            multi-led {
                color = <LED_COLOR_ID_RGB>;
                function = LED_FUNCTION_STATUS;

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

                led@0 {
                    reg = <0>;
                    color = <LED_COLOR_ID_RED>;
                };

                led@1 {
                    reg = <1>;
                    color = <LED_COLOR_ID_GREEN>;
                };

                led@2 {
                    reg = <2>;
                    color = <LED_COLOR_ID_BLUE>;
                };
            };
        };
    };
