1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
4 * Copyright (c) 2021-2023, Linaro Limited
5 */
6
7#include <dt-bindings/input/input.h>
8#include <dt-bindings/interrupt-controller/irq.h>
9#include <dt-bindings/spmi/spmi.h>
10#include <dt-bindings/iio/qcom,spmi-vadc.h>
11
12/ {
13	thermal-zones {
14		pmc8180-thermal {
15			polling-delay-passive = <100>;
16
17			thermal-sensors = <&pmc8180_temp>;
18
19			trips {
20				trip0 {
21					temperature = <95000>;
22					hysteresis = <0>;
23					type = "passive";
24				};
25
26				trip1 {
27					temperature = <115000>;
28					hysteresis = <0>;
29					type = "hot";
30				};
31
32				trip2 {
33					temperature = <145000>;
34					hysteresis = <0>;
35					type = "critical";
36				};
37			};
38		};
39
40		pmc8180c-thermal {
41			polling-delay-passive = <100>;
42
43			thermal-sensors = <&pmc8180c_temp>;
44
45			trips {
46				trip0 {
47					temperature = <95000>;
48					hysteresis = <0>;
49					type = "passive";
50				};
51
52				trip1 {
53					temperature = <115000>;
54					hysteresis = <0>;
55					type = "hot";
56				};
57
58				trip2 {
59					temperature = <145000>;
60					hysteresis = <0>;
61					type = "critical";
62				};
63			};
64		};
65	};
66};
67
68&spmi_bus {
69	pmc8180_0: pmic@0 {
70		compatible = "qcom,pm8150", "qcom,spmi-pmic";
71		reg = <0x0 SPMI_USID>;
72		#address-cells = <1>;
73		#size-cells = <0>;
74
75		pon: pon@800 {
76			compatible = "qcom,pm8916-pon";
77			reg = <0x0800>;
78			pmc8180_pwrkey: pwrkey {
79				compatible = "qcom,pm8941-pwrkey";
80				interrupts = <0x0 0x8 0x0 IRQ_TYPE_EDGE_BOTH>;
81				debounce = <15625>;
82				bias-pull-up;
83				linux,code = <KEY_POWER>;
84
85				status = "disabled";
86			};
87		};
88
89		pmc8180_temp: temp-alarm@2400 {
90			compatible = "qcom,spmi-temp-alarm";
91			reg = <0x2400>;
92			interrupts = <0x0 0x24 0x0 IRQ_TYPE_EDGE_BOTH>;
93			io-channels = <&pmc8180_adc ADC5_DIE_TEMP>;
94			io-channel-names = "thermal";
95			#thermal-sensor-cells = <0>;
96		};
97
98		pmc8180_adc: adc@3100 {
99			compatible = "qcom,spmi-adc5";
100			reg = <0x3100>;
101			#address-cells = <1>;
102			#size-cells = <0>;
103			#io-channel-cells = <1>;
104			interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
105
106			channel@0 {
107				reg = <ADC5_REF_GND>;
108				qcom,pre-scaling = <1 1>;
109				label = "ref_gnd";
110			};
111
112			channel@1 {
113				reg = <ADC5_1P25VREF>;
114				qcom,pre-scaling = <1 1>;
115				label = "vref_1p25";
116			};
117
118			channel@6 {
119				reg = <ADC5_DIE_TEMP>;
120				qcom,pre-scaling = <1 1>;
121				label = "die_temp";
122			};
123		};
124
125		pmc8180_adc_tm: adc-tm@3500 {
126			compatible = "qcom,spmi-adc-tm5";
127			reg = <0x3500>;
128			interrupts = <0x0 0x35 0x0 IRQ_TYPE_EDGE_RISING>;
129			#thermal-sensor-cells = <1>;
130			#address-cells = <1>;
131			#size-cells = <0>;
132			status = "disabled";
133		};
134
135		rtc@6000 {
136			compatible = "qcom,pm8941-rtc";
137			reg = <0x6000>;
138			reg-names = "rtc", "alarm";
139			interrupts = <0x0 0x61 0x1 IRQ_TYPE_NONE>;
140		};
141
142		pmc8180_1_gpios: gpio@c000 {
143			compatible = "qcom,pmc8180-gpio", "qcom,spmi-gpio";
144			reg = <0xc000>;
145			gpio-controller;
146			gpio-ranges = <&pmc8180_1_gpios 0 0 10>;
147			#gpio-cells = <2>;
148			interrupt-controller;
149			#interrupt-cells = <2>;
150		};
151	};
152
153	pmic@1 {
154		compatible = "qcom,pmc8180", "qcom,spmi-pmic";
155		reg = <0x1 SPMI_USID>;
156		#address-cells = <1>;
157		#size-cells = <0>;
158	};
159
160	pmic@2 {
161		compatible = "qcom,smb2351", "qcom,spmi-pmic";
162		reg = <0x2 SPMI_USID>;
163		#address-cells = <1>;
164		#size-cells = <0>;
165
166		adc@3100 {
167			compatible = "qcom,spmi-adc-rev2";
168			reg = <0x3100>;
169			#address-cells = <1>;
170			#size-cells = <0>;
171			#io-channel-cells = <1>;
172			interrupts = <0x2 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
173
174			channel@0 {
175				reg = <ADC5_REF_GND>;
176				qcom,pre-scaling = <1 1>;
177				label = "ref_gnd";
178			};
179
180			channel@1 {
181				reg = <ADC5_1P25VREF>;
182				qcom,pre-scaling = <1 1>;
183				label = "vref_1p25";
184			};
185
186			channel@85 {
187				reg = <0x85>;
188				qcom,pre-scaling = <1 1>;
189				label = "vcoin2";
190			};
191		};
192	};
193
194	pmic@6 {
195		compatible = "qcom,pm8150c", "qcom,spmi-pmic";
196		reg = <0x6 SPMI_USID>;
197		#address-cells = <1>;
198		#size-cells = <0>;
199	};
200
201	pmc8180_2: pmic@8 {
202		compatible = "qcom,pm8150", "qcom,spmi-pmic";
203		reg = <0x8 SPMI_USID>;
204		#address-cells = <1>;
205		#size-cells = <0>;
206
207		pmc8180_2_gpios: gpio@c000 {
208			compatible = "qcom,pmc8180-gpio", "qcom,spmi-gpio";
209			reg = <0xc000>;
210			gpio-controller;
211			gpio-ranges = <&pmc8180_2_gpios 0 0 10>;
212			#gpio-cells = <2>;
213			interrupt-controller;
214			#interrupt-cells = <2>;
215		};
216	};
217
218	pmic@a {
219		compatible = "qcom,smb2351", "qcom,spmi-pmic";
220		reg = <0xa SPMI_USID>;
221		#address-cells = <1>;
222		#size-cells = <0>;
223
224		adc@3100 {
225			compatible = "qcom,spmi-adc-rev2";
226			reg = <0x3100>;
227			#address-cells = <1>;
228			#size-cells = <0>;
229			#io-channel-cells = <1>;
230			interrupts = <0xa 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
231
232			channel@0 {
233				reg = <ADC5_REF_GND>;
234				qcom,pre-scaling = <1 1>;
235				label = "ref_gnd";
236			};
237
238			channel@1 {
239				reg = <ADC5_1P25VREF>;
240				qcom,pre-scaling = <1 1>;
241				label = "vref_1p25";
242			};
243
244			channel@85 {
245				reg = <0x85>;
246				qcom,pre-scaling = <1 1>;
247				label = "vcoin";
248			};
249		};
250	};
251
252	pmic@4 {
253		compatible = "qcom,pm8150c", "qcom,spmi-pmic";
254		reg = <0x4 SPMI_USID>;
255		#address-cells = <1>;
256		#size-cells = <0>;
257
258		pon@800 {
259			compatible = "qcom,pm8916-pon";
260			reg = <0x0800>;
261
262			status = "disabled";
263		};
264
265		pmc8180c_temp: temp-alarm@2400 {
266			compatible = "qcom,spmi-temp-alarm";
267			reg = <0x2400>;
268			interrupts = <0x4 0x24 0x0 IRQ_TYPE_EDGE_BOTH>;
269			io-channels = <&pmc8180c_adc ADC5_DIE_TEMP>;
270			io-channel-names = "thermal";
271			#thermal-sensor-cells = <0>;
272		};
273
274		pmc8180c_adc: adc@3100 {
275			compatible = "qcom,spmi-adc5";
276			reg = <0x3100>;
277			#address-cells = <1>;
278			#size-cells = <0>;
279			#io-channel-cells = <1>;
280			interrupts = <0x4 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
281
282			channel@0 {
283				reg = <ADC5_REF_GND>;
284				qcom,pre-scaling = <1 1>;
285				label = "ref_gnd";
286			};
287
288			channel@1 {
289				reg = <ADC5_1P25VREF>;
290				qcom,pre-scaling = <1 1>;
291				label = "vref_1p25";
292			};
293
294			channel@6 {
295				reg = <ADC5_DIE_TEMP>;
296				qcom,pre-scaling = <1 1>;
297				label = "die_temp";
298			};
299		};
300
301		pmc8180c_adc_tm: adc-tm@3500 {
302			compatible = "qcom,spmi-adc-tm5";
303			reg = <0x3500>;
304			interrupts = <0x4 0x35 0x0 IRQ_TYPE_EDGE_RISING>;
305			#thermal-sensor-cells = <1>;
306			#address-cells = <1>;
307			#size-cells = <0>;
308			status = "disabled";
309		};
310
311		pmc8180c_gpios: gpio@c000 {
312			compatible = "qcom,pmc8180c-gpio", "qcom,spmi-gpio";
313			reg = <0xc000>;
314			gpio-controller;
315			gpio-ranges = <&pmc8180c_gpios 0 0 12>;
316			#gpio-cells = <2>;
317			interrupt-controller;
318			#interrupt-cells = <2>;
319		};
320	};
321
322	pmic@5 {
323		compatible = "qcom,pmc8180c", "qcom,spmi-pmic";
324		reg = <0x5 SPMI_USID>;
325
326		pmc8180c_lpg: pwm {
327			compatible = "qcom,pmc8180c-lpg";
328
329			#address-cells = <1>;
330			#size-cells = <0>;
331			#pwm-cells = <2>;
332
333			status = "disabled";
334		};
335	};
336};
337