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

TOMOYO Linux Cross Reference
Linux/Documentation/devicetree/bindings/thermal/qcom-tsens.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 OR MIT)
  2 # Copyright 2019 Linaro Ltd.
  3 %YAML 1.2
  4 ---
  5 $id: http://devicetree.org/schemas/thermal/qcom-tsens.yaml#
  6 $schema: http://devicetree.org/meta-schemas/core.yaml#
  7 
  8 title: QCOM SoC Temperature Sensor (TSENS)
  9 
 10 maintainers:
 11   - Amit Kucheria <amitk@kernel.org>
 12 
 13 description: |
 14   QCOM SoCs have TSENS IP to allow temperature measurement. There are currently
 15   three distinct major versions of the IP that is supported by a single driver.
 16   The IP versions are named v0.1, v1 and v2 in the driver, where v0.1 captures
 17   everything before v1 when there was no versioning information.
 18 
 19 properties:
 20   compatible:
 21     oneOf:
 22       - description: msm8960 TSENS based
 23         items:
 24           - enum:
 25               - qcom,ipq8064-tsens
 26               - qcom,msm8960-tsens
 27 
 28       - description: v0.1 of TSENS
 29         items:
 30           - enum:
 31               - qcom,mdm9607-tsens
 32               - qcom,msm8226-tsens
 33               - qcom,msm8909-tsens
 34               - qcom,msm8916-tsens
 35               - qcom,msm8939-tsens
 36               - qcom,msm8974-tsens
 37           - const: qcom,tsens-v0_1
 38 
 39       - description: v1 of TSENS
 40         items:
 41           - enum:
 42               - qcom,msm8956-tsens
 43               - qcom,msm8976-tsens
 44               - qcom,qcs404-tsens
 45           - const: qcom,tsens-v1
 46 
 47       - description: v2 of TSENS
 48         items:
 49           - enum:
 50               - qcom,msm8953-tsens
 51               - qcom,msm8996-tsens
 52               - qcom,msm8998-tsens
 53               - qcom,qcm2290-tsens
 54               - qcom,sa8255p-tsens
 55               - qcom,sa8775p-tsens
 56               - qcom,sc7180-tsens
 57               - qcom,sc7280-tsens
 58               - qcom,sc8180x-tsens
 59               - qcom,sc8280xp-tsens
 60               - qcom,sdm630-tsens
 61               - qcom,sdm845-tsens
 62               - qcom,sm6115-tsens
 63               - qcom,sm6350-tsens
 64               - qcom,sm6375-tsens
 65               - qcom,sm8150-tsens
 66               - qcom,sm8250-tsens
 67               - qcom,sm8350-tsens
 68               - qcom,sm8450-tsens
 69               - qcom,sm8550-tsens
 70               - qcom,sm8650-tsens
 71               - qcom,x1e80100-tsens
 72           - const: qcom,tsens-v2
 73 
 74       - description: v2 of TSENS with combined interrupt
 75         enum:
 76           - qcom,ipq8074-tsens
 77 
 78       - description: v2 of TSENS with combined interrupt
 79         items:
 80           - enum:
 81               - qcom,ipq9574-tsens
 82           - const: qcom,ipq8074-tsens
 83 
 84   reg:
 85     items:
 86       - description: TM registers
 87       - description: SROT registers
 88 
 89   interrupts:
 90     minItems: 1
 91     maxItems: 2
 92 
 93   interrupt-names:
 94     minItems: 1
 95     maxItems: 2
 96 
 97   nvmem-cells:
 98     oneOf:
 99       - minItems: 1
100         maxItems: 2
101         description:
102           Reference to an nvmem node for the calibration data
103       - minItems: 5
104         maxItems: 35
105         description: |
106           Reference to nvmem cells for the calibration mode, two calibration
107           bases and two cells per each sensor
108         # special case for msm8974 / apq8084
109       - maxItems: 51
110         description: |
111           Reference to nvmem cells for the calibration mode, two calibration
112           bases and two cells per each sensor, main and backup copies, plus use_backup cell
113 
114   nvmem-cell-names:
115     oneOf:
116       - minItems: 1
117         items:
118           - const: calib
119           - enum:
120               - calib_backup
121               - calib_sel
122       - minItems: 5
123         items:
124           - const: mode
125           - const: base1
126           - const: base2
127           - pattern: '^s[0-9]+_p1$'
128           - pattern: '^s[0-9]+_p2$'
129           - pattern: '^s[0-9]+_p1$'
130           - pattern: '^s[0-9]+_p2$'
131           - pattern: '^s[0-9]+_p1$'
132           - pattern: '^s[0-9]+_p2$'
133           - pattern: '^s[0-9]+_p1$'
134           - pattern: '^s[0-9]+_p2$'
135           - pattern: '^s[0-9]+_p1$'
136           - pattern: '^s[0-9]+_p2$'
137           - pattern: '^s[0-9]+_p1$'
138           - pattern: '^s[0-9]+_p2$'
139           - pattern: '^s[0-9]+_p1$'
140           - pattern: '^s[0-9]+_p2$'
141           - pattern: '^s[0-9]+_p1$'
142           - pattern: '^s[0-9]+_p2$'
143           - pattern: '^s[0-9]+_p1$'
144           - pattern: '^s[0-9]+_p2$'
145           - pattern: '^s[0-9]+_p1$'
146           - pattern: '^s[0-9]+_p2$'
147           - pattern: '^s[0-9]+_p1$'
148           - pattern: '^s[0-9]+_p2$'
149           - pattern: '^s[0-9]+_p1$'
150           - pattern: '^s[0-9]+_p2$'
151           - pattern: '^s[0-9]+_p1$'
152           - pattern: '^s[0-9]+_p2$'
153           - pattern: '^s[0-9]+_p1$'
154           - pattern: '^s[0-9]+_p2$'
155           - pattern: '^s[0-9]+_p1$'
156           - pattern: '^s[0-9]+_p2$'
157           - pattern: '^s[0-9]+_p1$'
158           - pattern: '^s[0-9]+_p2$'
159         # special case for msm8974 / apq8084
160       - items:
161           - const: mode
162           - const: base1
163           - const: base2
164           - const: use_backup
165           - const: mode_backup
166           - const: base1_backup
167           - const: base2_backup
168           - const: s0_p1
169           - const: s0_p2
170           - const: s1_p1
171           - const: s1_p2
172           - const: s2_p1
173           - const: s2_p2
174           - const: s3_p1
175           - const: s3_p2
176           - const: s4_p1
177           - const: s4_p2
178           - const: s5_p1
179           - const: s5_p2
180           - const: s6_p1
181           - const: s6_p2
182           - const: s7_p1
183           - const: s7_p2
184           - const: s8_p1
185           - const: s8_p2
186           - const: s9_p1
187           - const: s9_p2
188           - const: s10_p1
189           - const: s10_p2
190           - const: s0_p1_backup
191           - const: s0_p2_backup
192           - const: s1_p1_backup
193           - const: s1_p2_backup
194           - const: s2_p1_backup
195           - const: s2_p2_backup
196           - const: s3_p1_backup
197           - const: s3_p2_backup
198           - const: s4_p1_backup
199           - const: s4_p2_backup
200           - const: s5_p1_backup
201           - const: s5_p2_backup
202           - const: s6_p1_backup
203           - const: s6_p2_backup
204           - const: s7_p1_backup
205           - const: s7_p2_backup
206           - const: s8_p1_backup
207           - const: s8_p2_backup
208           - const: s9_p1_backup
209           - const: s9_p2_backup
210           - const: s10_p1_backup
211           - const: s10_p2_backup
212 
213   "#qcom,sensors":
214     description:
215       Number of sensors enabled on this platform
216     $ref: /schemas/types.yaml#/definitions/uint32
217     minimum: 1
218     maximum: 16
219 
220   "#thermal-sensor-cells":
221     const: 1
222 
223 required:
224   - compatible
225   - interrupts
226   - interrupt-names
227   - "#qcom,sensors"
228 
229 allOf:
230   - $ref: thermal-sensor.yaml#
231 
232   - if:
233       properties:
234         compatible:
235           contains:
236             enum:
237               - qcom,ipq8064-tsens
238               - qcom,msm8960-tsens
239               - qcom,tsens-v0_1
240               - qcom,tsens-v1
241     then:
242       properties:
243         interrupts:
244           items:
245             - description: Combined interrupt if upper or lower threshold crossed
246         interrupt-names:
247           items:
248             - const: uplow
249 
250   - if:
251       properties:
252         compatible:
253           contains:
254             const: qcom,tsens-v2
255     then:
256       properties:
257         interrupts:
258           items:
259             - description: Combined interrupt if upper or lower threshold crossed
260             - description: Interrupt if critical threshold crossed
261         interrupt-names:
262           items:
263             - const: uplow
264             - const: critical
265 
266   - if:
267       properties:
268         compatible:
269           contains:
270             enum:
271               - qcom,ipq8074-tsens
272     then:
273       properties:
274         interrupts:
275           items:
276             - description: Combined interrupt if upper, lower or critical thresholds crossed
277         interrupt-names:
278           items:
279             - const: combined
280 
281   - if:
282       properties:
283         compatible:
284           contains:
285             enum:
286               - qcom,ipq8074-tsens
287               - qcom,tsens-v0_1
288               - qcom,tsens-v1
289               - qcom,tsens-v2
290 
291     then:
292       required:
293         - reg
294 
295 unevaluatedProperties: false
296 
297 examples:
298   - |
299     #include <dt-bindings/interrupt-controller/arm-gic.h>
300     thermal-sensor {
301         compatible = "qcom,ipq8064-tsens";
302 
303         nvmem-cells = <&tsens_calib>, <&tsens_calib_backup>;
304         nvmem-cell-names = "calib", "calib_backup";
305         interrupts = <GIC_SPI 178 IRQ_TYPE_LEVEL_HIGH>;
306         interrupt-names = "uplow";
307 
308         #qcom,sensors = <11>;
309         #thermal-sensor-cells = <1>;
310     };
311 
312   - |
313     #include <dt-bindings/interrupt-controller/arm-gic.h>
314     // Example 1 (new calibration data: for pre v1 IP):
315     thermal-sensor@4a9000 {
316         compatible = "qcom,msm8916-tsens", "qcom,tsens-v0_1";
317         reg = <0x4a9000 0x1000>, /* TM */
318               <0x4a8000 0x1000>; /* SROT */
319 
320         nvmem-cells = <&tsens_mode>,
321                       <&tsens_base1>, <&tsens_base2>,
322                       <&tsens_s0_p1>, <&tsens_s0_p2>,
323                       <&tsens_s1_p1>, <&tsens_s1_p2>,
324                       <&tsens_s2_p1>, <&tsens_s2_p2>,
325                       <&tsens_s4_p1>, <&tsens_s4_p2>,
326                       <&tsens_s5_p1>, <&tsens_s5_p2>;
327         nvmem-cell-names = "mode",
328                            "base1", "base2",
329                            "s0_p1", "s0_p2",
330                            "s1_p1", "s1_p2",
331                            "s2_p1", "s2_p2",
332                            "s4_p1", "s4_p2",
333                            "s5_p1", "s5_p2";
334 
335         interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
336         interrupt-names = "uplow";
337 
338         #qcom,sensors = <5>;
339         #thermal-sensor-cells = <1>;
340     };
341 
342   - |
343     #include <dt-bindings/interrupt-controller/arm-gic.h>
344     // Example 1 (legacy: for pre v1 IP):
345     tsens1: thermal-sensor@4a9000 {
346         compatible = "qcom,msm8916-tsens", "qcom,tsens-v0_1";
347         reg = <0x4a9000 0x1000>, /* TM */
348               <0x4a8000 0x1000>; /* SROT */
349 
350         nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
351         nvmem-cell-names = "calib", "calib_sel";
352 
353         interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
354         interrupt-names = "uplow";
355 
356         #qcom,sensors = <5>;
357         #thermal-sensor-cells = <1>;
358     };
359 
360   - |
361     #include <dt-bindings/interrupt-controller/arm-gic.h>
362     // Example 2 (for any platform containing v1 of the TSENS IP):
363     tsens2: thermal-sensor@4a9000 {
364         compatible = "qcom,qcs404-tsens", "qcom,tsens-v1";
365         reg = <0x004a9000 0x1000>, /* TM */
366               <0x004a8000 0x1000>; /* SROT */
367 
368         nvmem-cells = <&tsens_caldata>;
369         nvmem-cell-names = "calib";
370 
371         interrupts = <GIC_SPI 506 IRQ_TYPE_LEVEL_HIGH>;
372         interrupt-names = "uplow";
373 
374         #qcom,sensors = <10>;
375         #thermal-sensor-cells = <1>;
376     };
377 
378   - |
379     #include <dt-bindings/interrupt-controller/arm-gic.h>
380     // Example 3 (for any platform containing v2 of the TSENS IP):
381     tsens3: thermal-sensor@c263000 {
382         compatible = "qcom,sdm845-tsens", "qcom,tsens-v2";
383         reg = <0xc263000 0x1ff>,
384               <0xc222000 0x1ff>;
385 
386         interrupts = <GIC_SPI 506 IRQ_TYPE_LEVEL_HIGH>,
387                      <GIC_SPI 508 IRQ_TYPE_LEVEL_HIGH>;
388         interrupt-names = "uplow", "critical";
389 
390         #qcom,sensors = <13>;
391         #thermal-sensor-cells = <1>;
392     };
393 
394   - |
395     #include <dt-bindings/interrupt-controller/arm-gic.h>
396     // Example 4 (for any IPQ8074 based SoC-s):
397     tsens4: thermal-sensor@4a9000 {
398         compatible = "qcom,ipq8074-tsens";
399         reg = <0x4a9000 0x1000>,
400               <0x4a8000 0x1000>;
401 
402         interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
403         interrupt-names = "combined";
404 
405         #qcom,sensors = <16>;
406         #thermal-sensor-cells = <1>;
407     };
408 ...

~ [ 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