@@ -37,6 +37,7 @@ properties:
3737 - description : v1 of TSENS
3838 items :
3939 - enum :
40+ - qcom,msm8956-tsens
4041 - qcom,msm8976-tsens
4142 - qcom,qcs404-tsens
4243 - const : qcom,tsens-v1
@@ -80,18 +81,120 @@ properties:
8081 maxItems : 2
8182
8283 nvmem-cells :
83- minItems : 1
84- maxItems : 2
85- description :
86- Reference to an nvmem node for the calibration data
84+ oneOf :
85+ - minItems : 1
86+ maxItems : 2
87+ description :
88+ Reference to an nvmem node for the calibration data
89+ - minItems : 5
90+ maxItems : 35
91+ description : |
92+ Reference to nvmem cells for the calibration mode, two calibration
93+ bases and two cells per each sensor
94+ # special case for msm8974 / apq8084
95+ - maxItems : 51
96+ description : |
97+ Reference to nvmem cells for the calibration mode, two calibration
98+ bases and two cells per each sensor, main and backup copies, plus use_backup cell
8799
88100 nvmem-cell-names :
89- minItems : 1
90- items :
91- - const : calib
92- - enum :
93- - calib_backup
94- - calib_sel
101+ oneOf :
102+ - minItems : 1
103+ items :
104+ - const : calib
105+ - enum :
106+ - calib_backup
107+ - calib_sel
108+ - minItems : 5
109+ items :
110+ - const : mode
111+ - const : base1
112+ - const : base2
113+ - pattern : ' ^s[0-9]+_p1$'
114+ - pattern : ' ^s[0-9]+_p2$'
115+ - pattern : ' ^s[0-9]+_p1$'
116+ - pattern : ' ^s[0-9]+_p2$'
117+ - pattern : ' ^s[0-9]+_p1$'
118+ - pattern : ' ^s[0-9]+_p2$'
119+ - pattern : ' ^s[0-9]+_p1$'
120+ - pattern : ' ^s[0-9]+_p2$'
121+ - pattern : ' ^s[0-9]+_p1$'
122+ - pattern : ' ^s[0-9]+_p2$'
123+ - pattern : ' ^s[0-9]+_p1$'
124+ - pattern : ' ^s[0-9]+_p2$'
125+ - pattern : ' ^s[0-9]+_p1$'
126+ - pattern : ' ^s[0-9]+_p2$'
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+ # special case for msm8974 / apq8084
146+ - items :
147+ - const : mode
148+ - const : base1
149+ - const : base2
150+ - const : use_backup
151+ - const : mode_backup
152+ - const : base1_backup
153+ - const : base2_backup
154+ - const : s0_p1
155+ - const : s0_p2
156+ - const : s1_p1
157+ - const : s1_p2
158+ - const : s2_p1
159+ - const : s2_p2
160+ - const : s3_p1
161+ - const : s3_p2
162+ - const : s4_p1
163+ - const : s4_p2
164+ - const : s5_p1
165+ - const : s5_p2
166+ - const : s6_p1
167+ - const : s6_p2
168+ - const : s7_p1
169+ - const : s7_p2
170+ - const : s8_p1
171+ - const : s8_p2
172+ - const : s9_p1
173+ - const : s9_p2
174+ - const : s10_p1
175+ - const : s10_p2
176+ - const : s0_p1_backup
177+ - const : s0_p2_backup
178+ - const : s1_p1_backup
179+ - const : s1_p2_backup
180+ - const : s2_p1_backup
181+ - const : s2_p2_backup
182+ - const : s3_p1_backup
183+ - const : s3_p2_backup
184+ - const : s4_p1_backup
185+ - const : s4_p2_backup
186+ - const : s5_p1_backup
187+ - const : s5_p2_backup
188+ - const : s6_p1_backup
189+ - const : s6_p2_backup
190+ - const : s7_p1_backup
191+ - const : s7_p2_backup
192+ - const : s8_p1_backup
193+ - const : s8_p2_backup
194+ - const : s9_p1_backup
195+ - const : s9_p2_backup
196+ - const : s10_p1_backup
197+ - const : s10_p2_backup
95198
96199 " #qcom,sensors " :
97200 description :
@@ -220,6 +323,36 @@ examples:
220323 };
221324 };
222325
326+ - |
327+ #include <dt-bindings/interrupt-controller/arm-gic.h>
328+ // Example 1 (new calbiration data: for pre v1 IP):
329+ thermal-sensor@900000 {
330+ compatible = "qcom,msm8916-tsens", "qcom,tsens-v0_1";
331+ reg = <0x4a9000 0x1000>, /* TM */
332+ <0x4a8000 0x1000>; /* SROT */
333+
334+ nvmem-cells = <&tsens_mode>,
335+ <&tsens_base1>, <&tsens_base2>,
336+ <&tsens_s0_p1>, <&tsens_s0_p2>,
337+ <&tsens_s1_p1>, <&tsens_s1_p2>,
338+ <&tsens_s2_p1>, <&tsens_s2_p2>,
339+ <&tsens_s4_p1>, <&tsens_s4_p2>,
340+ <&tsens_s5_p1>, <&tsens_s5_p2>;
341+ nvmem-cell-names = "mode",
342+ "base1", "base2",
343+ "s0_p1", "s0_p2",
344+ "s1_p1", "s1_p2",
345+ "s2_p1", "s2_p2",
346+ "s4_p1", "s4_p2",
347+ "s5_p1", "s5_p2";
348+
349+ interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
350+ interrupt-names = "uplow";
351+
352+ #qcom,sensors = <5>;
353+ #thermal-sensor-cells = <1>;
354+ };
355+
223356 - |
224357 #include <dt-bindings/interrupt-controller/arm-gic.h>
225358 // Example 1 (legacy: for pre v1 IP):
0 commit comments