162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/leds/issi,is31fl319x.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: ISSI LED Controllers for IS31FL319{0,1,3,6,9}
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Vincent Knecht <vincent.knecht@mailoo.org>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_cidescription: |
1362306a36Sopenharmony_ci  The IS31FL319X are LED controllers with I2C interface.
1462306a36Sopenharmony_ci  Previously known as Si-En SN319{0,1,3,6,9}.
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci  For more product information please see the links below:
1762306a36Sopenharmony_ci    https://lumissil.com/assets/pdf/core/IS31FL3190_DS.pdf
1862306a36Sopenharmony_ci    https://lumissil.com/assets/pdf/core/IS31FL3191_DS.pdf
1962306a36Sopenharmony_ci    https://lumissil.com/assets/pdf/core/IS31FL3193_DS.pdf
2062306a36Sopenharmony_ci    https://lumissil.com/assets/pdf/core/IS31FL3196_DS.pdf
2162306a36Sopenharmony_ci    https://lumissil.com/assets/pdf/core/IS31FL3199_DS.pdf
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciproperties:
2462306a36Sopenharmony_ci  compatible:
2562306a36Sopenharmony_ci    enum:
2662306a36Sopenharmony_ci      - issi,is31fl3190
2762306a36Sopenharmony_ci      - issi,is31fl3191
2862306a36Sopenharmony_ci      - issi,is31fl3193
2962306a36Sopenharmony_ci      - issi,is31fl3196
3062306a36Sopenharmony_ci      - issi,is31fl3199
3162306a36Sopenharmony_ci      - si-en,sn3190
3262306a36Sopenharmony_ci      - si-en,sn3191
3362306a36Sopenharmony_ci      - si-en,sn3193
3462306a36Sopenharmony_ci      - si-en,sn3196
3562306a36Sopenharmony_ci      - si-en,sn3199
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ci  reg:
3862306a36Sopenharmony_ci    maxItems: 1
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci  shutdown-gpios:
4162306a36Sopenharmony_ci    maxItems: 1
4262306a36Sopenharmony_ci    description: GPIO attached to the SDB pin.
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci  audio-gain-db:
4562306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/uint32
4662306a36Sopenharmony_ci    default: 0
4762306a36Sopenharmony_ci    description: Audio gain selection for external analog modulation input.
4862306a36Sopenharmony_ci    enum: [0, 3, 6, 9, 12, 15, 18, 21]
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci  "#address-cells":
5162306a36Sopenharmony_ci    const: 1
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci  "#size-cells":
5462306a36Sopenharmony_ci    const: 0
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_cipatternProperties:
5762306a36Sopenharmony_ci  "^led@[1-9]$":
5862306a36Sopenharmony_ci    type: object
5962306a36Sopenharmony_ci    $ref: common.yaml#
6062306a36Sopenharmony_ci    unevaluatedProperties: false
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci    properties:
6362306a36Sopenharmony_ci      reg:
6462306a36Sopenharmony_ci        description: Index of the LED.
6562306a36Sopenharmony_ci        minimum: 1
6662306a36Sopenharmony_ci        maximum: 9
6762306a36Sopenharmony_ci
6862306a36Sopenharmony_ci      led-max-microamp:
6962306a36Sopenharmony_ci        description:
7062306a36Sopenharmony_ci          Note that a driver will take the lowest of all LED limits
7162306a36Sopenharmony_ci          since the chip has a single global setting. The lowest value
7262306a36Sopenharmony_ci          will be chosen due to the PWM specificity, where lower
7362306a36Sopenharmony_ci          brightness is achieved by reducing the duty-cycle of pulses
7462306a36Sopenharmony_ci          and not the current, which will always have its peak value
7562306a36Sopenharmony_ci          equal to led-max-microamp.
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ciallOf:
7862306a36Sopenharmony_ci  - if:
7962306a36Sopenharmony_ci      properties:
8062306a36Sopenharmony_ci        compatible:
8162306a36Sopenharmony_ci          contains:
8262306a36Sopenharmony_ci            enum:
8362306a36Sopenharmony_ci              - issi,is31fl3190
8462306a36Sopenharmony_ci              - issi,is31fl3191
8562306a36Sopenharmony_ci              - issi,is31fl3193
8662306a36Sopenharmony_ci              - si-en,sn3190
8762306a36Sopenharmony_ci              - si-en,sn3191
8862306a36Sopenharmony_ci              - si-en,sn3193
8962306a36Sopenharmony_ci    then:
9062306a36Sopenharmony_ci      properties:
9162306a36Sopenharmony_ci        reg:
9262306a36Sopenharmony_ci          enum: [0x68, 0x69, 0x6a, 0x6b]
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci        audio-gain-db: false
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci      patternProperties:
9762306a36Sopenharmony_ci        "^led@[1-9]$":
9862306a36Sopenharmony_ci          properties:
9962306a36Sopenharmony_ci            led-max-microamp:
10062306a36Sopenharmony_ci              default: 42000
10162306a36Sopenharmony_ci              enum: [5000, 10000, 17500, 30000, 42000]
10262306a36Sopenharmony_ci    else:
10362306a36Sopenharmony_ci      properties:
10462306a36Sopenharmony_ci        reg:
10562306a36Sopenharmony_ci          enum: [0x64, 0x65, 0x66, 0x67]
10662306a36Sopenharmony_ci
10762306a36Sopenharmony_ci      patternProperties:
10862306a36Sopenharmony_ci        "^led@[1-9]$":
10962306a36Sopenharmony_ci          properties:
11062306a36Sopenharmony_ci            led-max-microamp:
11162306a36Sopenharmony_ci              default: 20000
11262306a36Sopenharmony_ci              enum: [5000, 10000, 15000, 20000, 25000, 30000, 35000, 40000]
11362306a36Sopenharmony_ci  - if:
11462306a36Sopenharmony_ci      properties:
11562306a36Sopenharmony_ci        compatible:
11662306a36Sopenharmony_ci          contains:
11762306a36Sopenharmony_ci            enum:
11862306a36Sopenharmony_ci              - issi,is31fl3190
11962306a36Sopenharmony_ci              - issi,is31fl3191
12062306a36Sopenharmony_ci              - si-en,sn3190
12162306a36Sopenharmony_ci              - si-en,sn3191
12262306a36Sopenharmony_ci    then:
12362306a36Sopenharmony_ci      patternProperties:
12462306a36Sopenharmony_ci        "^led@[1-9]$":
12562306a36Sopenharmony_ci          properties:
12662306a36Sopenharmony_ci            reg:
12762306a36Sopenharmony_ci              maximum: 1
12862306a36Sopenharmony_ci  - if:
12962306a36Sopenharmony_ci      properties:
13062306a36Sopenharmony_ci        compatible:
13162306a36Sopenharmony_ci          contains:
13262306a36Sopenharmony_ci            enum:
13362306a36Sopenharmony_ci              - issi,is31fl3193
13462306a36Sopenharmony_ci              - si-en,sn3193
13562306a36Sopenharmony_ci    then:
13662306a36Sopenharmony_ci      patternProperties:
13762306a36Sopenharmony_ci        "^led@[1-9]$":
13862306a36Sopenharmony_ci          properties:
13962306a36Sopenharmony_ci            reg:
14062306a36Sopenharmony_ci              maximum: 3
14162306a36Sopenharmony_ci  - if:
14262306a36Sopenharmony_ci      properties:
14362306a36Sopenharmony_ci        compatible:
14462306a36Sopenharmony_ci          contains:
14562306a36Sopenharmony_ci            enum:
14662306a36Sopenharmony_ci              - issi,is31fl3196
14762306a36Sopenharmony_ci              - si-en,sn3196
14862306a36Sopenharmony_ci    then:
14962306a36Sopenharmony_ci      patternProperties:
15062306a36Sopenharmony_ci        "^led@[1-9]$":
15162306a36Sopenharmony_ci          properties:
15262306a36Sopenharmony_ci            reg:
15362306a36Sopenharmony_ci              maximum: 6
15462306a36Sopenharmony_ci
15562306a36Sopenharmony_cirequired:
15662306a36Sopenharmony_ci  - compatible
15762306a36Sopenharmony_ci  - reg
15862306a36Sopenharmony_ci  - "#address-cells"
15962306a36Sopenharmony_ci  - "#size-cells"
16062306a36Sopenharmony_ci
16162306a36Sopenharmony_ciadditionalProperties: false
16262306a36Sopenharmony_ci
16362306a36Sopenharmony_ciexamples:
16462306a36Sopenharmony_ci  - |
16562306a36Sopenharmony_ci    #include <dt-bindings/gpio/gpio.h>
16662306a36Sopenharmony_ci    #include <dt-bindings/leds/common.h>
16762306a36Sopenharmony_ci
16862306a36Sopenharmony_ci    i2c {
16962306a36Sopenharmony_ci        #address-cells = <1>;
17062306a36Sopenharmony_ci        #size-cells = <0>;
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_ci        led-controller@65 {
17362306a36Sopenharmony_ci            compatible = "issi,is31fl3196";
17462306a36Sopenharmony_ci            reg = <0x65>;
17562306a36Sopenharmony_ci            #address-cells = <1>;
17662306a36Sopenharmony_ci            #size-cells = <0>;
17762306a36Sopenharmony_ci
17862306a36Sopenharmony_ci            shutdown-gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
17962306a36Sopenharmony_ci
18062306a36Sopenharmony_ci            led@1 {
18162306a36Sopenharmony_ci                reg = <1>;
18262306a36Sopenharmony_ci                label = "red:aux";
18362306a36Sopenharmony_ci                led-max-microamp = <10000>;
18462306a36Sopenharmony_ci            };
18562306a36Sopenharmony_ci
18662306a36Sopenharmony_ci            led@5 {
18762306a36Sopenharmony_ci                reg = <5>;
18862306a36Sopenharmony_ci                label = "green:power";
18962306a36Sopenharmony_ci                linux,default-trigger = "default-on";
19062306a36Sopenharmony_ci            };
19162306a36Sopenharmony_ci        };
19262306a36Sopenharmony_ci    };
19362306a36Sopenharmony_ci...
19462306a36Sopenharmony_ci
195