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