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