blob: 98dc04962fe3401d6ba9cbc384854c8ea88bbd63 [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>;
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 channel@0 {
95 reg = <ADC5_REF_GND>;
96 qcom,decimation = <1024>;
97 qcom,pre-scaling = <1 1>;
98 label = "ref_gnd";
99 };
100
101 channel@1 {
102 reg = <ADC5_1P25VREF>;
103 qcom,decimation = <1024>;
104 qcom,pre-scaling = <1 1>;
105 label = "vref_1p25";
106 };
107
108 channel@6 {
109 reg = <ADC5_DIE_TEMP>;
110 qcom,decimation = <1024>;
111 qcom,pre-scaling = <1 1>;
112 label = "die_temp";
113 };
114
115 channel@4c {
116 reg = <ADC5_XO_THERM_100K_PU>;
117 qcom,pre-scaling = <1 1>;
118 qcom,decimation = <1024>;
119 qcom,hw-settle-time = <200>;
120 qcom,ratiometric;
121 label = "xo_therm";
122 };
123
124 channel@4d {
125 reg = <ADC5_AMUX_THM1_100K_PU>;
126 qcom,pre-scaling = <1 1>;
127 qcom,decimation = <1024>;
128 qcom,hw-settle-time = <200>;
129 qcom,ratiometric;
130 label = "msm_therm";
131 };
132
133 channel@4e {
134 reg = <ADC5_AMUX_THM2_100K_PU>;
135 qcom,pre-scaling = <1 1>;
136 qcom,decimation = <1024>;
137 qcom,hw-settle-time = <200>;
138 qcom,ratiometric;
139 label = "emmc_therm";
140 };
141
142 channel@4f {
143 reg = <ADC5_AMUX_THM3_100K_PU>;
144 qcom,pre-scaling = <1 1>;
145 qcom,decimation = <1024>;
146 qcom,hw-settle-time = <200>;
147 qcom,ratiometric;
148 label = "pa_therm0";
149 };
150
151 channel@50 {
152 reg = <ADC5_AMUX_THM4_100K_PU>;
153 qcom,pre-scaling = <1 1>;
154 qcom,decimation = <1024>;
155 qcom,hw-settle-time = <200>;
156 qcom,ratiometric;
157 label = "pa_therm1";
158 };
159
160 channel@51 {
161 reg = <ADC5_AMUX_THM5_100K_PU>;
162 qcom,pre-scaling = <1 1>;
163 qcom,decimation = <1024>;
164 qcom,hw-settle-time = <200>;
165 qcom,ratiometric;
166 label = "quiet_therm";
167 };
168
169 channel@83 {
170 reg = <ADC5_VPH_PWR>;
171 qcom,decimation = <1024>;
172 qcom,pre-scaling = <1 3>;
173 label = "vph_pwr";
174 };
175
176 channel@85 {
177 reg = <ADC5_VCOIN>;
178 qcom,decimation = <1024>;
179 qcom,pre-scaling = <1 3>;
180 label = "vcoin";
181 };
182 };
183
184 pm660_gpios: gpio@c000 {
185 compatible = "qcom,pm660-gpio", "qcom,spmi-gpio";
186 reg = <0xc000>;
187 gpio-controller;
188 gpio-ranges = <&pm660_gpios 0 0 13>;
189 #gpio-cells = <2>;
190 interrupt-controller;
191 #interrupt-cells = <2>;
192 };
193 };
194
195 pmic@1 {
196 compatible = "qcom,pm660", "qcom,spmi-pmic";
197 reg = <0x1 SPMI_USID>;
198 #address-cells = <1>;
199 #size-cells = <0>;
200
201 pm660_spmi_regulators: regulators {
202 compatible = "qcom,pm660-regulators";
203 };
204 };
205};