blob: 1a1d3f92a5116896961658d963104870af337926 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// 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};