xref: /openbmc/linux/arch/arm64/boot/dts/qcom/pm660.dtsi (revision d9d1232b)
1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2020, Konrad Dybcio
4 */
5
6#include <dt-bindings/iio/qcom,spmi-vadc.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#include <dt-bindings/thermal/thermal.h>
11
12/ {
13	thermal-zones {
14		pm660 {
15			polling-delay-passive = <250>;
16			polling-delay = <1000>;
17
18			thermal-sensors = <&pm660_temp>;
19
20			trips {
21				pm660_alert0: pm660-alert0 {
22					temperature = <95000>;
23					hysteresis = <2000>;
24					type = "passive";
25				};
26				pm660_crit: pm660-crit {
27					temperature = <125000>;
28					hysteresis = <2000>;
29					type = "critical";
30				};
31			};
32		};
33	};
34};
35
36&spmi_bus {
37
38	pmic@0 {
39		compatible = "qcom,pm660", "qcom,spmi-pmic";
40		reg = <0x0 SPMI_USID>;
41		#address-cells = <1>;
42		#size-cells = <0>;
43
44		rtc@6000 {
45			compatible = "qcom,pm8941-rtc";
46			reg = <0x6000>, <0x6100>;
47			reg-names = "rtc", "alarm";
48			interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>;
49		};
50
51		pon: pon@800 {
52			compatible = "qcom,pm8916-pon";
53
54			reg = <0x800>;
55
56			pwrkey {
57				compatible = "qcom,pm8941-pwrkey";
58				interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
59				debounce = <15625>;
60				bias-pull-up;
61				linux,code = <KEY_POWER>;
62			};
63
64		};
65
66		pm660_temp: temp-alarm@2400 {
67			compatible = "qcom,spmi-temp-alarm";
68			reg = <0x2400>;
69			interrupts = <0x0 0x24 0x0 IRQ_TYPE_EDGE_RISING>;
70			io-channels = <&pm660_adc ADC5_DIE_TEMP>;
71			io-channel-names = "thermal";
72			#thermal-sensor-cells = <0>;
73		};
74
75		pm660_adc: adc@3100 {
76			compatible = "qcom,spmi-adc-rev2";
77			reg = <0x3100>;
78			interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
79			#address-cells = <1>;
80			#size-cells = <0>;
81			#io-channel-cells = <1>;
82
83			ref_gnd: ref_gnd@0 {
84				reg = <ADC5_REF_GND>;
85				qcom,decimation = <1024>;
86				qcom,pre-scaling = <1 1>;
87			};
88
89			vref_1p25: vref_1p25@1 {
90				reg = <ADC5_1P25VREF>;
91				qcom,decimation = <1024>;
92				qcom,pre-scaling = <1 1>;
93			};
94
95			die_temp: die_temp@6 {
96				reg = <ADC5_DIE_TEMP>;
97				qcom,decimation = <1024>;
98				qcom,pre-scaling = <1 1>;
99			};
100
101			xo_therm: xo_therm@4c {
102				reg = <ADC5_XO_THERM_100K_PU>;
103				qcom,pre-scaling = <1 1>;
104				qcom,decimation = <1024>;
105				qcom,hw-settle-time = <200>;
106				qcom,ratiometric;
107			};
108
109			msm_therm: msm_therm@4d {
110				reg = <ADC5_AMUX_THM1_100K_PU>;
111				qcom,pre-scaling = <1 1>;
112				qcom,decimation = <1024>;
113				qcom,hw-settle-time = <200>;
114				qcom,ratiometric;
115			};
116
117			emmc_therm: emmc_therm@4e {
118				reg = <ADC5_AMUX_THM2_100K_PU>;
119				qcom,pre-scaling = <1 1>;
120				qcom,decimation = <1024>;
121				qcom,hw-settle-time = <200>;
122				qcom,ratiometric;
123			};
124
125			pa_therm0: thermistor0@4f {
126				reg = <ADC5_AMUX_THM3_100K_PU>;
127				qcom,pre-scaling = <1 1>;
128				qcom,decimation = <1024>;
129				qcom,hw-settle-time = <200>;
130				qcom,ratiometric;
131			};
132
133			pa_therm1: thermistor1@50 {
134				reg = <ADC5_AMUX_THM4_100K_PU>;
135				qcom,pre-scaling = <1 1>;
136				qcom,decimation = <1024>;
137				qcom,hw-settle-time = <200>;
138				qcom,ratiometric;
139			};
140
141			quiet_therm: quiet_therm@51 {
142				reg = <ADC5_AMUX_THM5_100K_PU>;
143				qcom,pre-scaling = <1 1>;
144				qcom,decimation = <1024>;
145				qcom,hw-settle-time = <200>;
146				qcom,ratiometric;
147			};
148
149			vadc_vph_pwr: vph_pwr@83 {
150				reg = <ADC5_VPH_PWR>;
151				qcom,decimation = <1024>;
152				qcom,pre-scaling = <1 3>;
153			};
154
155			vcoin: vcoin@83 {
156				reg = <ADC5_VCOIN>;
157				qcom,decimation = <1024>;
158				qcom,pre-scaling = <1 3>;
159			};
160		};
161
162		pm660_gpios: gpios@c000 {
163			compatible = "qcom,pm660-gpio";
164			reg = <0xc000>;
165			gpio-controller;
166			gpio-ranges = <&pm660_gpios 0 0 13>;
167			#gpio-cells = <2>;
168			interrupt-controller;
169			#interrupt-cells = <2>;
170		};
171	};
172
173	pmic@1 {
174		compatible = "qcom,pm660", "qcom,spmi-pmic";
175		reg = <0x1 SPMI_USID>;
176		#address-cells = <1>;
177		#size-cells = <0>;
178
179		pm660_spmi_regulators: pm660-regulators {
180			compatible = "qcom,pm660-regulators";
181		};
182	};
183};
184