blob: d46325e7991769d061a806cf462f6fd265b22df2 [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>;
Tom Rini93743d22024-04-01 09:08:13 -0400116 vio-supply = <&pm8953_l5>;
Tom Rini53633a82024-02-29 12:33:36 -0500117
118 #address-cells = <1>;
119 #size-cells = <0>;
120
121 led@0 {
122 reg = <0>;
123 led-max-microamp = <5000>;
124 function = LED_FUNCTION_INDICATOR;
125 color = <LED_COLOR_ID_WHITE>;
126 };
127 };
128};
129
130&i2c_3 {
131 status = "okay";
132
133 touchscreen@20 {
134 reg = <0x20>;
135 compatible = "syna,rmi4-i2c";
136 interrupts-extended = <&tlmm 65 IRQ_TYPE_EDGE_FALLING>;
137
138 #address-cells = <1>;
139 #size-cells = <0>;
140
141 vdd-supply = <&pm8953_l10>;
142 vio-supply = <&pm8953_l6>;
143
144 pinctrl-names = "init", "suspend";
145 pinctrl-0 = <&ts_reset_active &ts_int_active>;
146 pinctrl-1 = <&ts_reset_suspend &ts_int_suspend>;
147 syna,reset-delay-ms = <200>;
148 syna,startup-delay-ms = <500>;
149
150 rmi4-f01@1 {
151 reg = <0x01>;
152 syna,nosleep-mode = <1>;
153 };
154
155 rmi4-f12@12 {
156 reg = <0x12>;
157 syna,rezero-wait-ms = <20>;
158 syna,sensor-type = <1>;
159 touchscreen-x-mm = <68>;
160 touchscreen-y-mm = <122>;
161 };
162 };
163};
164
165&pm8953_resin {
166 linux,code = <KEY_VOLUMEDOWN>;
167 status = "okay";
168};
169
170&pmi8950_wled {
171 qcom,current-limit-microamp = <20000>;
172 qcom,ovp-millivolt = <29600>;
173 qcom,num-strings = <2>;
174 qcom,external-pfet;
175 qcom,cabc;
176
177 status = "okay";
178};
179
180&rpm_requests {
181 regulators {
182 compatible = "qcom,rpm-pm8953-regulators";
183 vdd_s1-supply = <&vph_pwr>;
184 vdd_s2-supply = <&vph_pwr>;
185 vdd_s3-supply = <&vph_pwr>;
186 vdd_s4-supply = <&vph_pwr>;
187 vdd_s5-supply = <&vph_pwr>;
188 vdd_s6-supply = <&vph_pwr>;
189 vdd_s7-supply = <&vph_pwr>;
190 vdd_l1-supply = <&pm8953_s3>;
191 vdd_l2_l3-supply = <&pm8953_s3>;
192 vdd_l4_l5_l6_l7_l16_l19-supply = <&pm8953_s4>;
193 vdd_l8_l11_l12_l13_l14_l15-supply = <&vph_pwr>;
194 vdd_l9_l10_l17_l18_l22-supply = <&vph_pwr>;
195
196 pm8953_s1: s1 {
197 regulator-min-microvolt = <870000>;
198 regulator-max-microvolt = <1156000>;
199 };
200
201 pm8953_s3: s3 {
202 regulator-min-microvolt = <984000>;
203 regulator-max-microvolt = <1224000>;
204 };
205
206 pm8953_s4: s4 {
207 regulator-min-microvolt = <1900000>;
208 regulator-max-microvolt = <2050000>;
209 };
210
211 pm8953_l1: l1 {
212 regulator-min-microvolt = <1000000>;
213 regulator-max-microvolt = <1100000>;
214 };
215
216 pm8953_l2: l2 {
217 regulator-min-microvolt = <1200000>;
218 regulator-max-microvolt = <1225000>;
219 };
220
221 pm8953_l3: l3 {
222 regulator-min-microvolt = <925000>;
223 regulator-max-microvolt = <925000>;
224 };
225
226 pm8953_l5: l5 {
227 regulator-min-microvolt = <1800000>;
228 regulator-max-microvolt = <1800000>;
229 };
230
231 pm8953_l6: l6 {
232 regulator-min-microvolt = <1800000>;
233 regulator-max-microvolt = <1800000>;
234 };
235
236 pm8953_l7: l7 {
237 regulator-min-microvolt = <1800000>;
238 regulator-max-microvolt = <1900000>;
239 };
240
241 pm8953_l8: l8 {
242 regulator-min-microvolt = <2900000>;
243 regulator-max-microvolt = <2900000>;
244 };
245
246 pm8953_l9: l9 {
247 regulator-min-microvolt = <3000000>;
248 regulator-max-microvolt = <3300000>;
249 };
250
251 pm8953_l10: l10 {
252 regulator-min-microvolt = <2850000>;
253 regulator-max-microvolt = <2850000>;
254 };
255
256 pm8953_l11: l11 {
257 regulator-min-microvolt = <2950000>;
258 regulator-max-microvolt = <2950000>;
259 };
260
261 pm8953_l12: l12 {
262 regulator-min-microvolt = <1800000>;
263 regulator-max-microvolt = <2950000>;
264 };
265
266 pm8953_l13: l13 {
267 regulator-min-microvolt = <3125000>;
268 regulator-max-microvolt = <3125000>;
269 };
270
271 pm8953_l16: l16 {
272 regulator-min-microvolt = <1800000>;
273 regulator-max-microvolt = <1800000>;
274 };
275
276 pm8953_l17: l17 {
277 regulator-min-microvolt = <2750000>;
278 regulator-max-microvolt = <2850000>;
279 };
280
281 pm8953_l19: l19 {
282 regulator-min-microvolt = <1200000>;
283 regulator-max-microvolt = <1380000>;
284 };
285
286 pm8953_l22: l22 {
287 regulator-min-microvolt = <2800000>;
288 regulator-max-microvolt = <2800000>;
289 };
290
291 pm8953_l23: l23 {
292 regulator-min-microvolt = <1200000>;
293 regulator-max-microvolt = <1225000>;
294 };
295 };
296};
297
298&sdhc_1 {
299 vmmc-supply = <&pm8953_l8>;
300 vqmmc-supply = <&pm8953_l5>;
301
302 status = "okay";
303};
304
305&sdhc_2 {
306 vmmc-supply = <&pm8953_l11>;
307 vqmmc-supply = <&pm8953_l12>;
308
309 pinctrl-names = "default", "sleep";
310 pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
311 pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
312
313 status = "okay";
314};
315
316&tlmm {
317 gpio-reserved-ranges = <0 4>, <16 4>, <135 4>;
318
319 ts_reset_active: ts-reset-active-state {
320 pins = "gpio64";
321 function = "gpio";
322 drive-strength = <8>;
323 bias-pull-up;
324 };
325
326 ts_reset_suspend: ts-reset-suspend-state {
327 pins = "gpio64";
328 function = "gpio";
329 drive-strength = <2>;
330 bias-pull-up;
331 };
332
333 ts_int_active: ts-int-active-state {
334 pins = "gpio65";
335 function = "gpio";
336 drive-strength = <8>;
337 bias-pull-up;
338 };
339
340 ts_int_suspend: ts-int-suspend-state {
341 pins = "gpio65";
342 function = "gpio";
343 drive-strength = <2>;
344 bias-pull-down;
345 };
346};
347
348&uart_0 {
349 pinctrl-names = "default";
350 pinctrl-0 = <&uart_console_active>;
351
352 status = "okay";
353};
354
355&usb3 {
356 status = "okay";
357};
358
359&usb3_dwc3 {
Tom Rini6b642ac2024-10-01 12:20:28 -0600360 /delete-property/ usb-role-switch;
Tom Rini53633a82024-02-29 12:33:36 -0500361 dr_mode = "peripheral";
362};