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