0001 // SPDX-License-Identifier: BSD-3-Clause
0002 /*
0003 * Copyright (c) 2020, Yassine Oudjana <y.oudjana@protonmail.com>
0004 */
0005
0006 /dts-v1/;
0007
0008 #include "msm8996-xiaomi-common.dtsi"
0009 #include "pmi8996.dtsi"
0010 #include <dt-bindings/sound/qcom,q6afe.h>
0011 #include <dt-bindings/sound/qcom,q6asm.h>
0012
0013 / {
0014 model = "Xiaomi Mi Note 2";
0015 compatible = "xiaomi,scorpio", "qcom,msm8996";
0016 chassis-type = "handset";
0017 qcom,msm-id = <305 0x10000>;
0018 qcom,board-id = <34 0>;
0019
0020 chosen {
0021 #address-cells = <2>;
0022 #size-cells = <2>;
0023 ranges;
0024
0025 framebuffer0: framebuffer@83401000 {
0026 compatible = "simple-framebuffer";
0027 reg = <0x00 0x83401000 0x00 (1080 * 1920 * 3)>;
0028 width = <1080>;
0029 height = <1920>;
0030 stride = <(1080 * 3)>;
0031 format = "r8g8b8";
0032
0033 /* DSI0 and MDP SMMU clocks */
0034 clocks = <&mmcc MDSS_MDP_CLK>,
0035 <&mmcc MMSS_MMAGIC_AHB_CLK>,
0036 <&mmcc MDSS_AHB_CLK>,
0037 <&mmcc MDSS_AXI_CLK>,
0038 <&mmcc MMSS_MISC_AHB_CLK>,
0039 <&mmcc MDSS_BYTE0_CLK>,
0040 <&mmcc MDSS_PCLK0_CLK>,
0041 <&mmcc MDSS_ESC0_CLK>,
0042 <&mmcc SMMU_MDP_AHB_CLK>,
0043 <&mmcc SMMU_MDP_AXI_CLK>;
0044
0045 /* MDSS power domain */
0046 power-domains = <&mmcc MDSS_GDSC>;
0047 };
0048 };
0049
0050 reserved-memory {
0051 cont_splash_mem: memory@83401000 {
0052 reg = <0x0 0x83401000 0x0 (1080 * 1920 * 3)>;
0053 no-map;
0054 };
0055 };
0056 };
0057
0058 &adsp_pil {
0059 firmware-name = "qcom/msm8996/scorpio/adsp.mbn";
0060 };
0061
0062 &blsp2_i2c6 {
0063 touchkey: touchkey@28 {
0064 compatible = "cypress,sf3155";
0065 reg = <0x28>;
0066 interrupt-parent = <&tlmm>;
0067 interrupts = <77 IRQ_TYPE_EDGE_FALLING>;
0068 avdd-supply = <&vreg_l6a_1p8>;
0069 vdd-supply = <&vdd_3v2_tp>;
0070 linux,keycodes = <KEY_BACK KEY_MENU>;
0071
0072 pinctrl-names = "default", "sleep";
0073 pinctrl-0 = <&touchkey_default>;
0074 pinctrl-1 = <&touchkey_sleep>;
0075 };
0076
0077 touchscreen: atmel-mxt-ts@4a {
0078 compatible = "atmel,maxtouch";
0079 reg = <0x4a>;
0080 interrupt-parent = <&tlmm>;
0081 interrupts = <125 IRQ_TYPE_LEVEL_LOW>;
0082 vdda-supply = <&vreg_l6a_1p8>;
0083 vdd-supply = <&vdd_3v2_tp>;
0084 reset-gpios = <&tlmm 75 GPIO_ACTIVE_LOW>;
0085
0086 pinctrl-names = "default", "sleep";
0087 pinctrl-0 = <&touchscreen_default>;
0088 pinctrl-1 = <&touchscreen_sleep>;
0089 };
0090 };
0091
0092 &gpu {
0093 zap-shader {
0094 firmware-name = "qcom/msm8996/scorpio/a530_zap.mbn";
0095 };
0096 };
0097
0098 &mdp_smmu {
0099 /*
0100 * Probing this SMMU causes a crash due to writing to some secure
0101 * registers. Disable it for now.
0102 */
0103 status = "disabled";
0104 };
0105
0106 &mdss {
0107 /*
0108 * MDSS depends on the MDP SMMU, and probing it alters the bootloader
0109 * configured framebuffer used by simplefb. Disable it for now.
0110 */
0111 status = "disabled";
0112 };
0113
0114 &mss_pil {
0115 firmware-name = "qcom/msm8996/scorpio/mba.mbn",
0116 "qcom/msm8996/scorpio/modem.mbn";
0117 };
0118
0119 &q6asmdai {
0120 dai@0 {
0121 reg = <0>;
0122 };
0123
0124 dai@1 {
0125 reg = <1>;
0126 };
0127
0128 dai@2 {
0129 reg = <2>;
0130 };
0131 };
0132
0133 &slpi_pil {
0134 firmware-name = "qcom/msm8996/scorpio/slpi.mbn";
0135 };
0136
0137 &sound {
0138 compatible = "qcom,apq8096-sndcard";
0139 model = "scorpio";
0140 audio-routing = "RX_BIAS", "MCLK";
0141
0142 mm1-dai-link {
0143 link-name = "MultiMedia1";
0144 cpu {
0145 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA1>;
0146 };
0147 };
0148
0149 mm2-dai-link {
0150 link-name = "MultiMedia2";
0151 cpu {
0152 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA2>;
0153 };
0154 };
0155
0156 mm3-dai-link {
0157 link-name = "MultiMedia3";
0158 cpu {
0159 sound-dai = <&q6asmdai MSM_FRONTEND_DAI_MULTIMEDIA3>;
0160 };
0161 };
0162
0163 slim-dai-link {
0164 link-name = "SLIM Playback";
0165 cpu {
0166 sound-dai = <&q6afedai SLIMBUS_6_RX>;
0167 };
0168
0169 platform {
0170 sound-dai = <&q6routing>;
0171 };
0172
0173 codec {
0174 sound-dai = <&wcd9335 6>;
0175 };
0176 };
0177
0178 slimcap-dai-link {
0179 link-name = "SLIM Capture";
0180 cpu {
0181 sound-dai = <&q6afedai SLIMBUS_0_TX>;
0182 };
0183
0184 platform {
0185 sound-dai = <&q6routing>;
0186 };
0187
0188 codec {
0189 sound-dai = <&wcd9335 1>;
0190 };
0191 };
0192 };
0193
0194 &venus {
0195 firmware-name = "qcom/msm8996/scorpio/venus.mbn";
0196 };
0197
0198 &rpm_requests {
0199 pm8994-regulators {
0200 vreg_l3a_0p875: l3 {
0201 regulator-name = "vreg_l3a_0p875";
0202 regulator-min-microvolt = <850000>;
0203 regulator-max-microvolt = <1300000>;
0204 };
0205 vreg_l11a_1p1: l11 {
0206 regulator-name = "vreg_l11a_1p1";
0207 regulator-min-microvolt = <1100000>;
0208 regulator-max-microvolt = <1100000>;
0209 };
0210 vreg_l17a_2p8: l17 {
0211 regulator-name = "vreg_l17a_2p8";
0212 regulator-min-microvolt = <2800000>;
0213 regulator-max-microvolt = <2800000>;
0214 };
0215 vreg_l18a_2p8: l18 {
0216 regulator-name = "vreg_l18a_2p8";
0217 regulator-min-microvolt = <2800000>;
0218 regulator-max-microvolt = <2800000>;
0219 };
0220 vreg_l22a_3p0: l22 {
0221 regulator-name = "vreg_l22a_3p0";
0222 regulator-min-microvolt = <2950000>;
0223 regulator-max-microvolt = <3500000>;
0224 };
0225 vreg_l29a_2p7: l29 {
0226 regulator-name = "vreg_l29a_2p7";
0227 regulator-min-microvolt = <2700000>;
0228 regulator-max-microvolt = <2700000>;
0229 };
0230 };
0231 };
0232
0233 &vdd_gfx {
0234 regulator-max-microvolt = <1065000>;
0235 };
0236
0237 &pm8994_gpios {
0238 gpio-line-names =
0239 "NC", /* GPIO_1 */
0240 "VOL_UP_N", /* GPIO_2 */
0241 "SPKR_ID", /* GPIO_3 */
0242 "PWM_HAPTICS", /* GPIO_4 */
0243 "INFARED_DRV", /* GPIO_5 */
0244 "NC", /* GPIO_6 */
0245 "KEYPAD_LED_EN_A", /* GPIO_7 */
0246 "WL_EN", /* GPIO_8 */
0247 "3P3_ENABLE", /* GPIO_9 */
0248 "KEYPAD_LED_EN_B", /* GPIO_10 */
0249 "FP_ID", /* GPIO_11 */
0250 "NC", /* GPIO_12 */
0251 "NC", /* GPIO_13 */
0252 "NC", /* GPIO_14 */
0253 "DIVCLK1_CDC", /* GPIO_15 */
0254 "DIVCLK2_HAPTICS", /* GPIO_16 */
0255 "NC", /* GPIO_17 */
0256 "32KHz_CLK_IN", /* GPIO_18 */
0257 "BT_EN", /* GPIO_19 */
0258 "PMIC_SLB", /* GPIO_20 */
0259 "UIM_BATT_ALARM", /* GPIO_21 */
0260 "NC"; /* GPIO_22 */
0261 };
0262
0263 &pm8994_mpps {
0264 gpio-line-names =
0265 "VREF_SDC_UIM_APC", /* MPP_1 */
0266 "NC", /* MPP_2 */
0267 "VREF_DACX", /* MPP_3 */
0268 "NC", /* MPP_4 */
0269 "NC", /* MPP_5 */
0270 "STAT_SMB1351", /* MPP_6 */
0271 "NC", /* MPP_7 */
0272 "NC"; /* MPP_8 */
0273 };
0274
0275 &pmi8994_gpios {
0276 gpio-line-names =
0277 "NC", /* GPIO_1 */
0278 "SPKR_PA_RST", /* GPIO_2 */
0279 "NC", /* GPIO_3 */
0280 "NC", /* GPIO_4 */
0281 "NC", /* GPIO_5 */
0282 "NC", /* GPIO_6 */
0283 "NC", /* GPIO_7 */
0284 "NC", /* GPIO_8 */
0285 "NC", /* GPIO_9 */
0286 "NC"; /* GPIO_10 */
0287 };
0288
0289 &tlmm {
0290 gpio-line-names =
0291 "ESE_SPI_MOSI", /* GPIO_0 */
0292 "ESE_SPI_MISO", /* GPIO_1 */
0293 "NC", /* GPIO_2 */
0294 "ESE_SPI_CLK", /* GPIO_3 */
0295 "MSM_UART_TX", /* GPIO_4 */
0296 "MSM_UART_RX", /* GPIO_5 */
0297 "NFC_I2C_SDA", /* GPIO_6 */
0298 "NFC_I2C_SCL", /* GPIO_7 */
0299 "OLED_RESET_N", /* GPIO_8 */
0300 "NFC_IRQ", /* GPIO_9 */
0301 "OLED_TE", /* GPIO_10 */
0302 "OLED_ID_DET1", /* GPIO_11 */
0303 "NFC_DISABLE", /* GPIO_12 */
0304 "CAM_MCLK0", /* GPIO_13 */
0305 "OLED_ID_DET2", /* GPIO_14 */
0306 "CAM_MCLK2", /* GPIO_15 */
0307 "ESE_PWR_REQ", /* GPIO_16 */
0308 "CCI_I2C_SDA0", /* GPIO_17 */
0309 "CCI_I2C_SCL0", /* GPIO_18 */
0310 "CCI_I2C_SDA1", /* GPIO_19 */
0311 "CCI_I2C_SCL1", /* GPIO_20 */
0312 "NFC_DWL_REQ", /* GPIO_21 */
0313 "CCI_TIMER1", /* GPIO_22 */
0314 "WEBCAM1_RESET_N", /* GPIO_23 */
0315 "ESE_IRQ", /* GPIO_24 */
0316 "NC", /* GPIO_25 */
0317 "WEBCAM1_STANDBY", /* GPIO_26 */
0318 "NC", /* GPIO_27 */
0319 "NC", /* GPIO_28 */
0320 "OLED_ERR_FG", /* GPIO_29 */
0321 "CAM1_RST_N", /* GPIO_30 */
0322 "HIFI_SW_MUTE", /* GPIO_31 */
0323 "NC", /* GPIO_32 */
0324 "NC", /* GPIO_33 */
0325 "FP_DOME_SW", /* GPIO_34 */
0326 "PCI_E0_RST_N", /* GPIO_35 */
0327 "PCI_E0_CLKREQ_N", /* GPIO_36 */
0328 "PCI_E0_WAKE", /* GPIO_37 */
0329 "OV_PWDN", /* GPIO_38 */
0330 "NC", /* GPIO_39 */
0331 "VDDR_1P6_EN", /* GPIO_40 */
0332 "QCA_UART_TXD", /* GPIO_41 */
0333 "QCA_UART_RXD", /* GPIO_42 */
0334 "QCA_UART_CTS", /* GPIO_43 */
0335 "QCA_UART_RTS", /* GPIO_44 */
0336 "MAWC_UART_TX", /* GPIO_45 */
0337 "MAWC_UART_RX", /* GPIO_46 */
0338 "NC", /* GPIO_47 */
0339 "NC", /* GPIO_48 */
0340 "AUDIO_SWITCH_EN", /* GPIO_49 */
0341 "FP_SPI_RST", /* GPIO_50 */
0342 "TYPEC_I2C_SDA", /* GPIO_51 */
0343 "TYPEC_I2C_SCL", /* GPIO_52 */
0344 "CODEC_INT2_N", /* GPIO_53 */
0345 "CODEC_INT1_N", /* GPIO_54 */
0346 "APPS_I2C7_SDA", /* GPIO_55 */
0347 "APPS_I2C7_SCL", /* GPIO_56 */
0348 "FORCE_USB_BOOT", /* GPIO_57 */
0349 "SPKR_I2S_BCK", /* GPIO_58 */
0350 "SPKR_I2S_WS", /* GPIO_59 */
0351 "SPKR_I2S_DOUT", /* GPIO_60 */
0352 "SPKR_I2S_DIN", /* GPIO_61 */
0353 "ESE_RSTN", /* GPIO_62 */
0354 "TYPEC_INT", /* GPIO_63 */
0355 "CODEC_RESET_N", /* GPIO_64 */
0356 "PCM_CLK", /* GPIO_65 */
0357 "PCM_SYNC", /* GPIO_66 */
0358 "PCM_DIN", /* GPIO_67 */
0359 "PCM_DOUT", /* GPIO_68 */
0360 "CDC_44K1_CLK", /* GPIO_69 */
0361 "SLIMBUS_CLK", /* GPIO_70 */
0362 "SLIMBUS_DATA0", /* GPIO_71 */
0363 "SLIMBUS_DATA1", /* GPIO_72 */
0364 "LDO_5V_IN_EN", /* GPIO_73 */
0365 "NC", /* GPIO_74 */
0366 "TSP_RST_N", /* GPIO_75 */
0367 "NC", /* GPIO_76 */
0368 "TOUCHKEY_INT", /* GPIO_77 */
0369 "SPKR_I2S_MCLK", /* GPIO_78 */
0370 "SPKR_PA_INT", /* GPIO_79 */
0371 "SENSOR_RESET_N", /* GPIO_80 */
0372 "FP_SPI_MOSI", /* GPIO_81 */
0373 "FP_SPI_MISO", /* GPIO_82 */
0374 "FP_SPI_CS_N", /* GPIO_83 */
0375 "FP_SPI_CLK", /* GPIO_84 */
0376 "HIFI_SD", /* GPIO_85 */
0377 "CAM_VDD_1P05_EN", /* GPIO_86 */
0378 "MSM_TS_I2C_SDA", /* GPIO_87 */
0379 "MSM_TS_I2C_SCL", /* GPIO_88 */
0380 "NC", /* GPIO_89 */
0381 "ESE_SPI_CS_N", /* GPIO_90 */
0382 "NC", /* GPIO_91 */
0383 "NC", /* GPIO_92 */
0384 "NC", /* GPIO_93 */
0385 "NC", /* GPIO_94 */
0386 "NC", /* GPIO_95 */
0387 "NC", /* GPIO_96 */
0388 "GRFC_0", /* GPIO_97 */
0389 "GRFC_1", /* GPIO_98 */
0390 "NC", /* GPIO_99 */
0391 "GRFC_3", /* GPIO_100 */
0392 "GRFC_4", /* GPIO_101 */
0393 "NC", /* GPIO_102 */
0394 "NC", /* GPIO_103 */
0395 "GRFC_7", /* GPIO_104 */
0396 "UIM2_DATA", /* GPIO_105 */
0397 "UIM2_CLK", /* GPIO_106 */
0398 "UIM2_RESET", /* GPIO_107 */
0399 "UIM2_PRESENT", /* GPIO_108 */
0400 "UIM1_DATA", /* GPIO_109 */
0401 "UIM1_CLK", /* GPIO_110 */
0402 "UIM1_RESET", /* GPIO_111 */
0403 "UIM1_PRESENT", /* GPIO_112 */
0404 "UIM_BATT_ALARM", /* GPIO_113 */
0405 "GRFC_8", /* GPIO_114 */
0406 "GRFC_9", /* GPIO_115 */
0407 "TX_GTR_THRES", /* GPIO_116 */
0408 "ACC_INT", /* GPIO_117 */
0409 "GYRO_INT", /* GPIO_118 */
0410 "COMPASS_INT", /* GPIO_119 */
0411 "PROXIMITY_INT_N", /* GPIO_120 */
0412 "FP_IRQ", /* GPIO_121 */
0413 "TSP_TA", /* GPIO_122 */
0414 "HALL_INTR2", /* GPIO_123 */
0415 "HALL_INTR1", /* GPIO_124 */
0416 "TS_INT_N", /* GPIO_125 */
0417 "NC", /* GPIO_126 */
0418 "GRFC_11", /* GPIO_127 */
0419 "HIFI_PWR_EN", /* GPIO_128 */
0420 "EXT_GPS_LNA_EN", /* GPIO_129 */
0421 "NC", /* GPIO_130 */
0422 "NC", /* GPIO_131 */
0423 "NC", /* GPIO_132 */
0424 "GRFC_14", /* GPIO_133 */
0425 "GSM_TX2_PHASE_D", /* GPIO_134 */
0426 "HIFI_SW_SEL", /* GPIO_135 */
0427 "GRFC_15", /* GPIO_136 */
0428 "RFFE3_DATA", /* GPIO_137 */
0429 "RFFE3_CLK", /* GPIO_138 */
0430 "NC", /* GPIO_139 */
0431 "NC", /* GPIO_140 */
0432 "RFFE5_DATA", /* GPIO_141 */
0433 "RFFE5_CLK", /* GPIO_142 */
0434 "NC", /* GPIO_143 */
0435 "COEX_UART_TX", /* GPIO_144 */
0436 "COEX_UART_RX", /* GPIO_145 */
0437 "RFFE2_DATA", /* GPIO_146 */
0438 "RFFE2_CLK", /* GPIO_147 */
0439 "RFFE1_DATA", /* GPIO_148 */
0440 "RFFE1_CLK"; /* GPIO_149 */
0441
0442 touchkey_default: touchkey_default {
0443 pins = "gpio77";
0444 function = "gpio";
0445 drive-strength = <16>;
0446 bias-pull-up;
0447 };
0448
0449 touchkey_sleep: touchkey_sleep {
0450 pins = "gpio77";
0451 function = "gpio";
0452 drive-strength = <2>;
0453 bias-disable;
0454 };
0455
0456 touchscreen_default: touchscreen_default {
0457 pins = "gpio75", "gpio125";
0458 function = "gpio";
0459 drive-strength = <10>;
0460 bias-pull-up;
0461 };
0462
0463 touchscreen_sleep: touchscreen_sleep {
0464 pins = "gpio75", "gpio125";
0465 function = "gpio";
0466 drive-strength = <2>;
0467 bias-disable;
0468 };
0469 };