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