Linux 6.7-rc7
[linux-modified.git] / arch / arm64 / boot / dts / qcom / msm8953-xiaomi-vince.dts
1 // SPDX-License-Identifier: BSD-3-Clause
2 /*
3  * Copyright (c) 2022, Eugene Lepshy <fekz115@gmail.com>
4  * Copyright (c) 2022, Gianluca Boiano <morf3089@gmail.com>
5  */
6 /dts-v1/;
7
8 #include "msm8953.dtsi"
9 #include "pm8953.dtsi"
10 #include "pmi8950.dtsi"
11 #include <dt-bindings/leds/common.h>
12
13 /delete-node/ &adsp_fw_mem;
14 /delete-node/ &cont_splash_mem;
15 /delete-node/ &qseecom_mem;
16 /delete-node/ &wcnss_fw_mem;
17
18 / {
19         model = "Xiaomi Redmi 5 Plus";
20         compatible = "xiaomi,vince", "qcom,msm8953";
21         chassis-type = "handset";
22         qcom,msm-id = <293 0>;
23         qcom,board-id = <0x1000b 0x08>;
24
25         gpio-keys {
26                 compatible = "gpio-keys";
27
28                 pinctrl-names = "default";
29                 pinctrl-0 = <&gpio_key_default>;
30
31                 key-volume-up {
32                         label = "volume_up";
33                         linux,code = <KEY_VOLUMEUP>;
34                         gpios = <&tlmm 85 GPIO_ACTIVE_LOW>;
35                 };
36         };
37
38         reserved-memory {
39                 qseecom_mem: qseecom@84a00000 {
40                         reg = <0x0 0x84a00000 0x0 0x1900000>;
41                         no-map;
42                 };
43
44                 cont_splash_mem: cont-splash@90001000 {
45                         reg = <0x0 0x90001000 0x0 (1080 * 2160 * 3)>;
46                         no-map;
47                 };
48
49                 adsp_fw_mem: adsp@8d600000 {
50                         reg = <0x0 0x8d600000 0x0 0x1200000>;
51                         no-map;
52                 };
53
54                 wcnss_fw_mem: wcnss@8e800000 {
55                         reg = <0x0 0x8e800000 0x0 0x700000>;
56                         no-map;
57                 };
58
59                 ramoops@9ff00000 {
60                         compatible = "ramoops";
61                         reg = <0x0 0x9ff00000 0x0 0x100000>;
62                         record-size = <0x1000>;
63                         console-size = <0x80000>;
64                         ftrace-size = <0x1000>;
65                         pmsg-size = <0x8000>;
66                 };
67         };
68
69         /*
70          * We bitbang on &i2c_4 because BLSP is protected by TZ as sensors are
71          * normally proxied via ADSP firmware. GPIOs aren't protected.
72          */
73         i2c-sensors {
74                 compatible = "i2c-gpio";
75                 sda-gpios = <&tlmm 14 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
76                 scl-gpios = <&tlmm 15 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
77                 i2c-gpio,delay-us = <2>; /* ~100 kHz */
78                 #address-cells = <1>;
79                 #size-cells = <0>;
80
81                 imu@6a {
82                         compatible = "st,lsm6dsl";
83                         reg = <0x6a>;
84                         vdd-supply = <&pm8953_l10>;
85                         vddio-supply = <&pm8953_l6>;
86                         mount-matrix = "1", "0", "0",
87                                         "0", "-1", "0",
88                                         "0", "0", "1";
89                 };
90         };
91
92         vph_pwr: vph-pwr-regulator {
93                 compatible = "regulator-fixed";
94                 regulator-name = "vph_pwr";
95                 regulator-always-on;
96                 regulator-boot-on;
97         };
98 };
99
100 &hsusb_phy {
101         vdd-supply = <&pm8953_l3>;
102         vdda-pll-supply = <&pm8953_l7>;
103         vdda-phy-dpdm-supply = <&pm8953_l13>;
104
105         status = "okay";
106 };
107
108 &i2c_2 {
109         status = "okay";
110
111         led-controller@45 {
112                 compatible = "awinic,aw2013";
113                 reg = <0x45>;
114
115                 vcc-supply = <&pm8953_l10>;
116
117                 #address-cells = <1>;
118                 #size-cells = <0>;
119
120                 led@0 {
121                         reg = <0>;
122                         led-max-microamp = <5000>;
123                         function = LED_FUNCTION_INDICATOR;
124                         color = <LED_COLOR_ID_WHITE>;
125                 };
126         };
127 };
128
129 &i2c_3 {
130         status = "okay";
131
132         touchscreen@20 {
133                 reg = <0x20>;
134                 compatible = "syna,rmi4-i2c";
135                 interrupts-extended = <&tlmm 65 IRQ_TYPE_EDGE_FALLING>;
136
137                 #address-cells = <1>;
138                 #size-cells = <0>;
139
140                 vdd-supply = <&pm8953_l10>;
141                 vio-supply = <&pm8953_l6>;
142
143                 pinctrl-names = "init", "suspend";
144                 pinctrl-0 = <&ts_reset_active &ts_int_active>;
145                 pinctrl-1 = <&ts_reset_suspend &ts_int_suspend>;
146                 syna,reset-delay-ms = <200>;
147                 syna,startup-delay-ms = <500>;
148
149                 rmi4-f01@1 {
150                         reg = <0x01>;
151                         syna,nosleep-mode = <1>;
152                 };
153
154                 rmi4-f12@12 {
155                         reg = <0x12>;
156                         syna,rezero-wait-ms = <20>;
157                         syna,sensor-type = <1>;
158                         touchscreen-x-mm = <68>;
159                         touchscreen-y-mm = <122>;
160                 };
161         };
162 };
163
164 &pm8953_resin {
165         linux,code = <KEY_VOLUMEDOWN>;
166         status = "okay";
167 };
168
169 &pmi8950_wled {
170         qcom,current-limit-microamp = <20000>;
171         qcom,ovp-millivolt = <29600>;
172         qcom,num-strings = <2>;
173         qcom,external-pfet;
174         qcom,cabc;
175
176         status = "okay";
177 };
178
179 &rpm_requests {
180         regulators {
181                 compatible = "qcom,rpm-pm8953-regulators";
182                 vdd_s1-supply = <&vph_pwr>;
183                 vdd_s2-supply = <&vph_pwr>;
184                 vdd_s3-supply = <&vph_pwr>;
185                 vdd_s4-supply = <&vph_pwr>;
186                 vdd_s5-supply = <&vph_pwr>;
187                 vdd_s6-supply = <&vph_pwr>;
188                 vdd_s7-supply = <&vph_pwr>;
189                 vdd_l1-supply = <&pm8953_s3>;
190                 vdd_l2_l3-supply = <&pm8953_s3>;
191                 vdd_l4_l5_l6_l7_l16_l19-supply = <&pm8953_s4>;
192                 vdd_l8_l11_l12_l13_l14_l15-supply = <&vph_pwr>;
193                 vdd_l9_l10_l17_l18_l22-supply = <&vph_pwr>;
194
195                 pm8953_s1: s1 {
196                         regulator-min-microvolt = <870000>;
197                         regulator-max-microvolt = <1156000>;
198                 };
199
200                 pm8953_s3: s3 {
201                         regulator-min-microvolt = <984000>;
202                         regulator-max-microvolt = <1224000>;
203                 };
204
205                 pm8953_s4: s4 {
206                         regulator-min-microvolt = <1900000>;
207                         regulator-max-microvolt = <2050000>;
208                 };
209
210                 pm8953_l1: l1 {
211                         regulator-min-microvolt = <1000000>;
212                         regulator-max-microvolt = <1100000>;
213                 };
214
215                 pm8953_l2: l2 {
216                         regulator-min-microvolt = <1200000>;
217                         regulator-max-microvolt = <1225000>;
218                 };
219
220                 pm8953_l3: l3 {
221                         regulator-min-microvolt = <925000>;
222                         regulator-max-microvolt = <925000>;
223                 };
224
225                 pm8953_l5: l5 {
226                         regulator-min-microvolt = <1800000>;
227                         regulator-max-microvolt = <1800000>;
228                 };
229
230                 pm8953_l6: l6 {
231                         regulator-min-microvolt = <1800000>;
232                         regulator-max-microvolt = <1800000>;
233                 };
234
235                 pm8953_l7: l7 {
236                         regulator-min-microvolt = <1800000>;
237                         regulator-max-microvolt = <1900000>;
238                 };
239
240                 pm8953_l8: l8 {
241                         regulator-min-microvolt = <2900000>;
242                         regulator-max-microvolt = <2900000>;
243                 };
244
245                 pm8953_l9: l9 {
246                         regulator-min-microvolt = <3000000>;
247                         regulator-max-microvolt = <3300000>;
248                 };
249
250                 pm8953_l10: l10 {
251                         regulator-min-microvolt = <2850000>;
252                         regulator-max-microvolt = <2850000>;
253                 };
254
255                 pm8953_l11: l11 {
256                         regulator-min-microvolt = <2950000>;
257                         regulator-max-microvolt = <2950000>;
258                 };
259
260                 pm8953_l12: l12 {
261                         regulator-min-microvolt = <1800000>;
262                         regulator-max-microvolt = <2950000>;
263                 };
264
265                 pm8953_l13: l13 {
266                         regulator-min-microvolt = <3125000>;
267                         regulator-max-microvolt = <3125000>;
268                 };
269
270                 pm8953_l16: l16 {
271                         regulator-min-microvolt = <1800000>;
272                         regulator-max-microvolt = <1800000>;
273                 };
274
275                 pm8953_l17: l17 {
276                         regulator-min-microvolt = <2750000>;
277                         regulator-max-microvolt = <2850000>;
278                 };
279
280                 pm8953_l19: l19 {
281                         regulator-min-microvolt = <1200000>;
282                         regulator-max-microvolt = <1380000>;
283                 };
284
285                 pm8953_l22: l22 {
286                         regulator-min-microvolt = <2800000>;
287                         regulator-max-microvolt = <2800000>;
288                 };
289
290                 pm8953_l23: l23 {
291                         regulator-min-microvolt = <1200000>;
292                         regulator-max-microvolt = <1225000>;
293                 };
294         };
295 };
296
297 &sdhc_1 {
298         vmmc-supply = <&pm8953_l8>;
299         vqmmc-supply = <&pm8953_l5>;
300
301         status = "okay";
302 };
303
304 &sdhc_2 {
305         vmmc-supply = <&pm8953_l11>;
306         vqmmc-supply = <&pm8953_l12>;
307
308         pinctrl-names = "default", "sleep";
309         pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
310         pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
311
312         status = "okay";
313 };
314
315 &tlmm {
316         gpio-reserved-ranges = <0 4>, <16 4>, <135 4>;
317
318         ts_reset_active: ts-reset-active-state {
319                 pins = "gpio64";
320                 function = "gpio";
321                 drive-strength = <8>;
322                 bias-pull-up;
323         };
324
325         ts_reset_suspend: ts-reset-suspend-state {
326                 pins = "gpio64";
327                 function = "gpio";
328                 drive-strength = <2>;
329                 bias-pull-up;
330         };
331
332         ts_int_active: ts-int-active-state {
333                 pins = "gpio65";
334                 function = "gpio";
335                 drive-strength = <8>;
336                 bias-pull-up;
337         };
338
339         ts_int_suspend: ts-int-suspend-state {
340                 pins = "gpio65";
341                 function = "gpio";
342                 drive-strength = <2>;
343                 bias-pull-down;
344         };
345 };
346
347 &uart_0 {
348         pinctrl-names = "default";
349         pinctrl-0 = <&uart_console_active>;
350
351         status = "okay";
352 };
353
354 &usb3 {
355         status = "okay";
356 };
357
358 &usb3_dwc3 {
359         dr_mode = "peripheral";
360 };