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

title: ISSI LED Controllers for IS31FL319{0,1,3,6,9}

maintainers:
  - Vincent Knecht <vincent.knecht@mailoo.org>

description: |
  The IS31FL319X are LED controllers with I2C interface.
  Previously known as Si-En SN319{0,1,3,6,9}.

  For more product information please see the links below:
    https://lumissil.com/assets/pdf/core/IS31FL3190_DS.pdf
    https://lumissil.com/assets/pdf/core/IS31FL3191_DS.pdf
    https://lumissil.com/assets/pdf/core/IS31FL3193_DS.pdf
    https://lumissil.com/assets/pdf/core/IS31FL3196_DS.pdf
    https://lumissil.com/assets/pdf/core/IS31FL3199_DS.pdf

properties:
  compatible:
    enum:
      - issi,is31fl3190
      - issi,is31fl3191
      - issi,is31fl3193
      - issi,is31fl3196
      - issi,is31fl3199
      - si-en,sn3190
      - si-en,sn3191
      - si-en,sn3193
      - si-en,sn3196
      - si-en,sn3199

  reg:
    maxItems: 1

  shutdown-gpios:
    maxItems: 1
    description: GPIO attached to the SDB pin.

  audio-gain-db:
    $ref: /schemas/types.yaml#/definitions/uint32
    default: 0
    description: Audio gain selection for external analog modulation input.
    enum: [0, 3, 6, 9, 12, 15, 18, 21]

  "#address-cells":
    const: 1

  "#size-cells":
    const: 0

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

    properties:
      reg:
        description: Index of the LED.
        minimum: 1
        maximum: 9

      led-max-microamp:
        description:
          Note that a driver will take the lowest of all LED limits
          since the chip has a single global setting. The lowest value
          will be chosen due to the PWM specificity, where lower
          brightness is achieved by reducing the duty-cycle of pulses
          and not the current, which will always have its peak value
          equal to led-max-microamp.

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - issi,is31fl3190
              - issi,is31fl3191
              - issi,is31fl3193
              - si-en,sn3190
              - si-en,sn3191
              - si-en,sn3193
    then:
      properties:
        reg:
          enum: [0x68, 0x69, 0x6a, 0x6b]

        audio-gain-db: false

      patternProperties:
        "^led@[1-9]$":
          properties:
            led-max-microamp:
              default: 42000
              enum: [5000, 10000, 17500, 30000, 42000]
    else:
      properties:
        reg:
          enum: [0x64, 0x65, 0x66, 0x67]

      patternProperties:
        "^led@[1-9]$":
          properties:
            led-max-microamp:
              default: 20000
              enum: [5000, 10000, 15000, 20000, 25000, 30000, 35000, 40000]
  - if:
      properties:
        compatible:
          contains:
            enum:
              - issi,is31fl3190
              - issi,is31fl3191
              - si-en,sn3190
              - si-en,sn3191
    then:
      patternProperties:
        "^led@[1-9]$":
          properties:
            reg:
              maximum: 1
  - if:
      properties:
        compatible:
          contains:
            enum:
              - issi,is31fl3193
              - si-en,sn3193
    then:
      patternProperties:
        "^led@[1-9]$":
          properties:
            reg:
              maximum: 3
  - if:
      properties:
        compatible:
          contains:
            enum:
              - issi,is31fl3196
              - si-en,sn3196
    then:
      patternProperties:
        "^led@[1-9]$":
          properties:
            reg:
              maximum: 6

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

additionalProperties: false

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

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

        led-controller@65 {
            compatible = "issi,is31fl3196";
            reg = <0x65>;
            #address-cells = <1>;
            #size-cells = <0>;

            shutdown-gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;

            led@1 {
                reg = <1>;
                label = "red:aux";
                led-max-microamp = <10000>;
            };

            led@5 {
                reg = <5>;
                label = "green:power";
                linux,default-trigger = "default-on";
            };
        };
    };
...

