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
7dbc801b4SVincent Knechttitle: ISSI LED controllers bindings 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
31*fce43d8fSVincent Knecht      - si-en,sn3190
32*fce43d8fSVincent Knecht      - si-en,sn3191
33*fce43d8fSVincent Knecht      - si-en,sn3193
34*fce43d8fSVincent 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#
60dbc801b4SVincent Knecht
61dbc801b4SVincent Knecht    properties:
62dbc801b4SVincent Knecht      reg:
63dbc801b4SVincent Knecht        description: Index of the LED.
64dbc801b4SVincent Knecht        minimum: 1
65dbc801b4SVincent Knecht        maximum: 9
66dbc801b4SVincent Knecht
67dbc801b4SVincent Knecht      led-max-microamp:
68dbc801b4SVincent Knecht        description:
69dbc801b4SVincent Knecht          Note that a driver will take the lowest of all LED limits
70dbc801b4SVincent Knecht          since the chip has a single global setting. The lowest value
71dbc801b4SVincent Knecht          will be chosen due to the PWM specificity, where lower
72dbc801b4SVincent Knecht          brightness is achieved by reducing the duty-cycle of pulses
73dbc801b4SVincent Knecht          and not the current, which will always have its peak value
74dbc801b4SVincent Knecht          equal to led-max-microamp.
75dbc801b4SVincent Knecht
76*fce43d8fSVincent KnechtallOf:
77*fce43d8fSVincent Knecht  - if:
78*fce43d8fSVincent Knecht      properties:
79*fce43d8fSVincent Knecht        compatible:
80*fce43d8fSVincent Knecht          contains:
81*fce43d8fSVincent Knecht            enum:
82*fce43d8fSVincent Knecht              - issi,is31fl3190
83*fce43d8fSVincent Knecht              - issi,is31fl3191
84*fce43d8fSVincent Knecht              - issi,is31fl3193
85*fce43d8fSVincent Knecht              - si-en,sn3190
86*fce43d8fSVincent Knecht              - si-en,sn3191
87*fce43d8fSVincent Knecht              - si-en,sn3193
88*fce43d8fSVincent Knecht    then:
89*fce43d8fSVincent Knecht      properties:
90*fce43d8fSVincent Knecht        reg:
91*fce43d8fSVincent Knecht          enum: [0x68, 0x69, 0x6a, 0x6b]
92*fce43d8fSVincent Knecht
93*fce43d8fSVincent Knecht        audio-gain-db: false
94*fce43d8fSVincent Knecht
95*fce43d8fSVincent Knecht      patternProperties:
96*fce43d8fSVincent Knecht        "^led@[1-9]$":
97*fce43d8fSVincent Knecht          properties:
98*fce43d8fSVincent Knecht            led-max-microamp:
99*fce43d8fSVincent Knecht              default: 42000
100*fce43d8fSVincent Knecht              enum: [5000, 10000, 17500, 30000, 42000]
101*fce43d8fSVincent Knecht    else:
102*fce43d8fSVincent Knecht      properties:
103*fce43d8fSVincent Knecht        reg:
104*fce43d8fSVincent Knecht          enum: [0x64, 0x65, 0x66, 0x67]
105*fce43d8fSVincent Knecht
106*fce43d8fSVincent Knecht      patternProperties:
107*fce43d8fSVincent Knecht        "^led@[1-9]$":
108*fce43d8fSVincent Knecht          properties:
109*fce43d8fSVincent Knecht            led-max-microamp:
110*fce43d8fSVincent Knecht              default: 20000
111*fce43d8fSVincent Knecht              enum: [5000, 10000, 15000, 20000, 25000, 30000, 35000, 40000]
112*fce43d8fSVincent Knecht  - if:
113*fce43d8fSVincent Knecht      properties:
114*fce43d8fSVincent Knecht        compatible:
115*fce43d8fSVincent Knecht          contains:
116*fce43d8fSVincent Knecht            enum:
117*fce43d8fSVincent Knecht              - issi,is31fl3190
118*fce43d8fSVincent Knecht              - issi,is31fl3191
119*fce43d8fSVincent Knecht              - si-en,sn3190
120*fce43d8fSVincent Knecht              - si-en,sn3191
121*fce43d8fSVincent Knecht    then:
122*fce43d8fSVincent Knecht      patternProperties:
123*fce43d8fSVincent Knecht        "^led@[1-9]$":
124*fce43d8fSVincent Knecht          properties:
125*fce43d8fSVincent Knecht            reg:
126*fce43d8fSVincent Knecht              maximum: 1
127*fce43d8fSVincent Knecht  - if:
128*fce43d8fSVincent Knecht      properties:
129*fce43d8fSVincent Knecht        compatible:
130*fce43d8fSVincent Knecht          contains:
131*fce43d8fSVincent Knecht            enum:
132*fce43d8fSVincent Knecht              - issi,is31fl3193
133*fce43d8fSVincent Knecht              - si-en,sn3193
134*fce43d8fSVincent Knecht    then:
135*fce43d8fSVincent Knecht      patternProperties:
136*fce43d8fSVincent Knecht        "^led@[1-9]$":
137*fce43d8fSVincent Knecht          properties:
138*fce43d8fSVincent Knecht            reg:
139*fce43d8fSVincent Knecht              maximum: 3
140*fce43d8fSVincent Knecht  - if:
141*fce43d8fSVincent Knecht      properties:
142*fce43d8fSVincent Knecht        compatible:
143*fce43d8fSVincent Knecht          contains:
144*fce43d8fSVincent Knecht            enum:
145*fce43d8fSVincent Knecht              - issi,is31fl3196
146*fce43d8fSVincent Knecht              - si-en,sn3196
147*fce43d8fSVincent Knecht    then:
148*fce43d8fSVincent Knecht      patternProperties:
149*fce43d8fSVincent Knecht        "^led@[1-9]$":
150*fce43d8fSVincent Knecht          properties:
151*fce43d8fSVincent Knecht            reg:
152*fce43d8fSVincent Knecht              maximum: 6
153*fce43d8fSVincent Knecht
154dbc801b4SVincent Knechtrequired:
155dbc801b4SVincent Knecht  - compatible
156dbc801b4SVincent Knecht  - reg
157dbc801b4SVincent Knecht  - "#address-cells"
158dbc801b4SVincent Knecht  - "#size-cells"
159dbc801b4SVincent Knecht
160dbc801b4SVincent KnechtadditionalProperties: false
161dbc801b4SVincent Knecht
162dbc801b4SVincent Knechtexamples:
163dbc801b4SVincent Knecht  - |
164dbc801b4SVincent Knecht    #include <dt-bindings/gpio/gpio.h>
165dbc801b4SVincent Knecht    #include <dt-bindings/leds/common.h>
166dbc801b4SVincent Knecht
167dbc801b4SVincent Knecht    i2c0 {
168dbc801b4SVincent Knecht        #address-cells = <1>;
169dbc801b4SVincent Knecht        #size-cells = <0>;
170dbc801b4SVincent Knecht
171dbc801b4SVincent Knecht        led-controller@65 {
172dbc801b4SVincent Knecht            compatible = "issi,is31fl3196";
173dbc801b4SVincent Knecht            reg = <0x65>;
174dbc801b4SVincent Knecht            #address-cells = <1>;
175dbc801b4SVincent Knecht            #size-cells = <0>;
176dbc801b4SVincent Knecht
177dbc801b4SVincent Knecht            shutdown-gpios = <&gpio0 11 GPIO_ACTIVE_HIGH>;
178dbc801b4SVincent Knecht
179dbc801b4SVincent Knecht            led@1 {
180dbc801b4SVincent Knecht                reg = <1>;
181dbc801b4SVincent Knecht                label = "red:aux";
182dbc801b4SVincent Knecht                led-max-microamp = <10000>;
183dbc801b4SVincent Knecht            };
184dbc801b4SVincent Knecht
185dbc801b4SVincent Knecht            led@5 {
186dbc801b4SVincent Knecht                reg = <5>;
187dbc801b4SVincent Knecht                label = "green:power";
188dbc801b4SVincent Knecht                linux,default-trigger = "default-on";
189dbc801b4SVincent Knecht            };
190dbc801b4SVincent Knecht        };
191dbc801b4SVincent Knecht    };
192dbc801b4SVincent Knecht...
193dbc801b4SVincent Knecht
194