Merge tag 'efi-efivars-removal-for-v5.20' of git://git.kernel.org/pub/scm/linux/kerne...
[linux-2.6-block.git] / arch / arm64 / boot / dts / qcom / msm8996-xiaomi-gemini.dts
CommitLineData
4ac46b36
RT
1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2021, Raffaele Tranquillini <raffaele.tranquillini@gmail.com>
4 */
5
6/dts-v1/;
7
8#include "msm8996-xiaomi-common.dtsi"
9#include <dt-bindings/sound/qcom,q6afe.h>
10#include <dt-bindings/sound/qcom,q6asm.h>
11#include <dt-bindings/input/ti-drv260x.h>
12
13/ {
14 model = "Xiaomi Mi 5";
15 compatible = "xiaomi,gemini", "qcom,msm8996";
eaa744b1 16 chassis-type = "handset";
4ac46b36
RT
17 qcom,msm-id = <246 0x30001>;
18 qcom,pmic-id = <0x20009 0x2000a 0x00 0x00>;
19 qcom,board-id = <31 0>;
20
21 clocks {
22 divclk2_haptics: divclk2 {
23 compatible = "fixed-clock";
24 #clock-cells = <0>;
25 clock-frequency = <32768>;
26 clock-output-names = "divclk2";
27
28 pinctrl-names = "default";
29 pinctrl-0 = <&divclk2_pin_a>;
30 };
31 };
32};
33
34&adsp_pil {
35 firmware-name = "qcom/msm8996/gemini/adsp.mbn";
36};
37
38&blsp2_i2c3 {
39 haptics: drv2604@5a {
40 compatible = "ti,drv2604";
41 reg = <0x5a>;
42 enable-gpio = <&tlmm 93 0x00>;
43 mode = <DRV260X_LRA_MODE>;
44 library-sel = <DRV260X_LIB_LRA>;
45 pinctrl-names = "default","sleep";
46 pinctrl-0 = <&vibrator_default>;
47 pinctrl-1 = <&vibrator_sleep>;
48 };
49
50 lp5562@30 {
51 compatible = "ti,lp5562";
52 reg = <0x30>;
53 #address-cells = <1>;
54 #size-cells = <0>;
55 enable-gpio = <&pm8994_gpios 7 1>;
56 clock-mode = /bits/8 <2>;
57 label = "button-backlight";
58
59 led@0 {
60 reg = <0>;
61 chan-name = "button-backlight";
62 led-cur = /bits/ 8 <0x32>;
63 max-cur = /bits/ 8 <0xC8>;
64 };
65
66 led@1 {
67 reg = <0>;
68 chan-name = "button-backlight1";
69 led-cur = /bits/ 8 <0x32>;
70 max-cur = /bits/ 8 <0xC8>;
71 };
72 };
73};
74
75&blsp2_i2c6 {
76 synaptics@20 {
77 compatible = "syna,rmi4-i2c";
78 reg = <0x20>;
79 #address-cells = <1>;
80 #size-cells = <0>;
81 interrupt-parent = <&tlmm>;
82 interrupts = <125 IRQ_TYPE_LEVEL_LOW>;
83 vdda-supply = <&vreg_l6a_1p8>;
84 vdd-supply = <&vdd_3v2_tp>;
85 reset-gpios = <&tlmm 89 GPIO_ACTIVE_LOW>;
86
87 pinctrl-names = "default", "sleep";
88 pinctrl-0 = <&touchscreen_default>;
89 pinctrl-1 = <&touchscreen_sleep>;
90 };
91
92};
93
ff80dc99
RT
94&dsi0 {
95 status = "okay";
96
97 vdd-supply = <&vreg_l2a_1p25>;
98 vdda-supply = <&vreg_l19a_3p3>;
99 vddio-supply = <&vreg_l14a_1p8>;
100
101 pinctrl-names = "default", "sleep";
102 pinctrl-0 = <&mdss_dsi_default &mdss_te_default>;
103 pinctrl-1 = <&mdss_dsi_sleep &mdss_te_sleep>;
104
105 panel: panel@0 {
106 compatible = "jdi,fhd-r63452";
107 reg = <0>;
108 reset-gpios = <&tlmm 8 GPIO_ACTIVE_LOW>;
109 backlight = <&pmi8994_wled>;
110
111 port {
112 panel_in: endpoint {
113 remote-endpoint = <&dsi0_out>;
114 };
115 };
116 };
117};
118
119&dsi0_out {
120 remote-endpoint = <&panel_in>;
121};
122
4ac46b36
RT
123&gpu {
124 zap-shader {
125 firmware-name = "qcom/msm8996/gemini/a530_zap.mbn";
126 };
127};
128
ff80dc99
RT
129&pmi8994_wled {
130 status = "okay";
131};
132
73f7731b
YO
133&mss_pil {
134 firmware-name = "qcom/msm8996/gemini/mba.mbn",
135 "qcom/msm8996/gemini/modem.mbn";
136};
137
4ac46b36
RT
138&q6asmdai {
139 dai@0 {
140 reg = <0>;
141 };
142
143 dai@1 {
144 reg = <1>;
145 };
146
147 dai@2 {
148 reg = <2>;
149 };
150};
151
73f7731b
YO
152&slpi_pil {
153 firmware-name = "qcom/msm8996/gemini/slpi.mbn";
154};
155
4ac46b36
RT
156&sound {
157 compatible = "qcom,apq8096-sndcard";
158 model = "gemini";
372cf591 159 audio-routing = "RX_BIAS", "MCLK",
4ac46b36
RT
160 "MM_DL1", "MultiMedia1 Playback",
161 "MM_DL2", "MultiMedia2 Playback",
162 "MultiMedia3 Capture", "MM_UL3";
163
164 mm1-dai-link {
165 link-name = "MultiMedia1";
166 cpu {
167 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
168 };
169 };
170
171 mm2-dai-link {
172 link-name = "MultiMedia2";
173 cpu {
174 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>;
175 };
176 };
177
178 mm3-dai-link {
179 link-name = "MultiMedia3";
180 cpu {
181 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>;
182 };
183 };
184
185 slim-dai-link {
186 link-name = "SLIM Playback";
187 cpu {
188 sound-dai = <&q6afedai SLIMBUS_6_RX>;
189 };
190
191 platform {
192 sound-dai = <&q6routing>;
193 };
194
195 codec {
196 sound-dai = <&wcd9335 6>;
197 };
198 };
199
200 slimcap-dai-link {
201 link-name = "SLIM Capture";
202 cpu {
203 sound-dai = <&q6afedai SLIMBUS_0_TX>;
204 };
205
206 platform {
207 sound-dai = <&q6routing>;
208 };
209
210 codec {
211 sound-dai = <&wcd9335 1>;
212 };
213 };
214};
215
216&venus {
217 firmware-name = "qcom/msm8996/gemini/venus.mbn";
218};
219
220&rpm_requests {
221 pm8994-regulators {
222 vreg_l17a_2p8: l17 {
223 regulator-name = "vreg_l17a_2p8";
224 regulator-min-microvolt = <2500000>;
225 regulator-max-microvolt = <2500000>;
226 };
227 vreg_l29a_2p7: l29 {
228 regulator-name = "vreg_l29a_2p7";
229 regulator-min-microvolt = <2800000>;
230 regulator-max-microvolt = <2800000>;
231 };
232 };
233};
234
235&pm8994_gpios {
236 gpio-line-names =
237 "NC", /* GPIO_1 */
238 "VOL_UP_N", /* GPIO_2 */
239 "SPKR_ID", /* GPIO_3 */
240 "PWM_HAPTICS", /* GPIO_4 */
241 "INFARED_DRV", /* GPIO_5 */
242 "NC", /* GPIO_6 */
243 "KEYPAD_LED_EN", /* GPIO_7 */
244 "WL_EN", /* GPIO_8 */
245 "3P3_ENABLE", /* GPIO_9 */
246 "FP_ID", /* GPIO_10 */
247 "NC", /* GPIO_11 */
248 "NC", /* GPIO_12 */
249 "NC", /* GPIO_13 */
250 "NC", /* GPIO_14 */
251 "DIVCLK1_CDC", /* GPIO_15 */
252 "DIVCLK2_HAPTICS", /* GPIO_16 */
253 "NC", /* GPIO_17 */
254 "32KHz_CLK_IN", /* GPIO_18 */
255 "BT_EN", /* GPIO_19 */
256 "PMIC_SLB", /* GPIO_20 */
257 "UIM_BATT_ALARM", /* GPIO_21 */
258 "NC"; /* GPIO_22 */
259
ff36bed5 260 divclk2_pin_a: divclk2-state {
4ac46b36
RT
261 pins = "gpio16";
262 function = PMIC_GPIO_FUNC_FUNC2;
263 bias-disable;
264 power-source = <PM8994_GPIO_S4>;
265 };
266};
267
268&pm8994_mpps {
269 gpio-line-names =
270 "NC", /* MPP_1 */
271 "CCI_TIMER1", /* MPP_2 */
272 "PMIC_SLB", /* MPP_3 */
273 "EXT_FET_WLED_PWR_EN_N",/* MPP_4 */
274 "NC", /* MPP_5 */
275 "NC", /* MPP_6 */
276 "NC", /* MPP_7 */
277 "NC"; /* MPP_8 */
278};
279
280&pmi8994_gpios {
281 gpio-line-names =
282 "NC", /* GPIO_1 */
283 "SPKR_PA_RST", /* GPIO_2 */
284 "NC", /* GPIO_3 */
285 "NC", /* GPIO_4 */
286 "NC", /* GPIO_5 */
287 "NC", /* GPIO_6 */
288 "NC", /* GPIO_7 */
289 "NC", /* GPIO_8 */
290 "NC", /* GPIO_9 */
291 "NC"; /* GPIO_10 */
292};
293
294&tlmm {
295 gpio-line-names =
296 "ESE_SPI_MOSI", /* GPIO_0 */
297 "ESE_SPI_MISO", /* GPIO_1 */
298 "ERR_INT_N", /* GPIO_2 */
299 "ESE_SPI_CLK", /* GPIO_3 */
300 "MSM_UART_TX", /* GPIO_4 */
301 "MSM_UART_RX", /* GPIO_5 */
302 "NFC_I2C_SDA", /* GPIO_6 */
303 "NFC_I2C_SCL", /* GPIO_7 */
304 "LCD0_RESET_N", /* GPIO_8 */
305 "NFC_IRQ", /* GPIO_9 */
306 "LCD_TE", /* GPIO_10 */
307 "LCD_ID_DET1", /* GPIO_11 */
308 "NFC_DISABLE", /* GPIO_12 */
309 "CAM_MCLK0", /* GPIO_13 */
310 "NC", /* GPIO_14 */
311 "CAM_MCLK2", /* GPIO_15 */
312 "ESE_PWR_REQ", /* GPIO_16 */
313 "CCI_I2C_SDA0", /* GPIO_17 */
314 "CCI_I2C_SCL0", /* GPIO_18 */
315 "CCI_I2C_SDA1", /* GPIO_19 */
316 "CCI_I2C_SCL1", /* GPIO_20 */
317 "NFC_DWL_REQ", /* GPIO_21 */
318 "CCI_TIMER1", /* GPIO_22 */
319 "WEBCAM1_RESET_N", /* GPIO_23 */
320 "ESE_IRQ", /* GPIO_24 */
321 "NC", /* GPIO_25 */
322 "WEBCAM1_STANDBY", /* GPIO_26 */
323 "NC", /* GPIO_27 */
324 "NC", /* GPIO_28 */
325 "NC", /* GPIO_29 */
326 "CAM1_RST_N", /* GPIO_30 */
327 "NC", /* GPIO_31 */
328 "NC", /* GPIO_32 */
329 "NC", /* GPIO_33 */
330 "FP_DOME_SW", /* GPIO_34 */
331 "PCI_E0_RST_N", /* GPIO_35 */
332 "PCI_E0_CLKREQ_N", /* GPIO_36 */
333 "PCI_E0_WAKE", /* GPIO_37 */
334 "FM_INT_N", /* GPIO_38 */
335 "FM_RESET_N", /* GPIO_39 */
336 "NC", /* GPIO_40 */
337 "QCA_UART_TXD", /* GPIO_41 */
338 "QCA_UART_RXD", /* GPIO_42 */
339 "QCA_UART_CTS", /* GPIO_43 */
340 "QCA_UART_RTS", /* GPIO_44 */
341 "MAWC_UART_TX", /* GPIO_45 */
342 "MAWC_UART_RX", /* GPIO_46 */
343 "NC", /* GPIO_47 */
344 "NC", /* GPIO_48 */
345 "AUDIO_SWITCH_EN", /* GPIO_49 */
346 "FP_SPI_RST", /* GPIO_50 */
347 "TYPEC_I2C_SDA", /* GPIO_51 */
348 "TYPEC_I2C_SCL", /* GPIO_52 */
349 "CODEC_INT2_N", /* GPIO_53 */
350 "CODEC_INT1_N", /* GPIO_54 */
351 "APPS_I2C7_SDA", /* GPIO_55 */
352 "APPS_I2C7_SCL", /* GPIO_56 */
353 "FORCE_USB_BOOT", /* GPIO_57 */
354 "SPKR_I2S_BCK", /* GPIO_58 */
355 "SPKR_I2S_WS", /* GPIO_59 */
356 "SPKR_I2S_DOUT", /* GPIO_60 */
357 "SPKR_I2S_DIN", /* GPIO_61 */
358 "ESE_RSTN", /* GPIO_62 */
359 "TYPEC_INT", /* GPIO_63 */
360 "CODEC_RESET_N", /* GPIO_64 */
361 "PCM_CLK", /* GPIO_65 */
362 "PCM_SYNC", /* GPIO_66 */
363 "PCM_DIN", /* GPIO_67 */
364 "PCM_DOUT", /* GPIO_68 */
365 "HIFI_CLK", /* GPIO_69 */
366 "SLIMBUS_CLK", /* GPIO_70 */
367 "SLIMBUS_DATA0", /* GPIO_71 */
368 "SLIMBUS_DATA1", /* GPIO_72 */
369 "LDO_5V_IN_EN", /* GPIO_73 */
370 "NC", /* GPIO_74 */
371 "FM_I2S_CLK", /* GPIO_75 */
372 "FM_I2S_SYNC", /* GPIO_76 */
373 "FM_I2S_DATA", /* GPIO_77 */
374 "FM_STATUS", /* GPIO_78 */
375 "NC", /* GPIO_79 */
376 "SENSOR_RESET_N", /* GPIO_80 */
377 "FP_SPI_MOSI", /* GPIO_81 */
378 "FP_SPI_MISO", /* GPIO_82 */
379 "FP_SPI_CS_N", /* GPIO_83 */
380 "FP_SPI_CLK", /* GPIO_84 */
381 "NC", /* GPIO_85 */
382 "CAM_VDD_1P05_EN", /* GPIO_86 */
383 "MSM_TS_I2C_SDA", /* GPIO_87 */
384 "MSM_TS_I2C_SCL", /* GPIO_88 */
385 "TS_RESOUT_N", /* GPIO_89 */
386 "ESE_SPI_CS_N", /* GPIO_90 */
387 "NC", /* GPIO_91 */
388 "NC", /* GPIO_92 */
389 "HAPTICS_EN", /* GPIO_93 */
390 "NC", /* GPIO_94 */
391 "NC", /* GPIO_95 */
392 "NC", /* GPIO_96 */
393 "NC", /* GPIO_97 */
394 "GRFC_1", /* GPIO_98 */
395 "NC", /* GPIO_99 */
396 "GRFC_3", /* GPIO_100 */
397 "GRFC_4", /* GPIO_101 */
398 "NC", /* GPIO_102 */
399 "NC", /* GPIO_103 */
400 "GRFC_7", /* GPIO_104 */
401 "UIM2_DATA", /* GPIO_105 */
402 "UIM2_CLK", /* GPIO_106 */
403 "UIM2_RESET", /* GPIO_107 */
404 "UIM2_PRESENT", /* GPIO_108 */
405 "UIM1_DATA", /* GPIO_109 */
406 "UIM1_CLK", /* GPIO_110 */
407 "UIM1_RESET", /* GPIO_111 */
408 "UIM1_PRESENT", /* GPIO_112 */
409 "UIM_BATT_ALARM", /* GPIO_113 */
410 "GRFC_8", /* GPIO_114 */
411 "GRFC_9", /* GPIO_115 */
412 "TX_GTR_THRES", /* GPIO_116 */
413 "ACCEL_INT", /* GPIO_117 */
414 "GYRO_INT", /* GPIO_118 */
415 "COMPASS_INT", /* GPIO_119 */
416 "PROXIMITY_INT_N", /* GPIO_120 */
417 "FP_IRQ", /* GPIO_121 */
418 "NC", /* GPIO_122 */
419 "HALL_INTR2", /* GPIO_123 */
420 "HALL_INTR1", /* GPIO_124 */
421 "TS_INT_N", /* GPIO_125 */
422 "NC", /* GPIO_126 */
423 "GRFC_11", /* GPIO_127 */
424 "NC", /* GPIO_128 */
425 "EXT_GPS_LNA_EN", /* GPIO_129 */
426 "NC", /* GPIO_130 */
427 "NC", /* GPIO_131 */
428 "NC", /* GPIO_132 */
429 "GRFC_14", /* GPIO_133 */
430 "GSM_TX2_PHASE_D", /* GPIO_134 */
431 "NC", /* GPIO_135 */
432 "NC", /* GPIO_136 */
433 "RFFE3_DATA", /* GPIO_137 */
434 "RFFE3_CLK", /* GPIO_138 */
435 "NC", /* GPIO_139 */
436 "NC", /* GPIO_140 */
437 "RFFE5_DATA", /* GPIO_141 */
438 "RFFE5_CLK", /* GPIO_142 */
439 "NC", /* GPIO_143 */
440 "COEX_UART_TX", /* GPIO_144 */
441 "COEX_UART_RX", /* GPIO_145 */
442 "RFFE2_DATA", /* GPIO_146 */
443 "RFFE2_CLK", /* GPIO_147 */
444 "RFFE1_DATA", /* GPIO_148 */
445 "RFFE1_CLK"; /* GPIO_149 */
446
447 touchscreen_default: touchscreen_default {
448 pins = "gpio89", "gpio125";
449 function = "gpio";
450 drive-strength = <10>;
451 bias-pull-up;
452 };
453
454 touchscreen_sleep: touchscreen_sleep {
455 pins = "gpio89", "gpio125";
456 function = "gpio";
457 drive-strength = <2>;
458 bias-disable;
459 };
460
461 vibrator_default: vibrator_default {
462 pins = "gpio93";
463 function = "gpio";
464 drive-strength = <8>;
465 bias-pull-up;
466 };
467
468 vibrator_sleep: vibrator_sleep {
469 pins = "gpio93";
470 function = "gpio";
471 drive-strength = <2>;
472 bias-disable;
473 };
474};