]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - Bindings/thermal/qcom-tsens.yaml
DTS: Update the device-tree files to Linux 5.5
[FreeBSD/FreeBSD.git] / Bindings / thermal / qcom-tsens.yaml
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 <amit.kucheria@linaro.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: v0.1 of TSENS
23         items:
24           - enum:
25               - qcom,msm8916-tsens
26               - qcom,msm8974-tsens
27           - const: qcom,tsens-v0_1
28
29       - description: v1 of TSENS
30         items:
31           - enum:
32               - qcom,msm8976-tsens
33               - qcom,qcs404-tsens
34           - const: qcom,tsens-v1
35
36       - description: v2 of TSENS
37         items:
38           - enum:
39               - qcom,msm8996-tsens
40               - qcom,msm8998-tsens
41               - qcom,sdm845-tsens
42           - const: qcom,tsens-v2
43
44   reg:
45     maxItems: 2
46     items:
47       - description: TM registers
48       - description: SROT registers
49
50   nvmem-cells:
51     minItems: 1
52     maxItems: 2
53     description:
54       Reference to an nvmem node for the calibration data
55
56   nvmem-cells-names:
57     minItems: 1
58     maxItems: 2
59     items:
60       - enum:
61         - caldata
62         - calsel
63
64   "#qcom,sensors":
65     allOf:
66       - $ref: /schemas/types.yaml#/definitions/uint32
67       - minimum: 1
68       - maximum: 16
69     description:
70       Number of sensors enabled on this platform
71
72   "#thermal-sensor-cells":
73     const: 1
74     description:
75       Number of cells required to uniquely identify the thermal sensors. Since
76       we have multiple sensors this is set to 1
77
78 allOf:
79   - if:
80       properties:
81         compatible:
82           contains:
83             enum:
84               - qcom,msm8916-tsens
85               - qcom,msm8974-tsens
86               - qcom,msm8976-tsens
87               - qcom,qcs404-tsens
88               - qcom,tsens-v0_1
89               - qcom,tsens-v1
90     then:
91       properties:
92         interrupts:
93           items:
94             - description: Combined interrupt if upper or lower threshold crossed
95         interrupt-names:
96           items:
97             - const: uplow
98
99     else:
100       properties:
101         interrupts:
102           items:
103             - description: Combined interrupt if upper or lower threshold crossed
104             - description: Interrupt if critical threshold crossed
105         interrupt-names:
106           items:
107             - const: uplow
108             - const: critical
109
110 required:
111   - compatible
112   - reg
113   - "#qcom,sensors"
114   - interrupts
115   - interrupt-names
116   - "#thermal-sensor-cells"
117
118 examples:
119   - |
120     #include <dt-bindings/interrupt-controller/arm-gic.h>
121     // Example 1 (legacy: for pre v1 IP):
122     tsens1: thermal-sensor@900000 {
123            compatible = "qcom,msm8916-tsens", "qcom,tsens-v0_1";
124            reg = <0x4a9000 0x1000>, /* TM */
125                  <0x4a8000 0x1000>; /* SROT */
126
127            nvmem-cells = <&tsens_caldata>, <&tsens_calsel>;
128            nvmem-cell-names = "caldata", "calsel";
129
130            interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
131            interrupt-names = "uplow";
132
133            #qcom,sensors = <5>;
134            #thermal-sensor-cells = <1>;
135     };
136
137   - |
138     #include <dt-bindings/interrupt-controller/arm-gic.h>
139     // Example 2 (for any platform containing v1 of the TSENS IP):
140     tsens2: thermal-sensor@4a9000 {
141           compatible = "qcom,qcs404-tsens", "qcom,tsens-v1";
142           reg = <0x004a9000 0x1000>, /* TM */
143                 <0x004a8000 0x1000>; /* SROT */
144
145           nvmem-cells = <&tsens_caldata>;
146           nvmem-cell-names = "calib";
147
148           interrupts = <GIC_SPI 506 IRQ_TYPE_LEVEL_HIGH>;
149           interrupt-names = "uplow";
150
151           #qcom,sensors = <10>;
152           #thermal-sensor-cells = <1>;
153     };
154
155   - |
156     #include <dt-bindings/interrupt-controller/arm-gic.h>
157     // Example 3 (for any platform containing v2 of the TSENS IP):
158     tsens3: thermal-sensor@c263000 {
159            compatible = "qcom,sdm845-tsens", "qcom,tsens-v2";
160            reg = <0xc263000 0x1ff>,
161                  <0xc222000 0x1ff>;
162
163            interrupts = <GIC_SPI 506 IRQ_TYPE_LEVEL_HIGH>,
164                         <GIC_SPI 508 IRQ_TYPE_LEVEL_HIGH>;
165            interrupt-names = "uplow", "critical";
166
167            #qcom,sensors = <13>;
168            #thermal-sensor-cells = <1>;
169     };
170 ...