xref: /linux/arch/arm64/boot/dts/qcom/msm8996pro-xiaomi-scorpio.dts (revision 0cac5ce06e524755b3dac1e0a060b05992076d93)
1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2020, Yassine Oudjana <y.oudjana@protonmail.com>
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#include <dt-bindings/sound/qcom,wcd9335.h>
14
15/ {
16	model = "Xiaomi Mi Note 2";
17	compatible = "xiaomi,scorpio", "qcom,msm8996pro", "qcom,msm8996";
18	chassis-type = "handset";
19	qcom,msm-id = <305 0x10000>;
20	qcom,board-id = <34 0>;
21
22	chosen {
23		#address-cells = <2>;
24		#size-cells = <2>;
25		ranges;
26
27		framebuffer0: framebuffer@83401000 {
28			compatible = "simple-framebuffer";
29			reg = <0x00 0x83401000 0x00 (1080 * 1920 * 3)>;
30			width = <1080>;
31			height = <1920>;
32			stride = <(1080 * 3)>;
33			format = "r8g8b8";
34
35			/* DSI0 and MDP SMMU clocks */
36			clocks = <&mmcc MDSS_MDP_CLK>,
37				 <&mmcc MMSS_MMAGIC_AHB_CLK>,
38				 <&mmcc MDSS_AHB_CLK>,
39				 <&mmcc MDSS_AXI_CLK>,
40				 <&mmcc MMSS_MISC_AHB_CLK>,
41				 <&mmcc MDSS_BYTE0_CLK>,
42				 <&mmcc MDSS_PCLK0_CLK>,
43				 <&mmcc MDSS_ESC0_CLK>,
44				 <&mmcc SMMU_MDP_AHB_CLK>,
45				 <&mmcc SMMU_MDP_AXI_CLK>;
46
47			/* MDSS power domain */
48			power-domains = <&mmcc MDSS_GDSC>;
49		};
50	};
51
52	reserved-memory {
53		cont_splash_mem: memory@83401000 {
54			reg = <0x0 0x83401000 0x0 (1080 * 1920 * 3)>;
55			no-map;
56		};
57	};
58};
59
60&adsp_pil {
61	firmware-name = "qcom/msm8996/scorpio/adsp.mbn";
62};
63
64&blsp2_i2c6 {
65	touchkey: touchkey@28 {
66		compatible = "cypress,sf3155";
67		reg = <0x28>;
68		interrupt-parent = <&tlmm>;
69		interrupts = <77 IRQ_TYPE_EDGE_FALLING>;
70		avdd-supply = <&vreg_l6a_1p8>;
71		vdd-supply = <&vdd_3v2_tp>;
72		linux,keycodes = <KEY_BACK KEY_MENU>;
73
74		pinctrl-names = "default", "sleep";
75		pinctrl-0 = <&touchkey_default>;
76		pinctrl-1 = <&touchkey_sleep>;
77	};
78
79	touchscreen: atmel-mxt-ts@4a {
80		compatible = "atmel,maxtouch";
81		reg = <0x4a>;
82		interrupt-parent = <&tlmm>;
83		interrupts = <125 IRQ_TYPE_LEVEL_LOW>;
84		vdda-supply = <&vreg_l6a_1p8>;
85		vdd-supply = <&vdd_3v2_tp>;
86		reset-gpios = <&tlmm 75 GPIO_ACTIVE_LOW>;
87
88		pinctrl-names = "default", "sleep";
89		pinctrl-0 = <&touchscreen_default>;
90		pinctrl-1 = <&touchscreen_sleep>;
91	};
92};
93
94&gpu_zap_shader {
95	firmware-name = "qcom/msm8996/scorpio/a530_zap.mbn";
96};
97
98&mdp_smmu {
99	/*
100	 * Probing this SMMU causes a crash due to writing to some secure
101	 * registers. Disable it for now.
102	 */
103	status = "disabled";
104};
105
106&mdss {
107	/*
108	 * MDSS depends on the MDP SMMU, and probing it alters the bootloader
109	 * configured framebuffer used by simplefb. Disable it for now.
110	 */
111	status = "disabled";
112};
113
114&mss_pil {
115	firmware-name = "qcom/msm8996/scorpio/mba.mbn",
116			"qcom/msm8996/scorpio/modem.mbn";
117};
118
119&pm8994_lpg {
120	pinctrl-names = "default";
121	pinctrl-0 = <&keypad_default>;
122
123	led@3 {
124		reg = <3>;
125		color = <LED_COLOR_ID_WHITE>;
126		function = LED_FUNCTION_KBD_BACKLIGHT;
127		function-enumerator = <1>;
128	};
129
130	led@6 {
131		reg = <6>;
132		color = <LED_COLOR_ID_WHITE>;
133		function = LED_FUNCTION_KBD_BACKLIGHT;
134		function-enumerator = <0>;
135	};
136};
137
138&q6asmdai {
139	dai@0 {
140		reg = <MSM_FRONTEND_DAI_MULTIMEDIA1>;
141	};
142
143	dai@1 {
144		reg = <MSM_FRONTEND_DAI_MULTIMEDIA2>;
145	};
146
147	dai@2 {
148		reg = <MSM_FRONTEND_DAI_MULTIMEDIA3>;
149	};
150};
151
152&slpi_pil {
153	firmware-name = "qcom/msm8996/scorpio/slpi.mbn";
154};
155
156&sound {
157	compatible = "qcom,apq8096-sndcard";
158	model = "scorpio";
159	audio-routing = "RX_BIAS", "MCLK";
160
161	mm1-dai-link {
162		link-name = "MultiMedia1";
163		cpu {
164			sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
165		};
166	};
167
168	mm2-dai-link {
169		link-name = "MultiMedia2";
170		cpu {
171			sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>;
172		};
173	};
174
175	mm3-dai-link {
176		link-name = "MultiMedia3";
177		cpu {
178			sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>;
179		};
180	};
181
182	slim-dai-link {
183		link-name = "SLIM Playback";
184		cpu {
185			sound-dai = <&q6afedai SLIMBUS_6_RX>;
186		};
187
188		platform {
189			sound-dai = <&q6routing>;
190		};
191
192		codec {
193			sound-dai = <&wcd9335 AIF4_PB>;
194		};
195	};
196
197	slimcap-dai-link {
198		link-name = "SLIM Capture";
199		cpu {
200			sound-dai = <&q6afedai SLIMBUS_0_TX>;
201		};
202
203		platform {
204			sound-dai = <&q6routing>;
205		};
206
207		codec {
208			sound-dai = <&wcd9335 AIF1_CAP>;
209		};
210	};
211};
212
213&venus {
214	firmware-name = "qcom/msm8996/scorpio/venus.mbn";
215};
216
217&rpm_requests {
218	regulators-0 {
219		vreg_l3a_0p875: l3 {
220			regulator-name = "vreg_l3a_0p875";
221			regulator-min-microvolt = <850000>;
222			regulator-max-microvolt = <1300000>;
223		};
224		vreg_l11a_1p1: l11 {
225			regulator-name = "vreg_l11a_1p1";
226			regulator-min-microvolt = <1100000>;
227			regulator-max-microvolt = <1100000>;
228		};
229		vreg_l17a_2p8: l17 {
230			regulator-name = "vreg_l17a_2p8";
231			regulator-min-microvolt = <2800000>;
232			regulator-max-microvolt = <2800000>;
233		};
234		vreg_l18a_2p8: l18 {
235			regulator-name = "vreg_l18a_2p8";
236			regulator-min-microvolt = <2800000>;
237			regulator-max-microvolt = <2800000>;
238		};
239		vreg_l22a_3p0: l22 {
240			regulator-name = "vreg_l22a_3p0";
241			regulator-min-microvolt = <2950000>;
242			regulator-max-microvolt = <3500000>;
243		};
244		vreg_l29a_2p7: l29 {
245			regulator-name = "vreg_l29a_2p7";
246			regulator-min-microvolt = <2700000>;
247			regulator-max-microvolt = <2700000>;
248		};
249	};
250};
251
252&vdd_gfx {
253	regulator-max-microvolt = <1065000>;
254};
255
256&pm8994_gpios {
257	gpio-line-names =
258		"NC",			/* GPIO_1  */
259		"VOL_UP_N",		/* GPIO_2  */
260		"SPKR_ID",		/* GPIO_3  */
261		"PWM_HAPTICS",		/* GPIO_4  */
262		"INFARED_DRV",		/* GPIO_5  */
263		"NC",			/* GPIO_6  */
264		"KEYPAD_LED_EN_A",	/* GPIO_7  */
265		"WL_EN",		/* GPIO_8  */
266		"3P3_ENABLE",		/* GPIO_9  */
267		"KEYPAD_LED_EN_B",	/* GPIO_10 */
268		"FP_ID",		/* GPIO_11 */
269		"NC",			/* GPIO_12 */
270		"NC",			/* GPIO_13 */
271		"NC",			/* GPIO_14 */
272		"DIVCLK1_CDC",		/* GPIO_15 */
273		"DIVCLK2_HAPTICS",	/* GPIO_16 */
274		"NC",			/* GPIO_17 */
275		"32KHz_CLK_IN",		/* GPIO_18 */
276		"BT_EN",		/* GPIO_19 */
277		"PMIC_SLB",		/* GPIO_20 */
278		"UIM_BATT_ALARM",	/* GPIO_21 */
279		"NC";			/* GPIO_22 */
280
281	keypad_default: keypad-default-state {
282		pins = "gpio7", "gpio10";
283		function = PMIC_GPIO_FUNC_FUNC1;
284		output-low;
285		qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>;
286		power-source = <PM8994_GPIO_S4>;
287		bias-disable;
288	};
289};
290
291&pm8994_mpps {
292	gpio-line-names =
293		"VREF_SDC_UIM_APC",	/* MPP_1 */
294		"NC",			/* MPP_2 */
295		"VREF_DACX",		/* MPP_3 */
296		"NC",			/* MPP_4 */
297		"NC",			/* MPP_5 */
298		"STAT_SMB1351",		/* MPP_6 */
299		"NC",			/* MPP_7 */
300		"NC";			/* MPP_8 */
301};
302
303&pmi8994_gpios {
304	gpio-line-names =
305		"NC",			/* GPIO_1  */
306		"SPKR_PA_RST",		/* GPIO_2  */
307		"NC",			/* GPIO_3  */
308		"NC",			/* GPIO_4  */
309		"NC",			/* GPIO_5  */
310		"NC",			/* GPIO_6  */
311		"NC",			/* GPIO_7  */
312		"NC",			/* GPIO_8  */
313		"NC",			/* GPIO_9  */
314		"NC";			/* GPIO_10 */
315};
316
317&tlmm {
318	gpio-line-names =
319		"ESE_SPI_MOSI",		/* GPIO_0   */
320		"ESE_SPI_MISO",		/* GPIO_1   */
321		"NC",			/* GPIO_2   */
322		"ESE_SPI_CLK",		/* GPIO_3   */
323		"MSM_UART_TX",		/* GPIO_4   */
324		"MSM_UART_RX",		/* GPIO_5   */
325		"NFC_I2C_SDA",		/* GPIO_6   */
326		"NFC_I2C_SCL",		/* GPIO_7   */
327		"OLED_RESET_N",		/* GPIO_8   */
328		"NFC_IRQ",		/* GPIO_9   */
329		"OLED_TE",		/* GPIO_10  */
330		"OLED_ID_DET1",		/* GPIO_11  */
331		"NFC_DISABLE",		/* GPIO_12  */
332		"CAM_MCLK0",		/* GPIO_13  */
333		"OLED_ID_DET2",		/* GPIO_14  */
334		"CAM_MCLK2",		/* GPIO_15  */
335		"ESE_PWR_REQ",		/* GPIO_16  */
336		"CCI_I2C_SDA0",		/* GPIO_17  */
337		"CCI_I2C_SCL0",		/* GPIO_18  */
338		"CCI_I2C_SDA1",		/* GPIO_19  */
339		"CCI_I2C_SCL1",		/* GPIO_20  */
340		"NFC_DWL_REQ",		/* GPIO_21  */
341		"CCI_TIMER1",		/* GPIO_22  */
342		"WEBCAM1_RESET_N",	/* GPIO_23  */
343		"ESE_IRQ",		/* GPIO_24  */
344		"NC",			/* GPIO_25  */
345		"WEBCAM1_STANDBY",	/* GPIO_26  */
346		"NC",			/* GPIO_27  */
347		"NC",			/* GPIO_28  */
348		"OLED_ERR_FG",		/* GPIO_29  */
349		"CAM1_RST_N",		/* GPIO_30  */
350		"HIFI_SW_MUTE",		/* GPIO_31  */
351		"NC",			/* GPIO_32  */
352		"NC",			/* GPIO_33  */
353		"FP_DOME_SW",		/* GPIO_34  */
354		"PCI_E0_RST_N",		/* GPIO_35  */
355		"PCI_E0_CLKREQ_N",	/* GPIO_36  */
356		"PCI_E0_WAKE",		/* GPIO_37  */
357		"OV_PWDN",		/* GPIO_38  */
358		"NC",			/* GPIO_39  */
359		"VDDR_1P6_EN",		/* GPIO_40  */
360		"QCA_UART_TXD",		/* GPIO_41  */
361		"QCA_UART_RXD",		/* GPIO_42  */
362		"QCA_UART_CTS",		/* GPIO_43  */
363		"QCA_UART_RTS",		/* GPIO_44  */
364		"MAWC_UART_TX",		/* GPIO_45  */
365		"MAWC_UART_RX",		/* GPIO_46  */
366		"NC",			/* GPIO_47  */
367		"NC",			/* GPIO_48  */
368		"AUDIO_SWITCH_EN",	/* GPIO_49  */
369		"FP_SPI_RST",		/* GPIO_50  */
370		"TYPEC_I2C_SDA",	/* GPIO_51  */
371		"TYPEC_I2C_SCL",	/* GPIO_52  */
372		"CODEC_INT2_N",		/* GPIO_53  */
373		"CODEC_INT1_N",		/* GPIO_54  */
374		"APPS_I2C7_SDA",	/* GPIO_55  */
375		"APPS_I2C7_SCL",	/* GPIO_56  */
376		"FORCE_USB_BOOT",	/* GPIO_57  */
377		"SPKR_I2S_BCK",		/* GPIO_58  */
378		"SPKR_I2S_WS",		/* GPIO_59  */
379		"SPKR_I2S_DOUT",	/* GPIO_60  */
380		"SPKR_I2S_DIN",		/* GPIO_61  */
381		"ESE_RSTN",		/* GPIO_62  */
382		"TYPEC_INT",		/* GPIO_63  */
383		"CODEC_RESET_N",	/* GPIO_64  */
384		"PCM_CLK",		/* GPIO_65  */
385		"PCM_SYNC",		/* GPIO_66  */
386		"PCM_DIN",		/* GPIO_67  */
387		"PCM_DOUT",		/* GPIO_68  */
388		"CDC_44K1_CLK",		/* GPIO_69  */
389		"SLIMBUS_CLK",		/* GPIO_70  */
390		"SLIMBUS_DATA0",	/* GPIO_71  */
391		"SLIMBUS_DATA1",	/* GPIO_72  */
392		"LDO_5V_IN_EN",		/* GPIO_73  */
393		"NC",			/* GPIO_74  */
394		"TSP_RST_N",		/* GPIO_75  */
395		"NC",			/* GPIO_76  */
396		"TOUCHKEY_INT",		/* GPIO_77  */
397		"SPKR_I2S_MCLK",	/* GPIO_78  */
398		"SPKR_PA_INT",		/* GPIO_79  */
399		"SENSOR_RESET_N",	/* GPIO_80  */
400		"FP_SPI_MOSI",		/* GPIO_81  */
401		"FP_SPI_MISO",		/* GPIO_82  */
402		"FP_SPI_CS_N",		/* GPIO_83  */
403		"FP_SPI_CLK",		/* GPIO_84  */
404		"HIFI_SD",		/* GPIO_85  */
405		"CAM_VDD_1P05_EN",	/* GPIO_86  */
406		"MSM_TS_I2C_SDA",	/* GPIO_87  */
407		"MSM_TS_I2C_SCL",	/* GPIO_88  */
408		"NC",			/* GPIO_89  */
409		"ESE_SPI_CS_N",		/* GPIO_90  */
410		"NC",			/* GPIO_91  */
411		"NC",			/* GPIO_92  */
412		"NC",			/* GPIO_93  */
413		"NC",			/* GPIO_94  */
414		"NC",			/* GPIO_95  */
415		"NC",			/* GPIO_96  */
416		"GRFC_0",		/* GPIO_97  */
417		"GRFC_1",		/* GPIO_98  */
418		"NC",			/* GPIO_99  */
419		"GRFC_3",		/* GPIO_100 */
420		"GRFC_4",		/* GPIO_101 */
421		"NC",			/* GPIO_102 */
422		"NC",			/* GPIO_103 */
423		"GRFC_7",		/* GPIO_104 */
424		"UIM2_DATA",		/* GPIO_105 */
425		"UIM2_CLK",		/* GPIO_106 */
426		"UIM2_RESET",		/* GPIO_107 */
427		"UIM2_PRESENT",		/* GPIO_108 */
428		"UIM1_DATA",		/* GPIO_109 */
429		"UIM1_CLK",		/* GPIO_110 */
430		"UIM1_RESET",		/* GPIO_111 */
431		"UIM1_PRESENT",		/* GPIO_112 */
432		"UIM_BATT_ALARM",	/* GPIO_113 */
433		"GRFC_8",		/* GPIO_114 */
434		"GRFC_9",		/* GPIO_115 */
435		"TX_GTR_THRES",		/* GPIO_116 */
436		"ACC_INT",		/* GPIO_117 */
437		"GYRO_INT",		/* GPIO_118 */
438		"COMPASS_INT",		/* GPIO_119 */
439		"PROXIMITY_INT_N",	/* GPIO_120 */
440		"FP_IRQ",		/* GPIO_121 */
441		"TSP_TA",		/* GPIO_122 */
442		"HALL_INTR2",		/* GPIO_123 */
443		"HALL_INTR1",		/* GPIO_124 */
444		"TS_INT_N",		/* GPIO_125 */
445		"NC",			/* GPIO_126 */
446		"GRFC_11",		/* GPIO_127 */
447		"HIFI_PWR_EN",		/* GPIO_128 */
448		"EXT_GPS_LNA_EN",	/* GPIO_129 */
449		"NC",			/* GPIO_130 */
450		"NC",			/* GPIO_131 */
451		"NC",			/* GPIO_132 */
452		"GRFC_14",		/* GPIO_133 */
453		"GSM_TX2_PHASE_D",	/* GPIO_134 */
454		"HIFI_SW_SEL",		/* GPIO_135 */
455		"GRFC_15",		/* GPIO_136 */
456		"RFFE3_DATA",		/* GPIO_137 */
457		"RFFE3_CLK",		/* GPIO_138 */
458		"NC",			/* GPIO_139 */
459		"NC",			/* GPIO_140 */
460		"RFFE5_DATA",		/* GPIO_141 */
461		"RFFE5_CLK",		/* GPIO_142 */
462		"NC",			/* GPIO_143 */
463		"COEX_UART_TX",		/* GPIO_144 */
464		"COEX_UART_RX",		/* GPIO_145 */
465		"RFFE2_DATA",		/* GPIO_146 */
466		"RFFE2_CLK",		/* GPIO_147 */
467		"RFFE1_DATA",		/* GPIO_148 */
468		"RFFE1_CLK";		/* GPIO_149 */
469
470	touchkey_default: touchkey-default-state {
471		pins = "gpio77";
472		function = "gpio";
473		drive-strength = <16>;
474		bias-pull-up;
475	};
476
477	touchkey_sleep: touchkey-sleep-state {
478		pins = "gpio77";
479		function = "gpio";
480		drive-strength = <2>;
481		bias-disable;
482	};
483
484	touchscreen_default: touchscreen-default-state {
485		pins = "gpio75", "gpio125";
486		function = "gpio";
487		drive-strength = <10>;
488		bias-pull-up;
489	};
490
491	touchscreen_sleep: touchscreen-sleep-state {
492		pins = "gpio75", "gpio125";
493		function = "gpio";
494		drive-strength = <2>;
495		bias-disable;
496	};
497};
498