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,pm8998-pon";
53			reg = <0x800>;
54			mode-bootloader = <0x2>;
55			mode-recovery = <0x1>;
56
57			pon_pwrkey: pwrkey {
58				compatible = "qcom,pm8941-pwrkey";
59				interrupts = <0x0 0x8 0 IRQ_TYPE_EDGE_BOTH>;
60				debounce = <15625>;
61				bias-pull-up;
62				linux,code = <KEY_POWER>;
63
64				status = "disabled";
65			};
66
67			pon_resin: resin {
68				compatible = "qcom,pm8941-resin";
69				interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
70				debounce = <15625>;
71				bias-pull-up;
72
73				status = "disabled";
74			};
75		};
76
77		pm660_temp: temp-alarm@2400 {
78			compatible = "qcom,spmi-temp-alarm";
79			reg = <0x2400>;
80			interrupts = <0x0 0x24 0x0 IRQ_TYPE_EDGE_RISING>;
81			io-channels = <&pm660_adc ADC5_DIE_TEMP>;
82			io-channel-names = "thermal";
83			#thermal-sensor-cells = <0>;
84		};
85
86		pm660_adc: adc@3100 {
87			compatible = "qcom,spmi-adc-rev2";
88			reg = <0x3100>;
89			interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
90			#address-cells = <1>;
91			#size-cells = <0>;
92			#io-channel-cells = <1>;
93
94			ref_gnd: ref_gnd@0 {
95				reg = <ADC5_REF_GND>;
96				qcom,decimation = <1024>;
97				qcom,pre-scaling = <1 1>;
98			};
99
100			vref_1p25: vref_1p25@1 {
101				reg = <ADC5_1P25VREF>;
102				qcom,decimation = <1024>;
103				qcom,pre-scaling = <1 1>;
104			};
105
106			die_temp: die_temp@6 {
107				reg = <ADC5_DIE_TEMP>;
108				qcom,decimation = <1024>;
109				qcom,pre-scaling = <1 1>;
110			};
111
112			xo_therm: xo_therm@4c {
113				reg = <ADC5_XO_THERM_100K_PU>;
114				qcom,pre-scaling = <1 1>;
115				qcom,decimation = <1024>;
116				qcom,hw-settle-time = <200>;
117				qcom,ratiometric;
118			};
119
120			msm_therm: msm_therm@4d {
121				reg = <ADC5_AMUX_THM1_100K_PU>;
122				qcom,pre-scaling = <1 1>;
123				qcom,decimation = <1024>;
124				qcom,hw-settle-time = <200>;
125				qcom,ratiometric;
126			};
127
128			emmc_therm: emmc_therm@4e {
129				reg = <ADC5_AMUX_THM2_100K_PU>;
130				qcom,pre-scaling = <1 1>;
131				qcom,decimation = <1024>;
132				qcom,hw-settle-time = <200>;
133				qcom,ratiometric;
134			};
135
136			pa_therm0: thermistor0@4f {
137				reg = <ADC5_AMUX_THM3_100K_PU>;
138				qcom,pre-scaling = <1 1>;
139				qcom,decimation = <1024>;
140				qcom,hw-settle-time = <200>;
141				qcom,ratiometric;
142			};
143
144			pa_therm1: thermistor1@50 {
145				reg = <ADC5_AMUX_THM4_100K_PU>;
146				qcom,pre-scaling = <1 1>;
147				qcom,decimation = <1024>;
148				qcom,hw-settle-time = <200>;
149				qcom,ratiometric;
150			};
151
152			quiet_therm: quiet_therm@51 {
153				reg = <ADC5_AMUX_THM5_100K_PU>;
154				qcom,pre-scaling = <1 1>;
155				qcom,decimation = <1024>;
156				qcom,hw-settle-time = <200>;
157				qcom,ratiometric;
158			};
159
160			vadc_vph_pwr: vph_pwr@83 {
161				reg = <ADC5_VPH_PWR>;
162				qcom,decimation = <1024>;
163				qcom,pre-scaling = <1 3>;
164			};
165
166			vcoin: vcoin@83 {
167				reg = <ADC5_VCOIN>;
168				qcom,decimation = <1024>;
169				qcom,pre-scaling = <1 3>;
170			};
171		};
172
173		pm660_gpios: gpios@c000 {
174			compatible = "qcom,pm660-gpio", "qcom,spmi-gpio";
175			reg = <0xc000>;
176			gpio-controller;
177			gpio-ranges = <&pm660_gpios 0 0 13>;
178			#gpio-cells = <2>;
179			interrupt-controller;
180			#interrupt-cells = <2>;
181		};
182	};
183
184	pmic@1 {
185		compatible = "qcom,pm660", "qcom,spmi-pmic";
186		reg = <0x1 SPMI_USID>;
187		#address-cells = <1>;
188		#size-cells = <0>;
189
190		pm660_spmi_regulators: regulators {
191			compatible = "qcom,pm660-regulators";
192		};
193	};
194};
195