~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/leds/leds-qcom-lpg.yaml

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  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 
  7 title: Qualcomm Light Pulse Generator
  8 
  9 maintainers:
 10   - Bjorn Andersson <bjorn.andersson@linaro.org>
 11 
 12 description: >
 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 
 17 properties:
 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 
119 patternProperties:
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 
132 required:
133   - compatible
134 
135 additionalProperties: false
136 
137 allOf:
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 
184 examples:
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     };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php