Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/leds/leds-qcom-lpg.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm Light Pulse Generator
8
9maintainers:
10 - Bjorn Andersson <bjorn.andersson@linaro.org>
11
12description: >
13 The Qualcomm Light Pulse Generator consists of three different hardware blocks;
14 a ramp generator with lookup table (LUT), the light pulse generator and a three
15 channel current sink. These blocks are found in a wide range of Qualcomm PMICs.
16
17properties:
18 compatible:
19 oneOf:
20 - enum:
21 - qcom,pm660l-lpg
22 - qcom,pm8150b-lpg
23 - qcom,pm8150l-lpg
24 - qcom,pm8350c-pwm
25 - qcom,pm8916-pwm
26 - qcom,pm8941-lpg
27 - qcom,pm8994-lpg
28 - qcom,pmc8180c-lpg
29 - qcom,pmi632-lpg
30 - qcom,pmi8950-pwm
31 - qcom,pmi8994-lpg
32 - qcom,pmi8998-lpg
33 - qcom,pmk8550-pwm
34 - items:
35 - enum:
36 - qcom,pm6150l-lpg
37 - const: qcom,pm8150l-lpg
38 - items:
39 - enum:
40 - qcom,pm8550-pwm
41 - const: qcom,pm8350c-pwm
42
43 "#pwm-cells":
44 const: 2
45
46 "#address-cells":
47 const: 1
48
49 "#size-cells":
50 const: 0
51
52 qcom,power-source:
53 $ref: /schemas/types.yaml#/definitions/uint32
54 description:
55 power-source used to drive the output, as defined in the datasheet.
56 Should be specified if the TRILED block is present
57 enum: [0, 1, 3]
58
59 qcom,dtest:
60 $ref: /schemas/types.yaml#/definitions/uint32-matrix
61 description: >
62 A list of integer pairs, where each pair represent the dtest line the
63 particular channel should be connected to and the flags denoting how the
64 value should be outputted, as defined in the datasheet. The number of
65 pairs should be the same as the number of channels.
66 items:
67 items:
68 - description: dtest line to attach
69 - description: flags for the attachment
70
71 nvmem:
72 description: >
73 This property is required for PMICs that supports PPG, which is when a
74 PMIC stores LPG per-channel data and pattern LUT in SDAM modules instead
75 of in a LUT peripheral. For PMICs, such as PM8350C, per-channel data
76 and pattern LUT is separated into 2 SDAM modules. In that case, phandles
77 to both SDAM modules need to be specified.
78 minItems: 1
79 maxItems: 2
80
81 nvmem-names:
82 minItems: 1
83 items:
84 - const: lpg_chan_sdam
85 - const: lut_sdam
86
87 qcom,pbs:
88 $ref: /schemas/types.yaml#/definitions/phandle
89 description: >
90 Phandle of the Qualcomm Programmable Boot Sequencer node (PBS).
91 PBS node is used to trigger LPG pattern sequences for PMICs that support
92 single SDAM PPG.
93
94 multi-led:
95 type: object
96 $ref: leds-class-multicolor.yaml#
97 unevaluatedProperties: false
98
99 properties:
100 "#address-cells":
101 const: 1
102
103 "#size-cells":
104 const: 0
105
106 patternProperties:
107 "^led@[0-9a-f]$":
108 type: object
109 $ref: common.yaml#
110 unevaluatedProperties: false
111
112 properties:
113 reg:
114 maxItems: 1
115
116 required:
117 - reg
118
119patternProperties:
120 "^led@[0-9a-f]$":
121 type: object
122 $ref: common.yaml#
123 unevaluatedProperties: false
124
125 properties:
126 reg:
127 maxItems: 1
128
129 required:
130 - reg
131
132required:
133 - compatible
134
135additionalProperties: false
136
137allOf:
138 - if:
139 properties:
140 compatible:
141 contains:
142 enum:
143 - qcom,pm660l-lpg
144 - qcom,pm8150b-lpg
145 - qcom,pm8150l-lpg
146 - qcom,pm8916-pwm
147 - qcom,pm8941-lpg
148 - qcom,pm8994-lpg
149 - qcom,pmc8180c-lpg
150 - qcom,pmi8950-pwm
151 - qcom,pmi8994-lpg
152 - qcom,pmi8998-lpg
153 - qcom,pmk8550-pwm
154 then:
155 properties:
156 nvmem: false
157 nvmem-names: false
158
159 - if:
160 properties:
161 compatible:
162 contains:
163 const: qcom,pmi632-lpg
164 then:
165 properties:
166 nvmem:
167 maxItems: 1
168 nvmem-names:
169 maxItems: 1
170
171 - if:
172 properties:
173 compatible:
174 contains:
175 enum:
176 - qcom,pm8350c-pwm
177 then:
178 properties:
179 nvmem:
180 minItems: 2
181 nvmem-names:
182 minItems: 2
183
184examples:
185 - |
186 #include <dt-bindings/leds/common.h>
187
188 led-controller {
189 compatible = "qcom,pmi8994-lpg";
190
191 #address-cells = <1>;
192 #size-cells = <0>;
193
194 qcom,power-source = <1>;
195
196 qcom,dtest = <0 0>,
197 <0 0>,
198 <0 0>,
199 <4 1>;
200
201 led@1 {
202 reg = <1>;
203 color = <LED_COLOR_ID_GREEN>;
204 function = LED_FUNCTION_INDICATOR;
205 function-enumerator = <1>;
206 };
207
208 led@2 {
209 reg = <2>;
210 color = <LED_COLOR_ID_GREEN>;
211 function = LED_FUNCTION_INDICATOR;
212 function-enumerator = <0>;
213 default-state = "on";
214 };
215
216 led@3 {
217 reg = <3>;
218 color = <LED_COLOR_ID_GREEN>;
219 function = LED_FUNCTION_INDICATOR;
220 function-enumerator = <2>;
221 };
222
223 led@4 {
224 reg = <4>;
225 color = <LED_COLOR_ID_GREEN>;
226 function = LED_FUNCTION_INDICATOR;
227 function-enumerator = <3>;
228 };
229 };
230 - |
231 #include <dt-bindings/leds/common.h>
232
233 led-controller {
234 compatible = "qcom,pmi8994-lpg";
235
236 #address-cells = <1>;
237 #size-cells = <0>;
238
239 qcom,power-source = <1>;
240
241 multi-led {
242 color = <LED_COLOR_ID_RGB>;
243 function = LED_FUNCTION_STATUS;
244
245 #address-cells = <1>;
246 #size-cells = <0>;
247
248 led@1 {
249 reg = <1>;
250 color = <LED_COLOR_ID_RED>;
251 };
252
253 led@2 {
254 reg = <2>;
255 color = <LED_COLOR_ID_GREEN>;
256 };
257
258 led@3 {
259 reg = <3>;
260 color = <LED_COLOR_ID_BLUE>;
261 };
262 };
263 };
264 - |
265 pwm-controller {
266 compatible = "qcom,pm8916-pwm";
267 #pwm-cells = <2>;
268 };
269 - |
270 #include <dt-bindings/leds/common.h>
271
272 led-controller {
273 compatible = "qcom,pmi632-lpg";
274 #address-cells = <1>;
275 #size-cells = <0>;
276 #pwm-cells = <2>;
277 nvmem-names = "lpg_chan_sdam";
278 nvmem = <&pmi632_sdam_7>;
279 qcom,pbs = <&pmi632_pbs_client3>;
280
281 led@1 {
282 reg = <1>;
283 color = <LED_COLOR_ID_RED>;
284 label = "red";
285 };
286
287 led@2 {
288 reg = <2>;
289 color = <LED_COLOR_ID_GREEN>;
290 label = "green";
291 };
292
293 led@3 {
294 reg = <3>;
295 color = <LED_COLOR_ID_BLUE>;
296 label = "blue";
297 };
298 };