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

title: AWINIC AW2013 3-channel LED Driver

maintainers:
  - Nikita Travkin <nikitos.tr@gmail.com>

description: |
  The AW2013 is a 3-channel LED driver with I2C interface. It can control
  LED brightness with PWM output.

properties:
  compatible:
    const: awinic,aw2013

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1
    description: Open-drain, low active interrupt pin "INTN".
      Used to report completion of operations (power up, LED breath effects).

  vcc-supply:
    description: Regulator providing power to the "VCC" pin.

  vio-supply:
    description: Regulator providing power for pull-up of the I/O lines.
      "VIO1" in the typical application circuit example of the datasheet.
      Note that this regulator does not directly connect to AW2013, but is
      needed for the correct operation of the interrupt and I2C lines.

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

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

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

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

additionalProperties: false

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

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

        led-controller@45 {
            compatible = "awinic,aw2013";
            reg = <0x45>;
            interrupts = <42 IRQ_TYPE_LEVEL_LOW>;
            #address-cells = <1>;
            #size-cells = <0>;

            vcc-supply = <&pm8916_l17>;

            led@0 {
                reg = <0>;
                led-max-microamp = <5000>;
                function = LED_FUNCTION_INDICATOR;
                color = <LED_COLOR_ID_RED>;
            };

            led@1 {
                reg = <1>;
                led-max-microamp = <5000>;
                function = LED_FUNCTION_INDICATOR;
                color = <LED_COLOR_ID_GREEN>;
            };

            led@2 {
                reg = <2>;
                led-max-microamp = <5000>;
                function = LED_FUNCTION_INDICATOR;
                color = <LED_COLOR_ID_BLUE>;
            };
        };
    };
...