1dbc801b4SVincent Knecht# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2dbc801b4SVincent Knecht%YAML 1.2
3dbc801b4SVincent Knecht---
4dbc801b4SVincent Knecht$id: http://devicetree.org/schemas/leds/issi,is31fl319x.yaml#
5dbc801b4SVincent Knecht$schema: http://devicetree.org/meta-schemas/core.yaml#
6dbc801b4SVincent Knecht
73367934dSKrzysztof Kozlowskititle: ISSI LED Controllers for IS31FL319{0,1,3,6,9}
8dbc801b4SVincent Knecht
9dbc801b4SVincent Knechtmaintainers:
10dbc801b4SVincent Knecht  - Vincent Knecht <vincent.knecht@mailoo.org>
11dbc801b4SVincent Knecht
12dbc801b4SVincent Knechtdescription: |
13dbc801b4SVincent Knecht  The IS31FL319X are LED controllers with I2C interface.
14dbc801b4SVincent Knecht  Previously known as Si-En SN319{0,1,3,6,9}.
15dbc801b4SVincent Knecht
16dbc801b4SVincent Knecht  For more product information please see the links below:
17dbc801b4SVincent Knecht    https://lumissil.com/assets/pdf/core/IS31FL3190_DS.pdf
18dbc801b4SVincent Knecht    https://lumissil.com/assets/pdf/core/IS31FL3191_DS.pdf
19dbc801b4SVincent Knecht    https://lumissil.com/assets/pdf/core/IS31FL3193_DS.pdf
20dbc801b4SVincent Knecht    https://lumissil.com/assets/pdf/core/IS31FL3196_DS.pdf
21dbc801b4SVincent Knecht    https://lumissil.com/assets/pdf/core/IS31FL3199_DS.pdf
22dbc801b4SVincent Knecht
23dbc801b4SVincent Knechtproperties:
24dbc801b4SVincent Knecht  compatible:
25dbc801b4SVincent Knecht    enum:
26dbc801b4SVincent Knecht      - issi,is31fl3190
27dbc801b4SVincent Knecht      - issi,is31fl3191
28dbc801b4SVincent Knecht      - issi,is31fl3193
29dbc801b4SVincent Knecht      - issi,is31fl3196
30dbc801b4SVincent Knecht      - issi,is31fl3199
31fce43d8fSVincent Knecht      - si-en,sn3190
32fce43d8fSVincent Knecht      - si-en,sn3191
33fce43d8fSVincent Knecht      - si-en,sn3193
34fce43d8fSVincent Knecht      - si-en,sn3196
35dbc801b4SVincent Knecht      - si-en,sn3199
36dbc801b4SVincent Knecht
37dbc801b4SVincent Knecht  reg:
38dbc801b4SVincent Knecht    maxItems: 1
39dbc801b4SVincent Knecht
40dbc801b4SVincent Knecht  shutdown-gpios:
41dbc801b4SVincent Knecht    maxItems: 1
42dbc801b4SVincent Knecht    description: GPIO attached to the SDB pin.
43dbc801b4SVincent Knecht
44dbc801b4SVincent Knecht  audio-gain-db:
45dbc801b4SVincent Knecht    $ref: /schemas/types.yaml#/definitions/uint32
46dbc801b4SVincent Knecht    default: 0
47dbc801b4SVincent Knecht    description: Audio gain selection for external analog modulation input.
48dbc801b4SVincent Knecht    enum: [0, 3, 6, 9, 12, 15, 18, 21]
49dbc801b4SVincent Knecht
50dbc801b4SVincent Knecht  "#address-cells":
51dbc801b4SVincent Knecht    const: 1
52dbc801b4SVincent Knecht
53dbc801b4SVincent Knecht  "#size-cells":
54dbc801b4SVincent Knecht    const: 0
55dbc801b4SVincent Knecht
56dbc801b4SVincent KnechtpatternProperties:
57dbc801b4SVincent Knecht  "^led@[1-9]$":
58dbc801b4SVincent Knecht    type: object
59dbc801b4SVincent Knecht    $ref: common.yaml#
60fe469e83SKrzysztof Kozlowski    unevaluatedProperties: false
61dbc801b4SVincent Knecht
62dbc801b4SVincent Knecht    properties:
63dbc801b4SVincent Knecht      reg:
64dbc801b4SVincent Knecht        description: Index of the LED.
65dbc801b4SVincent Knecht        minimum: 1
66dbc801b4SVincent Knecht        maximum: 9
67dbc801b4SVincent Knecht
68dbc801b4SVincent Knecht      led-max-microamp:
69dbc801b4SVincent Knecht        description:
70dbc801b4SVincent Knecht          Note that a driver will take the lowest of all LED limits
71dbc801b4SVincent Knecht          since the chip has a single global setting. The lowest value
72dbc801b4SVincent Knecht          will be chosen due to the PWM specificity, where lower
73dbc801b4SVincent Knecht          brightness is achieved by reducing the duty-cycle of pulses
74dbc801b4SVincent Knecht          and not the current, which will always have its peak value
75dbc801b4SVincent Knecht          equal to led-max-microamp.
76dbc801b4SVincent Knecht
77fce43d8fSVincent KnechtallOf:
78fce43d8fSVincent Knecht  - if:
79fce43d8fSVincent Knecht      properties:
80fce43d8fSVincent Knecht        compatible:
81fce43d8fSVincent Knecht          contains:
82fce43d8fSVincent Knecht            enum:
83fce43d8fSVincent Knecht              - issi,is31fl3190
84fce43d8fSVincent Knecht              - issi,is31fl3191
85fce43d8fSVincent Knecht              - issi,is31fl3193
86fce43d8fSVincent Knecht              - si-en,sn3190
87fce43d8fSVincent Knecht              - si-en,sn3191
88fce43d8fSVincent Knecht              - si-en,sn3193
89fce43d8fSVincent Knecht    then:
90fce43d8fSVincent Knecht      properties:
91fce43d8fSVincent Knecht        reg:
92fce43d8fSVincent Knecht          enum: [0x68, 0x69, 0x6a, 0x6b]
93fce43d8fSVincent Knecht
94fce43d8fSVincent Knecht        audio-gain-db: false
95fce43d8fSVincent Knecht
96fce43d8fSVincent Knecht      patternProperties:
97fce43d8fSVincent Knecht        "^led@[1-9]$":
98fce43d8fSVincent Knecht          properties:
99fce43d8fSVincent Knecht            led-max-microamp:
100fce43d8fSVincent Knecht              default: 42000
101fce43d8fSVincent Knecht              enum: [5000, 10000, 17500, 30000, 42000]
102fce43d8fSVincent Knecht    else:
103fce43d8fSVincent Knecht      properties:
104fce43d8fSVincent Knecht        reg:
105fce43d8fSVincent Knecht          enum: [0x64, 0x65, 0x66, 0x67]
106fce43d8fSVincent Knecht
107fce43d8fSVincent Knecht      patternProperties:
108fce43d8fSVincent Knecht        "^led@[1-9]$":
109fce43d8fSVincent Knecht          properties:
110fce43d8fSVincent Knecht            led-max-microamp:
111fce43d8fSVincent Knecht              default: 20000
112fce43d8fSVincent Knecht              enum: [5000, 10000, 15000, 20000, 25000, 30000, 35000, 40000]
113fce43d8fSVincent Knecht  - if:
114fce43d8fSVincent Knecht      properties:
115fce43d8fSVincent Knecht        compatible:
116fce43d8fSVincent Knecht          contains:
117fce43d8fSVincent Knecht            enum:
118fce43d8fSVincent Knecht              - issi,is31fl3190
119fce43d8fSVincent Knecht              - issi,is31fl3191
120fce43d8fSVincent Knecht              - si-en,sn3190
121fce43d8fSVincent Knecht              - si-en,sn3191
122fce43d8fSVincent Knecht    then:
123fce43d8fSVincent Knecht      patternProperties:
124fce43d8fSVincent Knecht        "^led@[1-9]$":
125fce43d8fSVincent Knecht          properties:
126fce43d8fSVincent Knecht            reg:
127fce43d8fSVincent Knecht              maximum: 1
128fce43d8fSVincent Knecht  - if:
129fce43d8fSVincent Knecht      properties:
130fce43d8fSVincent Knecht        compatible:
131fce43d8fSVincent Knecht          contains:
132fce43d8fSVincent Knecht            enum:
133fce43d8fSVincent Knecht              - issi,is31fl3193
134fce43d8fSVincent Knecht              - si-en,sn3193
135fce43d8fSVincent Knecht    then:
136fce43d8fSVincent Knecht      patternProperties:
137fce43d8fSVincent Knecht        "^led@[1-9]$":
138fce43d8fSVincent Knecht          properties:
139fce43d8fSVincent Knecht            reg:
140fce43d8fSVincent Knecht              maximum: 3
141fce43d8fSVincent Knecht  - if:
142fce43d8fSVincent Knecht      properties:
143fce43d8fSVincent Knecht        compatible:
144fce43d8fSVincent Knecht          contains:
145fce43d8fSVincent Knecht            enum:
146fce43d8fSVincent Knecht              - issi,is31fl3196
147fce43d8fSVincent Knecht              - si-en,sn3196
148fce43d8fSVincent Knecht    then:
149fce43d8fSVincent Knecht      patternProperties:
150fce43d8fSVincent Knecht        "^led@[1-9]$":
151fce43d8fSVincent Knecht          properties:
152fce43d8fSVincent Knecht            reg:
153fce43d8fSVincent Knecht              maximum: 6
154fce43d8fSVincent Knecht
155dbc801b4SVincent Knechtrequired:
156dbc801b4SVincent Knecht  - compatible
157dbc801b4SVincent Knecht  - reg
158dbc801b4SVincent Knecht  - "#address-cells"
159dbc801b4SVincent Knecht  - "#size-cells"
160dbc801b4SVincent Knecht
161dbc801b4SVincent KnechtadditionalProperties: false
162dbc801b4SVincent Knecht
163dbc801b4SVincent Knechtexamples:
164dbc801b4SVincent Knecht  - |
165dbc801b4SVincent Knecht    #include <dt-bindings/gpio/gpio.h>
166dbc801b4SVincent Knecht    #include <dt-bindings/leds/common.h>
167dbc801b4SVincent Knecht
168*20a72af1SRob Herring    i2c {
169dbc801b4SVincent Knecht        #address-cells = <1>;
170dbc801b4SVincent Knecht        #size-cells = <0>;
171dbc801b4SVincent Knecht
172dbc801b4SVincent Knecht        led-controller@65 {
173dbc801b4SVincent Knecht            compatible = "issi,is31fl3196";
174dbc801b4SVincent Knecht            reg = <0x65>;
175dbc801b4SVincent Knecht            #address-cells = <1>;
176dbc801b4SVincent Knecht            #size-cells = <0>;
177dbc801b4SVincent Knecht
178dbc801b4SVincent Knecht            shutdown-gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
179dbc801b4SVincent Knecht
180dbc801b4SVincent Knecht            led@1 {
181dbc801b4SVincent Knecht                reg = <1>;
182dbc801b4SVincent Knecht                label = "red:aux";
183dbc801b4SVincent Knecht                led-max-microamp = <10000>;
184dbc801b4SVincent Knecht            };
185dbc801b4SVincent Knecht
186dbc801b4SVincent Knecht            led@5 {
187dbc801b4SVincent Knecht                reg = <5>;
188dbc801b4SVincent Knecht                label = "green:power";
189dbc801b4SVincent Knecht                linux,default-trigger = "default-on";
190dbc801b4SVincent Knecht            };
191dbc801b4SVincent Knecht        };
192dbc801b4SVincent Knecht    };
193dbc801b4SVincent Knecht...
194dbc801b4SVincent Knecht
195