blob: 5e3fd1637f449675411b556b9cace21383b1935d [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2022, Alec Su <ae40515@yahoo.com.tw>
4 */
5
6/dts-v1/;
7
8#include "msm8996pro.dtsi"
9#include "msm8996-xiaomi-common.dtsi"
10#include "pmi8996.dtsi"
11#include <dt-bindings/sound/qcom,q6afe.h>
12#include <dt-bindings/sound/qcom,q6asm.h>
13
14/ {
15 model = "Xiaomi Mi 5s Plus";
16 compatible = "xiaomi,natrium", "qcom,msm8996pro", "qcom,msm8996";
17 chassis-type = "handset";
18 qcom,msm-id = <305 0x10000>;
19 qcom,board-id = <47 0>;
20};
21
22&adsp_pil {
23 firmware-name = "qcom/msm8996/natrium/adsp.mbn";
24};
25
26&blsp2_i2c6 {
27 touchscreen@20 {
28 compatible = "syna,rmi4-i2c";
29 reg = <0x20>;
30 interrupt-parent = <&tlmm>;
31 interrupts = <125 IRQ_TYPE_LEVEL_LOW>;
32 vdd-supply = <&vdd_3v2_tp>;
33 syna,reset-delay-ms = <200>;
34 syna,startup-delay-ms = <5>;
35
36 pinctrl-names = "default", "sleep";
37 pinctrl-0 = <&touchscreen_default>;
38 pinctrl-1 = <&touchscreen_sleep>;
39 };
40};
41
42&gpu {
43 zap-shader {
44 firmware-name = "qcom/msm8996/natrium/a530_zap.mbn";
45 };
46};
47
48&mdss_dsi0 {
49 status = "okay";
50
51 vdda-supply = <&vreg_l2a_1p25>;
52 vcca-supply = <&vreg_l28a_0p925>;
53
54 pinctrl-names = "default", "sleep";
55 pinctrl-0 = <&mdss_dsi_default &mdss_te_default>;
56 pinctrl-1 = <&mdss_dsi_sleep &mdss_te_sleep>;
57
58 panel: panel@0 {
59 compatible = "jdi,fhd-r63452";
60 reg = <0>;
61 reset-gpios = <&tlmm 8 GPIO_ACTIVE_LOW>;
62 backlight = <&pmi8994_wled>;
63
64 port {
65 panel_in: endpoint {
66 remote-endpoint = <&mdss_dsi0_out>;
67 };
68 };
69 };
70};
71
72&mdss_dsi0_out {
73 remote-endpoint = <&panel_in>;
74};
75
76&mss_pil {
77 firmware-name = "qcom/msm8996/natrium/mba.mbn",
78 "qcom/msm8996/natrium/modem.mbn";
79};
80
81&pmi8994_wled {
82 status = "okay";
83
84 qcom,enabled-strings = <0 1>;
85 qcom,switching-freq = <600>;
86};
87
88&q6asmdai {
89 dai@0 {
90 reg = <0>;
91 };
92
93 dai@1 {
94 reg = <1>;
95 };
96
97 dai@2 {
98 reg = <2>;
99 };
100};
101
102&slpi_pil {
103 firmware-name = "qcom/msm8996/natrium/slpi.mbn";
104};
105
106&sound {
107 compatible = "qcom,apq8096-sndcard";
108 model = "natrium";
109 audio-routing = "RX_BIAS", "MCLK";
110
111 mm1-dai-link {
112 link-name = "MultiMedia1";
113 cpu {
114 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
115 };
116 };
117
118 mm2-dai-link {
119 link-name = "MultiMedia2";
120 cpu {
121 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>;
122 };
123 };
124
125 mm3-dai-link {
126 link-name = "MultiMedia3";
127 cpu {
128 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>;
129 };
130 };
131
132 slim-dai-link {
133 link-name = "SLIM Playback";
134 cpu {
135 sound-dai = <&q6afedai SLIMBUS_6_RX>;
136 };
137
138 platform {
139 sound-dai = <&q6routing>;
140 };
141
142 codec {
143 sound-dai = <&wcd9335 6>;
144 };
145 };
146
147 slimcap-dai-link {
148 link-name = "SLIM Capture";
149 cpu {
150 sound-dai = <&q6afedai SLIMBUS_0_TX>;
151 };
152
153 platform {
154 sound-dai = <&q6routing>;
155 };
156
157 codec {
158 sound-dai = <&wcd9335 1>;
159 };
160 };
161};
162
163&venus {
164 firmware-name = "qcom/msm8996/natrium/venus.mbn";
165};
166
167&rpm_requests {
168 regulators-0 {
169 vreg_l3a_0p875: l3 {
170 regulator-name = "vreg_l3a_0p875";
171 regulator-min-microvolt = <850000>;
172 regulator-max-microvolt = <1300000>;
173 };
174 vreg_l11a_1p1: l11 {
175 regulator-name = "vreg_l11a_1p1";
176 regulator-min-microvolt = <1100000>;
177 regulator-max-microvolt = <1100000>;
178 };
179 vreg_l17a_2p8: l17 {
180 regulator-name = "vreg_l17a_2p8";
181 regulator-min-microvolt = <2800000>;
182 regulator-max-microvolt = <2800000>;
183 };
184 vreg_l18a_2p8: l18 {
185 regulator-name = "vreg_l18a_2p8";
186 regulator-min-microvolt = <2800000>;
187 regulator-max-microvolt = <2800000>;
188 };
189 vreg_l29a_2p8: l29 {
190 regulator-name = "vreg_l29a_2p8";
191 regulator-min-microvolt = <2800000>;
192 regulator-max-microvolt = <2800000>;
193 };
194 };
195};
196
197&pm8994_gpios {
198 gpio-line-names =
199 "NC", /* GPIO_1 */
200 "VOL_UP_N", /* GPIO_2 */
201 "SPKR_ID", /* GPIO_3 */
202 "PWM_HAPTICS", /* GPIO_4 */
203 "INFARED_DRV", /* GPIO_5 */
204 "NC", /* GPIO_6 */
205 "KEYPAD_LED_EN_A", /* GPIO_7 */
206 "WL_EN", /* GPIO_8 */
207 "3P3_ENABLE", /* GPIO_9 */
208 "NC", /* GPIO_10 */
209 "NC", /* GPIO_11 */
210 "NC", /* GPIO_12 */
211 "NC", /* GPIO_13 */
212 "NC", /* GPIO_14 */
213 "DIVCLK1_CDC", /* GPIO_15 */
214 "DIVCLK2_HAPTICS", /* GPIO_16 */
215 "NC", /* GPIO_17 */
216 "32KHz_CLK_IN", /* GPIO_18 */
217 "BT_EN", /* GPIO_19 */
218 "PMIC_SLB", /* GPIO_20 */
219 "UIM_BATT_ALARM", /* GPIO_21 */
220 "NC"; /* GPIO_22 */
221};
222
223&pm8994_mpps {
224 gpio-line-names =
225 "NC", /* MPP_1 */
226 "CCI_TIMER1", /* MPP_2 */
227 "PMIC_SLB", /* MPP_3 */
228 "EXT_FET_WLED_PWR_EN_N",/* MPP_4 */
229 "NC", /* MPP_5 */
230 "NC", /* MPP_6 */
231 "NC", /* MPP_7 */
232 "NC"; /* MPP_8 */
233};
234
235&pmi8994_gpios {
236 gpio-line-names =
237 "NC", /* GPIO_1 */
238 "SPKR_PA_EN", /* GPIO_2 */
239 "NC", /* GPIO_3 */
240 "NC", /* GPIO_4 */
241 "NC", /* GPIO_5 */
242 "NC", /* GPIO_6 */
243 "NC", /* GPIO_7 */
244 "NC", /* GPIO_8 */
245 "NC", /* GPIO_9 */
246 "NC"; /* GPIO_10 */
247};
248
249&tlmm {
250 gpio-line-names =
251 "ESE_SPI_MOSI", /* GPIO_0 */
252 "ESE_SPI_MISO", /* GPIO_1 */
253 "NC", /* GPIO_2 */
254 "ESE_SPI_CLK", /* GPIO_3 */
255 "MSM_UART_TX", /* GPIO_4 */
256 "MSM_UART_RX", /* GPIO_5 */
257 "NFC_I2C_SDA", /* GPIO_6 */
258 "NFC_I2C_SCL", /* GPIO_7 */
259 "LCD0_RESET_N", /* GPIO_8 */
260 "NFC_IRQ", /* GPIO_9 */
261 "LCD_TE", /* GPIO_10 */
262 "LCD_ID_DET1", /* GPIO_11 */
263 "NFC_DISABLE", /* GPIO_12 */
264 "CAM_MCLK0", /* GPIO_13 */
265 "CAM_MCLK1", /* GPIO_14 */
266 "CAM_MCLK2", /* GPIO_15 */
267 "ESE_PWR_REQ", /* GPIO_16 */
268 "CCI_I2C_SDA0", /* GPIO_17 */
269 "CCI_I2C_SCL0", /* GPIO_18 */
270 "CCI_I2C_SDA1", /* GPIO_19 */
271 "CCI_I2C_SCL1", /* GPIO_20 */
272 "NFC_DWL_REQ", /* GPIO_21 */
273 "CCI_TIMER1", /* GPIO_22 */
274 "WEBCAM1_RESET_N", /* GPIO_23 */
275 "ESE_IRQ", /* GPIO_24 */
276 "NC", /* GPIO_25 */
277 "WEBCAM1_STANDBY", /* GPIO_26 */
278 "NC", /* GPIO_27 */
279 "NC", /* GPIO_28 */
280 "NC", /* GPIO_29 */
281 "CAM_VDD_1P2_EN_2", /* GPIO_30 */
282 "CAM_RESET_0", /* GPIO_31 */
283 "CAM_RESET_1", /* GPIO_32 */
284 "NC", /* GPIO_33 */
285 "NC", /* GPIO_34 */
286 "PCI_E0_RST_N", /* GPIO_35 */
287 "PCI_E0_CLKREQ_N", /* GPIO_36 */
288 "PCI_E0_WAKE", /* GPIO_37 */
289 "CHARGER_INT", /* GPIO_38 */
290 "CHARGER_RESET", /* GPIO_39 */
291 "NC", /* GPIO_40 */
292 "QCA_UART_TXD", /* GPIO_41 */
293 "QCA_UART_RXD", /* GPIO_42 */
294 "QCA_UART_CTS", /* GPIO_43 */
295 "QCA_UART_RTS", /* GPIO_44 */
296 "MAWC_UART_TX", /* GPIO_45 */
297 "MAWC_UART_RX", /* GPIO_46 */
298 "NC", /* GPIO_47 */
299 "NC", /* GPIO_48 */
300 "NC", /* GPIO_49 */
301 "FP_SPI_RST", /* GPIO_50 */
302 "TYPEC_I2C_SDA", /* GPIO_51 */
303 "TYPEC_I2C_SCL", /* GPIO_52 */
304 "CODEC_INT2_N", /* GPIO_53 */
305 "CODEC_INT1_N", /* GPIO_54 */
306 "APPS_I2C7_SDA", /* GPIO_55 */
307 "APPS_I2C7_SCL", /* GPIO_56 */
308 "FORCE_USB_BOOT", /* GPIO_57 */
309 "NC", /* GPIO_58 */
310 "NC", /* GPIO_59 */
311 "NC", /* GPIO_60 */
312 "NC", /* GPIO_61 */
313 "ESE_RSTN", /* GPIO_62 */
314 "TYPEC_INT", /* GPIO_63 */
315 "CODEC_RESET_N", /* GPIO_64 */
316 "PCM_CLK", /* GPIO_65 */
317 "PCM_SYNC", /* GPIO_66 */
318 "PCM_DIN", /* GPIO_67 */
319 "PCM_DOUT", /* GPIO_68 */
320 "CDC_44K1_CLK", /* GPIO_69 */
321 "SLIMBUS_CLK", /* GPIO_70 */
322 "SLIMBUS_DATA0", /* GPIO_71 */
323 "SLIMBUS_DATA1", /* GPIO_72 */
324 "LDO_5V_IN_EN", /* GPIO_73 */
325 "TYPEC_EN_N", /* GPIO_74 */
326 "NC", /* GPIO_75 */
327 "NC", /* GPIO_76 */
328 "NC", /* GPIO_77 */
329 "NC", /* GPIO_78 */
330 "NC", /* GPIO_79 */
331 "SENSOR_RESET_N", /* GPIO_80 */
332 "FP_SPI_MOSI", /* GPIO_81 */
333 "FP_SPI_MISO", /* GPIO_82 */
334 "FP_SPI_CS_N", /* GPIO_83 */
335 "FP_SPI_CLK", /* GPIO_84 */
336 "NC", /* GPIO_85 */
337 "CAM_VDD_1P2_EN", /* GPIO_86 */
338 "MSM_TS_I2C_SDA", /* GPIO_87 */
339 "MSM_TS_I2C_SCL", /* GPIO_88 */
340 "TS_RESOUT_N", /* GPIO_89 */
341 "ESE_SPI_CS_N", /* GPIO_90 */
342 "NC", /* GPIO_91 */
343 "CAM2_AVDD_EN", /* GPIO_92 */
344 "CAM2_VCM_EN", /* GPIO_93 */
345 "NC", /* GPIO_94 */
346 "NC", /* GPIO_95 */
347 "NC", /* GPIO_96 */
348 "GRFC_0", /* GPIO_97 */
349 "GRFC_1", /* GPIO_98 */
350 "NC", /* GPIO_99 */
351 "GRFC_3", /* GPIO_100 */
352 "GRFC_4", /* GPIO_101 */
353 "GRFC_5", /* GPIO_102 */
354 "NC", /* GPIO_103 */
355 "GRFC_7", /* GPIO_104 */
356 "UIM2_DATA", /* GPIO_105 */
357 "UIM2_CLK", /* GPIO_106 */
358 "UIM2_RESET", /* GPIO_107 */
359 "UIM2_PRESENT", /* GPIO_108 */
360 "UIM1_DATA", /* GPIO_109 */
361 "UIM1_CLK", /* GPIO_110 */
362 "UIM1_RESET", /* GPIO_111 */
363 "UIM1_PRESENT", /* GPIO_112 */
364 "UIM_BATT_ALARM", /* GPIO_113 */
365 "GRFC_8", /* GPIO_114 */
366 "GRFC_9", /* GPIO_115 */
367 "TX_GTR_THRES", /* GPIO_116 */
368 "ACCEL_INT", /* GPIO_117 */
369 "GYRO_INT", /* GPIO_118 */
370 "COMPASS_INT", /* GPIO_119 */
371 "PROXIMITY_INT_N", /* GPIO_120 */
372 "FP_IRQ", /* GPIO_121 */
373 "P_SENSE", /* GPIO_122 */
374 "HALL_INTR2", /* GPIO_123 */
375 "HALL_INTR1", /* GPIO_124 */
376 "TS_INT_N", /* GPIO_125 */
377 "NC", /* GPIO_126 */
378 "GRFC_11", /* GPIO_127 */
379 "NC", /* GPIO_128 */
380 "EXT_GPS_LNA_EN", /* GPIO_129 */
381 "NC", /* GPIO_130 */
382 "LCD_ID_DET2", /* GPIO_131 */
383 "LCD_TE2", /* GPIO_132 */
384 "GRFC_14", /* GPIO_133 */
385 "GSM_TX2_PHASE_D", /* GPIO_134 */
386 "NC", /* GPIO_135 */
387 "GRFC_15", /* GPIO_136 */
388 "RFFE3_DATA", /* GPIO_137 */
389 "RFFE3_CLK", /* GPIO_138 */
390 "NC", /* GPIO_139 */
391 "NC", /* GPIO_140 */
392 "RFFE5_DATA", /* GPIO_141 */
393 "RFFE5_CLK", /* GPIO_142 */
394 "NC", /* GPIO_143 */
395 "COEX_UART_TX", /* GPIO_144 */
396 "COEX_UART_RX", /* GPIO_145 */
397 "RFFE2_DATA", /* GPIO_146 */
398 "RFFE2_CLK", /* GPIO_147 */
399 "RFFE1_DATA", /* GPIO_148 */
400 "RFFE1_CLK"; /* GPIO_149 */
401
402 touchscreen_default: touchscreen-default-state {
403 pins = "gpio89", "gpio125";
404 function = "gpio";
405 drive-strength = <10>;
406 bias-pull-up;
407 };
408
409 touchscreen_sleep: touchscreen-sleep-state {
410 pins = "gpio89", "gpio125";
411 function = "gpio";
412 drive-strength = <2>;
413 bias-disable;
414 };
415};