blob: 156b2ddff0dcb5658efb3ee0f6caacfdb3711b60 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// 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-thermal {
15 polling-delay-passive = <250>;
Tom Rini53633a82024-02-29 12:33:36 -050016
17 thermal-sensors = <&pm660_temp>;
18
19 trips {
20 pm660_alert0: pm660-alert0 {
21 temperature = <95000>;
22 hysteresis = <2000>;
23 type = "passive";
24 };
25 pm660_crit: pm660-crit {
26 temperature = <125000>;
27 hysteresis = <2000>;
28 type = "critical";
29 };
30 };
31 };
32 };
33};
34
35&spmi_bus {
36
37 pmic@0 {
38 compatible = "qcom,pm660", "qcom,spmi-pmic";
39 reg = <0x0 SPMI_USID>;
40 #address-cells = <1>;
41 #size-cells = <0>;
42
43 rtc@6000 {
44 compatible = "qcom,pm8941-rtc";
45 reg = <0x6000>, <0x6100>;
46 reg-names = "rtc", "alarm";
47 interrupts = <0x0 0x61 0x1 IRQ_TYPE_EDGE_RISING>;
48 };
49
50 pon: pon@800 {
51 compatible = "qcom,pm8998-pon";
52 reg = <0x800>;
53 mode-bootloader = <0x2>;
54 mode-recovery = <0x1>;
55
56 pon_pwrkey: 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 status = "disabled";
64 };
65
66 pon_resin: resin {
67 compatible = "qcom,pm8941-resin";
68 interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
69 debounce = <15625>;
70 bias-pull-up;
71
72 status = "disabled";
73 };
74 };
75
Tom Rini6b642ac2024-10-01 12:20:28 -060076 pm660_charger: charger@1000 {
77 compatible = "qcom,pm660-charger";
78 reg = <0x1000>;
79
80 interrupts = <0x0 0x13 0x4 IRQ_TYPE_EDGE_BOTH>,
81 <0x0 0x12 0x2 IRQ_TYPE_EDGE_BOTH>,
82 <0x0 0x16 0x1 IRQ_TYPE_EDGE_RISING>,
83 <0x0 0x13 0x6 IRQ_TYPE_EDGE_RISING>;
84 interrupt-names = "usb-plugin", "bat-ov", "wdog-bark", "usbin-icl-change";
85
86 io-channels = <&pm660_rradc 3>,
87 <&pm660_rradc 4>;
88 io-channel-names = "usbin_i", "usbin_v";
89
90 status = "disabled";
91 };
92
Tom Rini53633a82024-02-29 12:33:36 -050093 pm660_temp: temp-alarm@2400 {
94 compatible = "qcom,spmi-temp-alarm";
95 reg = <0x2400>;
96 interrupts = <0x0 0x24 0x0 IRQ_TYPE_EDGE_RISING>;
97 io-channels = <&pm660_adc ADC5_DIE_TEMP>;
98 io-channel-names = "thermal";
99 #thermal-sensor-cells = <0>;
100 };
101
102 pm660_adc: adc@3100 {
103 compatible = "qcom,spmi-adc-rev2";
104 reg = <0x3100>;
105 interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
106 #address-cells = <1>;
107 #size-cells = <0>;
108 #io-channel-cells = <1>;
109
110 channel@0 {
111 reg = <ADC5_REF_GND>;
112 qcom,decimation = <1024>;
113 qcom,pre-scaling = <1 1>;
114 label = "ref_gnd";
115 };
116
117 channel@1 {
118 reg = <ADC5_1P25VREF>;
119 qcom,decimation = <1024>;
120 qcom,pre-scaling = <1 1>;
121 label = "vref_1p25";
122 };
123
124 channel@6 {
125 reg = <ADC5_DIE_TEMP>;
126 qcom,decimation = <1024>;
127 qcom,pre-scaling = <1 1>;
128 label = "die_temp";
129 };
130
131 channel@4c {
132 reg = <ADC5_XO_THERM_100K_PU>;
133 qcom,pre-scaling = <1 1>;
134 qcom,decimation = <1024>;
135 qcom,hw-settle-time = <200>;
136 qcom,ratiometric;
137 label = "xo_therm";
138 };
139
140 channel@4d {
141 reg = <ADC5_AMUX_THM1_100K_PU>;
142 qcom,pre-scaling = <1 1>;
143 qcom,decimation = <1024>;
144 qcom,hw-settle-time = <200>;
145 qcom,ratiometric;
146 label = "msm_therm";
147 };
148
149 channel@4e {
150 reg = <ADC5_AMUX_THM2_100K_PU>;
151 qcom,pre-scaling = <1 1>;
152 qcom,decimation = <1024>;
153 qcom,hw-settle-time = <200>;
154 qcom,ratiometric;
155 label = "emmc_therm";
156 };
157
158 channel@4f {
159 reg = <ADC5_AMUX_THM3_100K_PU>;
160 qcom,pre-scaling = <1 1>;
161 qcom,decimation = <1024>;
162 qcom,hw-settle-time = <200>;
163 qcom,ratiometric;
164 label = "pa_therm0";
165 };
166
167 channel@50 {
168 reg = <ADC5_AMUX_THM4_100K_PU>;
169 qcom,pre-scaling = <1 1>;
170 qcom,decimation = <1024>;
171 qcom,hw-settle-time = <200>;
172 qcom,ratiometric;
173 label = "pa_therm1";
174 };
175
176 channel@51 {
177 reg = <ADC5_AMUX_THM5_100K_PU>;
178 qcom,pre-scaling = <1 1>;
179 qcom,decimation = <1024>;
180 qcom,hw-settle-time = <200>;
181 qcom,ratiometric;
182 label = "quiet_therm";
183 };
184
185 channel@83 {
186 reg = <ADC5_VPH_PWR>;
187 qcom,decimation = <1024>;
188 qcom,pre-scaling = <1 3>;
189 label = "vph_pwr";
190 };
191
192 channel@85 {
193 reg = <ADC5_VCOIN>;
194 qcom,decimation = <1024>;
195 qcom,pre-scaling = <1 3>;
196 label = "vcoin";
197 };
198 };
199
Tom Rini6b642ac2024-10-01 12:20:28 -0600200 pm660_rradc: adc@4500 {
201 compatible = "qcom,pm660-rradc";
202 reg = <0x4500>;
203 #io-channel-cells = <1>;
204
205 status = "disabled";
206 };
207
Tom Rini53633a82024-02-29 12:33:36 -0500208 pm660_gpios: gpio@c000 {
209 compatible = "qcom,pm660-gpio", "qcom,spmi-gpio";
210 reg = <0xc000>;
211 gpio-controller;
212 gpio-ranges = <&pm660_gpios 0 0 13>;
213 #gpio-cells = <2>;
214 interrupt-controller;
215 #interrupt-cells = <2>;
216 };
217 };
218
219 pmic@1 {
220 compatible = "qcom,pm660", "qcom,spmi-pmic";
221 reg = <0x1 SPMI_USID>;
222 #address-cells = <1>;
223 #size-cells = <0>;
224
225 pm660_spmi_regulators: regulators {
226 compatible = "qcom,pm660-regulators";
227 };
228 };
229};