xref: /linux/arch/arm64/boot/dts/qcom/hamoa-pmics.dtsi (revision 0cac5ce06e524755b3dac1e0a060b05992076d93)
1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2024, Linaro Limited
4 */
5
6#include <dt-bindings/input/input.h>
7#include <dt-bindings/input/linux-event-codes.h>
8#include <dt-bindings/interrupt-controller/irq.h>
9#include <dt-bindings/spmi/spmi.h>
10
11/ {
12	thermal-zones {
13		pm8550-thermal {
14			polling-delay-passive = <100>;
15
16			thermal-sensors = <&pm8550_temp_alarm>;
17
18			trips {
19				trip0 {
20					temperature = <95000>;
21					hysteresis = <0>;
22					type = "passive";
23				};
24
25				trip1 {
26					temperature = <115000>;
27					hysteresis = <0>;
28					type = "hot";
29				};
30			};
31		};
32
33		pm8550ve-2-thermal {
34			polling-delay-passive = <100>;
35
36			thermal-sensors = <&pm8550ve_2_temp_alarm>;
37
38			trips {
39				trip0 {
40					temperature = <95000>;
41					hysteresis = <0>;
42					type = "passive";
43				};
44
45				trip1 {
46					temperature = <115000>;
47					hysteresis = <0>;
48					type = "hot";
49				};
50			};
51		};
52
53		pmc8380-3-thermal {
54			polling-delay-passive = <100>;
55
56			thermal-sensors = <&pmc8380_3_temp_alarm>;
57
58			trips {
59				trip0 {
60					temperature = <95000>;
61					hysteresis = <0>;
62					type = "passive";
63				};
64
65				trip1 {
66					temperature = <115000>;
67					hysteresis = <0>;
68					type = "hot";
69				};
70			};
71		};
72
73		pmc8380-4-thermal {
74			polling-delay-passive = <100>;
75
76			thermal-sensors = <&pmc8380_4_temp_alarm>;
77
78			trips {
79				trip0 {
80					temperature = <95000>;
81					hysteresis = <0>;
82					type = "passive";
83				};
84
85				trip1 {
86					temperature = <115000>;
87					hysteresis = <0>;
88					type = "hot";
89				};
90			};
91		};
92
93		pmc8380-5-thermal {
94			polling-delay-passive = <100>;
95
96			thermal-sensors = <&pmc8380_5_temp_alarm>;
97
98			trips {
99				trip0 {
100					temperature = <95000>;
101					hysteresis = <0>;
102					type = "passive";
103				};
104
105				trip1 {
106					temperature = <115000>;
107					hysteresis = <0>;
108					type = "hot";
109				};
110			};
111		};
112
113		pmc8380_6_thermal: pmc8380-6-thermal {
114			polling-delay-passive = <100>;
115
116			thermal-sensors = <&pmc8380_6_temp_alarm>;
117
118			trips {
119				trip0 {
120					temperature = <95000>;
121					hysteresis = <0>;
122					type = "passive";
123				};
124
125				trip1 {
126					temperature = <115000>;
127					hysteresis = <0>;
128					type = "hot";
129				};
130			};
131		};
132
133		pm8550ve-8-thermal {
134			polling-delay-passive = <100>;
135
136			thermal-sensors = <&pm8550ve_8_temp_alarm>;
137
138			trips {
139				trip0 {
140					temperature = <95000>;
141					hysteresis = <0>;
142					type = "passive";
143				};
144
145				trip1 {
146					temperature = <115000>;
147					hysteresis = <0>;
148					type = "hot";
149				};
150			};
151		};
152
153		pm8550ve-9-thermal {
154			polling-delay-passive = <100>;
155
156			thermal-sensors = <&pm8550ve_9_temp_alarm>;
157
158			trips {
159				trip0 {
160					temperature = <95000>;
161					hysteresis = <0>;
162					type = "passive";
163				};
164
165				trip1 {
166					temperature = <115000>;
167					hysteresis = <0>;
168					type = "hot";
169				};
170			};
171		};
172
173		pm8010-thermal {
174			polling-delay-passive = <100>;
175
176			thermal-sensors = <&pm8010_temp_alarm>;
177
178			trips {
179				trip0 {
180					temperature = <95000>;
181					hysteresis = <0>;
182					type = "passive";
183				};
184
185				trip1 {
186					temperature = <115000>;
187					hysteresis = <0>;
188					type = "hot";
189				};
190			};
191		};
192	};
193};
194
195&spmi_bus0 {
196	/* PMK8380 */
197	pmk8550: pmic@0 {
198		compatible = "qcom,pm8550", "qcom,spmi-pmic";
199		reg = <0x0 SPMI_USID>;
200		#address-cells = <1>;
201		#size-cells = <0>;
202
203		pmk8550_pon: pon@1300 {
204			compatible = "qcom,pmk8350-pon";
205			reg = <0x1300>, <0x800>;
206			reg-names = "hlos", "pbs";
207
208			pon_pwrkey: pwrkey {
209				compatible = "qcom,pmk8350-pwrkey";
210				interrupts = <0x0 0x13 0x7 IRQ_TYPE_EDGE_BOTH>;
211				linux,code = <KEY_POWER>;
212			};
213
214			pon_resin: resin {
215				compatible = "qcom,pmk8350-resin";
216				interrupts = <0x0 0x13 0x6 IRQ_TYPE_EDGE_BOTH>;
217				status = "disabled";
218			};
219		};
220
221		pmk8550_rtc: rtc@6100 {
222			compatible = "qcom,pmk8350-rtc";
223			reg = <0x6100>, <0x6200>;
224			reg-names = "rtc", "alarm";
225			interrupts = <0x0 0x62 0x1 IRQ_TYPE_EDGE_RISING>;
226			qcom,no-alarm; /* alarm owned by ADSP */
227			qcom,uefi-rtc-info;
228		};
229
230		pmk8550_sdam_2: nvram@7100 {
231			compatible = "qcom,spmi-sdam";
232			reg = <0x7100>;
233			#address-cells = <1>;
234			#size-cells = <1>;
235			ranges = <0 0x7100 0x100>;
236
237			reboot_reason: reboot-reason@48 {
238				reg = <0x48 0x1>;
239				bits = <1 7>;
240			};
241		};
242
243		pmk8550_sdam_15: nvram@7e00 {
244			compatible = "qcom,spmi-sdam";
245			reg = <0x7e00>;
246			#address-cells = <1>;
247			#size-cells = <1>;
248			ranges = <0 0x7e00 0x100>;
249
250			charge_limit_en: charge-limit-en@73 {
251				reg = <0x73 0x1>;
252			};
253
254			charge_limit_end: charge-limit-end@75 {
255				reg = <0x75 0x1>;
256			};
257
258			charge_limit_delta: charge-limit-delta@76 {
259				reg = <0x76 0x1>;
260			};
261		};
262
263		pmk8550_gpios: gpio@8800 {
264			compatible = "qcom,pmk8550-gpio", "qcom,spmi-gpio";
265			reg = <0xb800>;
266			gpio-controller;
267			gpio-ranges = <&pmk8550_gpios 0 0 6>;
268			#gpio-cells = <2>;
269			interrupt-controller;
270			#interrupt-cells = <2>;
271		};
272
273		pmk8550_pwm: pwm {
274			compatible = "qcom,pmk8550-pwm";
275
276			#pwm-cells = <2>;
277
278			status = "disabled";
279		};
280	};
281
282	/* PMC8380C */
283	pm8550: pmic@1 {
284		compatible = "qcom,pm8550", "qcom,spmi-pmic";
285		reg = <0x1 SPMI_USID>;
286		#address-cells = <1>;
287		#size-cells = <0>;
288
289		pm8550_temp_alarm: temp-alarm@a00 {
290			compatible = "qcom,spmi-temp-alarm";
291			reg = <0xa00>;
292			interrupts = <0x1 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
293			#thermal-sensor-cells = <0>;
294		};
295
296		pm8550_gpios: gpio@8800 {
297			compatible = "qcom,pm8550-gpio", "qcom,spmi-gpio";
298			reg = <0x8800>;
299			gpio-controller;
300			gpio-ranges = <&pm8550_gpios 0 0 12>;
301			#gpio-cells = <2>;
302			interrupt-controller;
303			#interrupt-cells = <2>;
304		};
305
306		pm8550_flash: led-controller@ee00 {
307			compatible = "qcom,pm8550-flash-led", "qcom,spmi-flash-led";
308			reg = <0xee00>;
309			status = "disabled";
310		};
311
312		pm8550_pwm: pwm {
313			compatible = "qcom,pm8550-pwm", "qcom,pm8350c-pwm";
314			#pwm-cells = <2>;
315
316			status = "disabled";
317		};
318	};
319
320	/* PMC8380VE */
321	pm8550ve_2: pmic@2 {
322		compatible = "qcom,pm8550", "qcom,spmi-pmic";
323		reg = <0x2 SPMI_USID>;
324		#address-cells = <1>;
325		#size-cells = <0>;
326
327		pm8550ve_2_temp_alarm: temp-alarm@a00 {
328			compatible = "qcom,spmi-temp-alarm";
329			reg = <0xa00>;
330			interrupts = <0x2 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
331			#thermal-sensor-cells = <0>;
332		};
333
334		pm8550ve_2_gpios: gpio@8800 {
335			compatible = "qcom,pm8550ve-gpio", "qcom,spmi-gpio";
336			reg = <0x8800>;
337			gpio-controller;
338			gpio-ranges = <&pm8550ve_2_gpios 0 0 8>;
339			#gpio-cells = <2>;
340			interrupt-controller;
341			#interrupt-cells = <2>;
342		};
343	};
344
345	/* PMC8380 is actually not a PM8550 series rebrand */
346	pmc8380_3: pmic@3 {
347		compatible = "qcom,pmc8380", "qcom,spmi-pmic";
348		reg = <0x3 SPMI_USID>;
349		#address-cells = <1>;
350		#size-cells = <0>;
351
352		pmc8380_3_temp_alarm: temp-alarm@a00 {
353			compatible = "qcom,spmi-temp-alarm";
354			reg = <0xa00>;
355			interrupts = <0x3 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
356			#thermal-sensor-cells = <0>;
357		};
358
359		pmc8380_3_gpios: gpio@8800 {
360			compatible = "qcom,pmc8380-gpio", "qcom,spmi-gpio";
361			reg = <0x8800>;
362			gpio-controller;
363			gpio-ranges = <&pmc8380_3_gpios 0 0 10>;
364			#gpio-cells = <2>;
365			interrupt-controller;
366			#interrupt-cells = <2>;
367		};
368	};
369
370	pmc8380_4: pmic@4 {
371		compatible = "qcom,pmc8380", "qcom,spmi-pmic";
372		reg = <0x4 SPMI_USID>;
373		#address-cells = <1>;
374		#size-cells = <0>;
375
376		pmc8380_4_temp_alarm: temp-alarm@a00 {
377			compatible = "qcom,spmi-temp-alarm";
378			reg = <0xa00>;
379			interrupts = <0x4 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
380			#thermal-sensor-cells = <0>;
381		};
382
383		pmc8380_4_gpios: gpio@8800 {
384			compatible = "qcom,pmc8380-gpio", "qcom,spmi-gpio";
385			reg = <0x8800>;
386			gpio-controller;
387			gpio-ranges = <&pmc8380_4_gpios 0 0 10>;
388			#gpio-cells = <2>;
389			interrupt-controller;
390			#interrupt-cells = <2>;
391		};
392	};
393
394	pmc8380_5: pmic@5 {
395		compatible = "qcom,pmc8380", "qcom,spmi-pmic";
396		reg = <0x5 SPMI_USID>;
397		#address-cells = <1>;
398		#size-cells = <0>;
399
400		pmc8380_5_temp_alarm: temp-alarm@a00 {
401			compatible = "qcom,spmi-temp-alarm";
402			reg = <0xa00>;
403			interrupts = <0x5 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
404			#thermal-sensor-cells = <0>;
405		};
406
407		pmc8380_5_gpios: gpio@8800 {
408			compatible = "qcom,pmc8380-gpio", "qcom,spmi-gpio";
409			reg = <0x8800>;
410			gpio-controller;
411			gpio-ranges = <&pmc8380_5_gpios 0 0 10>;
412			#gpio-cells = <2>;
413			interrupt-controller;
414			#interrupt-cells = <2>;
415		};
416	};
417
418	pmc8380_6: pmic@6 {
419		compatible = "qcom,pmc8380", "qcom,spmi-pmic";
420		reg = <0x6 SPMI_USID>;
421		#address-cells = <1>;
422		#size-cells = <0>;
423
424		pmc8380_6_temp_alarm: temp-alarm@a00 {
425			compatible = "qcom,spmi-temp-alarm";
426			reg = <0xa00>;
427			interrupts = <0x6 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
428			#thermal-sensor-cells = <0>;
429		};
430
431		pmc8380_6_gpios: gpio@8800 {
432			compatible = "qcom,pmc8380-gpio", "qcom,spmi-gpio";
433			reg = <0x8800>;
434			gpio-controller;
435			gpio-ranges = <&pmc8380_6_gpios 0 0 10>;
436			#gpio-cells = <2>;
437			interrupt-controller;
438			#interrupt-cells = <2>;
439		};
440	};
441
442	/* PMC8380VE */
443	pm8550ve_8: pmic@8 {
444		compatible = "qcom,pm8550", "qcom,spmi-pmic";
445		reg = <0x8 SPMI_USID>;
446		#address-cells = <1>;
447		#size-cells = <0>;
448
449		pm8550ve_8_temp_alarm: temp-alarm@a00 {
450			compatible = "qcom,spmi-temp-alarm";
451			reg = <0xa00>;
452			interrupts = <0x8 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
453			#thermal-sensor-cells = <0>;
454		};
455
456		pm8550ve_8_gpios: gpio@8800 {
457			compatible = "qcom,pm8550ve-gpio", "qcom,spmi-gpio";
458			reg = <0x8800>;
459			gpio-controller;
460			gpio-ranges = <&pm8550ve_8_gpios 0 0 8>;
461			#gpio-cells = <2>;
462			interrupt-controller;
463			#interrupt-cells = <2>;
464		};
465	};
466
467	/* PMC8380VE */
468	pm8550ve_9: pmic@9 {
469		compatible = "qcom,pm8550", "qcom,spmi-pmic";
470		reg = <0x9 SPMI_USID>;
471		#address-cells = <1>;
472		#size-cells = <0>;
473
474		pm8550ve_9_temp_alarm: temp-alarm@a00 {
475			compatible = "qcom,spmi-temp-alarm";
476			reg = <0xa00>;
477			interrupts = <0x9 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
478			#thermal-sensor-cells = <0>;
479		};
480
481		pm8550ve_9_gpios: gpio@8800 {
482			compatible = "qcom,pm8550ve-gpio", "qcom,spmi-gpio";
483			reg = <0x8800>;
484			gpio-controller;
485			gpio-ranges = <&pm8550ve_9_gpios 0 0 8>;
486			#gpio-cells = <2>;
487			interrupt-controller;
488			#interrupt-cells = <2>;
489		};
490	};
491
492	pm8010: pmic@c {
493		compatible = "qcom,pm8010", "qcom,spmi-pmic";
494		reg = <0xc SPMI_USID>;
495		#address-cells = <1>;
496		#size-cells = <0>;
497
498		status = "disabled";
499
500		pm8010_temp_alarm: temp-alarm@2400 {
501			compatible = "qcom,spmi-temp-alarm";
502			reg = <0x2400>;
503			interrupts = <0xc 0x24 0x0 IRQ_TYPE_EDGE_BOTH>;
504			#thermal-sensor-cells = <0>;
505		};
506	};
507};
508
509&spmi_bus1 {
510	smb2360_0: pmic@7 {
511		compatible = "qcom,smb2360", "qcom,spmi-pmic";
512		reg = <0x7 SPMI_USID>;
513		#address-cells = <1>;
514		#size-cells = <0>;
515
516		status = "disabled";
517
518		smb2360_0_eusb2_repeater: phy@fd00 {
519			compatible = "qcom,smb2360-eusb2-repeater";
520			reg = <0xfd00>;
521			#phy-cells = <0>;
522		};
523	};
524
525	smb2360_1: pmic@a {
526		compatible = "qcom,smb2360", "qcom,spmi-pmic";
527		reg = <0xa SPMI_USID>;
528		#address-cells = <1>;
529		#size-cells = <0>;
530
531		status = "disabled";
532
533		smb2360_1_eusb2_repeater: phy@fd00 {
534			compatible = "qcom,smb2360-eusb2-repeater";
535			reg = <0xfd00>;
536			#phy-cells = <0>;
537		};
538	};
539
540	smb2360_2: pmic@b {
541		compatible = "qcom,smb2360", "qcom,spmi-pmic";
542		reg = <0xb SPMI_USID>;
543		#address-cells = <1>;
544		#size-cells = <0>;
545
546		status = "disabled";
547
548		smb2360_2_eusb2_repeater: phy@fd00 {
549			compatible = "qcom,smb2360-eusb2-repeater";
550			reg = <0xfd00>;
551			#phy-cells = <0>;
552		};
553	};
554
555	smb2360_3: pmic@c {
556		compatible = "qcom,smb2360", "qcom,spmi-pmic";
557		reg = <0xc SPMI_USID>;
558		#address-cells = <1>;
559		#size-cells = <0>;
560
561		status = "disabled";
562
563		smb2360_3_eusb2_repeater: phy@fd00 {
564			compatible = "qcom,smb2360-eusb2-repeater";
565			reg = <0xfd00>;
566			#phy-cells = <0>;
567		};
568	};
569};
570