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