Linux 6.9-rc1
[linux-2.6-microblaze.git] / arch / arm64 / boot / dts / qcom / pm660.dtsi
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-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 };