1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Copyright 2016 MediaTek Inc. 4 */ 5 6#include <dt-bindings/input/input.h> 7#include <dt-bindings/input/linux-event-codes.h> 8#include <dt-bindings/regulator/dlg,da9211-regulator.h> 9#include <dt-bindings/gpio/gpio.h> 10#include "mt8173.dtsi" 11 12/ { 13 aliases { 14 mmc0 = &mmc0; 15 mmc1 = &mmc1; 16 mmc2 = &mmc3; 17 }; 18 19 memory@40000000 { 20 device_type = "memory"; 21 reg = <0 0x40000000 0 0x80000000>; 22 }; 23 24 backlight: backlight { 25 compatible = "pwm-backlight"; 26 pwms = <&pwm0 0 1000000>; 27 power-supply = <&bl_fixed_reg>; 28 enable-gpios = <&pio 95 GPIO_ACTIVE_HIGH>; 29 30 pinctrl-names = "default"; 31 pinctrl-0 = <&panel_backlight_en_pins>; 32 status = "okay"; 33 }; 34 35 bl_fixed_reg: fixedregulator2 { 36 compatible = "regulator-fixed"; 37 regulator-name = "bl_fixed"; 38 regulator-min-microvolt = <1800000>; 39 regulator-max-microvolt = <1800000>; 40 startup-delay-us = <1000>; 41 enable-active-high; 42 gpio = <&pio 32 GPIO_ACTIVE_HIGH>; 43 pinctrl-names = "default"; 44 pinctrl-0 = <&bl_fixed_pins>; 45 }; 46 47 chosen { 48 stdout-path = "serial0:115200n8"; 49 }; 50 51 gpio_keys: gpio-keys { 52 compatible = "gpio-keys"; 53 pinctrl-names = "default"; 54 pinctrl-0 = <&gpio_keys_pins>; 55 56 switch-lid { 57 label = "Lid"; 58 gpios = <&pio 69 GPIO_ACTIVE_LOW>; 59 linux,code = <SW_LID>; 60 linux,input-type = <EV_SW>; 61 wakeup-source; 62 }; 63 64 switch-power { 65 label = "Power"; 66 gpios = <&pio 14 GPIO_ACTIVE_HIGH>; 67 linux,code = <KEY_POWER>; 68 debounce-interval = <30>; 69 wakeup-source; 70 }; 71 72 switch-tablet-mode { 73 label = "Tablet_mode"; 74 gpios = <&pio 121 GPIO_ACTIVE_HIGH>; 75 linux,code = <SW_TABLET_MODE>; 76 linux,input-type = <EV_SW>; 77 wakeup-source; 78 }; 79 80 switch-volume-down { 81 label = "Volume_down"; 82 gpios = <&pio 123 GPIO_ACTIVE_LOW>; 83 linux,code = <KEY_VOLUMEDOWN>; 84 }; 85 86 switch-volume-up { 87 label = "Volume_up"; 88 gpios = <&pio 124 GPIO_ACTIVE_LOW>; 89 linux,code = <KEY_VOLUMEUP>; 90 }; 91 }; 92 93 panel_fixed_3v3: regulator1 { 94 compatible = "regulator-fixed"; 95 regulator-name = "PANEL_3V3"; 96 regulator-min-microvolt = <3300000>; 97 regulator-max-microvolt = <3300000>; 98 enable-active-high; 99 regulator-boot-on; 100 off-on-delay-us = <500000>; 101 gpio = <&pio 41 GPIO_ACTIVE_HIGH>; 102 pinctrl-names = "default"; 103 pinctrl-0 = <&panel_fixed_pins>; 104 }; 105 106 ps8640_fixed_1v2: regulator2 { 107 compatible = "regulator-fixed"; 108 regulator-name = "PS8640_1V2"; 109 regulator-min-microvolt = <1200000>; 110 regulator-max-microvolt = <1200000>; 111 regulator-enable-ramp-delay = <2000>; 112 enable-active-high; 113 regulator-boot-on; 114 gpio = <&pio 30 GPIO_ACTIVE_HIGH>; 115 pinctrl-names = "default"; 116 pinctrl-0 = <&ps8640_fixed_pins>; 117 }; 118 119 sdio_fixed_3v3: fixedregulator0 { 120 compatible = "regulator-fixed"; 121 regulator-name = "3V3"; 122 regulator-min-microvolt = <3300000>; 123 regulator-max-microvolt = <3300000>; 124 gpio = <&pio 85 GPIO_ACTIVE_HIGH>; 125 pinctrl-names = "default"; 126 pinctrl-0 = <&sdio_fixed_3v3_pins>; 127 }; 128 129 sound: sound { 130 compatible = "mediatek,mt8173-rt5650"; 131 mediatek,audio-codec = <&rt5650 &hdmi0>; 132 mediatek,platform = <&afe>; 133 pinctrl-names = "default"; 134 pinctrl-0 = <&aud_i2s2>; 135 136 mediatek,mclk = <1>; 137 codec-capture { 138 sound-dai = <&rt5650 1>; 139 }; 140 }; 141 142 hdmicon: connector { 143 compatible = "hdmi-connector"; 144 label = "hdmi"; 145 type = "a"; 146 ddc-i2c-bus = <&hdmiddc0>; 147 148 port { 149 hdmi_connector_in: endpoint { 150 remote-endpoint = <&hdmi0_out>; 151 }; 152 }; 153 }; 154 155 watchdog { 156 compatible = "arm,smc-wdt"; 157 }; 158}; 159 160/* 161 * Disable the original MMIO watch dog and switch to the SMC watchdog, which 162 * operates on the same MMIO. 163 */ 164&watchdog { 165 status = "disabled"; 166}; 167 168&mfg_async { 169 domain-supply = <&da9211_vgpu_reg>; 170}; 171 172&cec { 173 status = "okay"; 174}; 175 176&cpu0 { 177 proc-supply = <&mt6397_vpca15_reg>; 178}; 179 180&cpu1 { 181 proc-supply = <&mt6397_vpca15_reg>; 182}; 183 184&cpu2 { 185 proc-supply = <&da9211_vcpu_reg>; 186 sram-supply = <&mt6397_vsramca7_reg>; 187}; 188 189&cpu3 { 190 proc-supply = <&da9211_vcpu_reg>; 191 sram-supply = <&mt6397_vsramca7_reg>; 192}; 193 194&cpu_thermal { 195 sustainable-power = <4500>; /* milliwatts */ 196 trips { 197 threshold: trip-point0 { 198 temperature = <60000>; 199 }; 200 201 target: trip-point1 { 202 temperature = <65000>; 203 }; 204 }; 205}; 206 207&dsi0 { 208 status = "okay"; 209 ports { 210 port { 211 dsi0_out: endpoint { 212 remote-endpoint = <&ps8640_in>; 213 }; 214 }; 215 }; 216}; 217 218&dpi0 { 219 status = "okay"; 220}; 221 222&hdmi0 { 223 status = "okay"; 224 ports { 225 port@1 { 226 reg = <1>; 227 228 hdmi0_out: endpoint { 229 remote-endpoint = <&hdmi_connector_in>; 230 }; 231 }; 232 }; 233}; 234 235&hdmi_phy { 236 status = "okay"; 237 mediatek,ibias = <0xc>; 238}; 239 240&i2c0 { 241 status = "okay"; 242 243 rt5650: audio-codec@1a { 244 compatible = "realtek,rt5650"; 245 reg = <0x1a>; 246 avdd-supply = <&mt6397_vgp1_reg>; 247 cpvdd-supply = <&mt6397_vcama_reg>; 248 interrupt-parent = <&pio>; 249 interrupts = <3 IRQ_TYPE_EDGE_BOTH>; 250 pinctrl-names = "default"; 251 pinctrl-0 = <&rt5650_irq>; 252 #sound-dai-cells = <1>; 253 realtek,dmic1-data-pin = <2>; 254 realtek,jd-mode = <2>; 255 }; 256 257 ps8640: edp-bridge@8 { 258 compatible = "parade,ps8640"; 259 reg = <0x8>; 260 powerdown-gpios = <&pio 127 GPIO_ACTIVE_LOW>; 261 reset-gpios = <&pio 115 GPIO_ACTIVE_LOW>; 262 pinctrl-names = "default"; 263 pinctrl-0 = <&ps8640_pins>; 264 vdd12-supply = <&ps8640_fixed_1v2>; 265 vdd33-supply = <&mt6397_vgp2_reg>; 266 267 ports { 268 #address-cells = <1>; 269 #size-cells = <0>; 270 271 port@0 { 272 reg = <0>; 273 274 ps8640_in: endpoint { 275 remote-endpoint = <&dsi0_out>; 276 }; 277 }; 278 279 port@1 { 280 reg = <1>; 281 282 ps8640_out: endpoint { 283 remote-endpoint = <&panel_in>; 284 }; 285 }; 286 }; 287 288 aux-bus { 289 panel: panel { 290 compatible = "edp-panel"; 291 power-supply = <&panel_fixed_3v3>; 292 backlight = <&backlight>; 293 294 port { 295 panel_in: endpoint { 296 remote-endpoint = <&ps8640_out>; 297 }; 298 }; 299 }; 300 }; 301 }; 302}; 303 304&i2c1 { 305 clock-frequency = <1500000>; 306 status = "okay"; 307 308 da9211: da9211@68 { 309 compatible = "dlg,da9211"; 310 reg = <0x68>; 311 interrupt-parent = <&pio>; 312 interrupts = <15 IRQ_TYPE_LEVEL_LOW>; 313 314 regulators { 315 da9211_vcpu_reg: BUCKA { 316 regulator-name = "VBUCKA"; 317 regulator-min-microvolt = < 700000>; 318 regulator-max-microvolt = <1310000>; 319 regulator-min-microamp = <2000000>; 320 regulator-max-microamp = <4400000>; 321 regulator-ramp-delay = <10000>; 322 regulator-always-on; 323 regulator-allowed-modes = <DA9211_BUCK_MODE_SYNC 324 DA9211_BUCK_MODE_AUTO>; 325 }; 326 327 da9211_vgpu_reg: BUCKB { 328 regulator-name = "VBUCKB"; 329 regulator-min-microvolt = < 700000>; 330 regulator-max-microvolt = <1310000>; 331 regulator-min-microamp = <2000000>; 332 regulator-max-microamp = <3000000>; 333 regulator-ramp-delay = <10000>; 334 }; 335 }; 336 }; 337}; 338 339&i2c2 { 340 status = "okay"; 341 342 tpm: tpm@20 { 343 compatible = "infineon,slb9645tt"; 344 reg = <0x20>; 345 powered-while-suspended; 346 }; 347}; 348 349&i2c3 { 350 clock-frequency = <400000>; 351 status = "okay"; 352 353 touchscreen: touchscreen@10 { 354 compatible = "elan,ekth3500"; 355 reg = <0x10>; 356 interrupt-parent = <&pio>; 357 interrupts = <88 IRQ_TYPE_LEVEL_LOW>; 358 }; 359}; 360 361&i2c4 { 362 clock-frequency = <400000>; 363 status = "okay"; 364 pinctrl-names = "default"; 365 pinctrl-0 = <&trackpad_irq>; 366 367 trackpad: trackpad@15 { 368 compatible = "elan,ekth3000"; 369 interrupt-parent = <&pio>; 370 interrupts = <117 IRQ_TYPE_LEVEL_LOW>; 371 reg = <0x15>; 372 vcc-supply = <&mt6397_vgp6_reg>; 373 wakeup-source; 374 }; 375}; 376 377&mipi_tx0 { 378 status = "okay"; 379}; 380 381&mmc0 { 382 status = "okay"; 383 pinctrl-names = "default", "state_uhs"; 384 pinctrl-0 = <&mmc0_pins_default>; 385 pinctrl-1 = <&mmc0_pins_uhs>; 386 bus-width = <8>; 387 max-frequency = <200000000>; 388 cap-mmc-highspeed; 389 mmc-hs200-1_8v; 390 mmc-hs400-1_8v; 391 cap-mmc-hw-reset; 392 hs400-ds-delay = <0x14015>; 393 mediatek,hs200-cmd-int-delay = <30>; 394 mediatek,hs400-cmd-int-delay = <14>; 395 mediatek,hs400-cmd-resp-sel-rising; 396 vmmc-supply = <&mt6397_vemc_3v3_reg>; 397 vqmmc-supply = <&mt6397_vio18_reg>; 398 assigned-clocks = <&topckgen CLK_TOP_MSDC50_0_SEL>; 399 assigned-clock-parents = <&topckgen CLK_TOP_MSDCPLL_D2>; 400 non-removable; 401}; 402 403&mmc1 { 404 status = "okay"; 405 pinctrl-names = "default", "state_uhs"; 406 pinctrl-0 = <&mmc1_pins_default>; 407 pinctrl-1 = <&mmc1_pins_uhs>; 408 bus-width = <4>; 409 max-frequency = <200000000>; 410 cap-sd-highspeed; 411 sd-uhs-sdr50; 412 sd-uhs-sdr104; 413 cd-gpios = <&pio 1 GPIO_ACTIVE_LOW>; 414 vmmc-supply = <&mt6397_vmch_reg>; 415 vqmmc-supply = <&mt6397_vmc_reg>; 416}; 417 418&mmc3 { 419 status = "okay"; 420 pinctrl-names = "default", "state_uhs"; 421 pinctrl-0 = <&mmc3_pins_default>; 422 pinctrl-1 = <&mmc3_pins_uhs>; 423 bus-width = <4>; 424 max-frequency = <200000000>; 425 cap-sd-highspeed; 426 sd-uhs-sdr50; 427 sd-uhs-sdr104; 428 keep-power-in-suspend; 429 wakeup-source; 430 cap-sdio-irq; 431 vmmc-supply = <&sdio_fixed_3v3>; 432 vqmmc-supply = <&mt6397_vgp3_reg>; 433 non-removable; 434 cap-power-off-card; 435 436 #address-cells = <1>; 437 #size-cells = <0>; 438 439 btmrvl: btmrvl@2 { 440 compatible = "marvell,sd8897-bt"; 441 reg = <2>; 442 interrupt-parent = <&pio>; 443 interrupts = <119 IRQ_TYPE_LEVEL_LOW>; 444 marvell,wakeup-pin = /bits/ 16 <0x0d>; 445 marvell,wakeup-gap-ms = /bits/ 16 <0x64>; 446 }; 447 448 mwifiex: mwifiex@1 { 449 compatible = "marvell,sd8897"; 450 reg = <1>; 451 interrupt-parent = <&pio>; 452 interrupts = <38 IRQ_TYPE_LEVEL_LOW>; 453 marvell,wakeup-pin = <3>; 454 }; 455}; 456 457&nor_flash { 458 status = "okay"; 459 pinctrl-names = "default"; 460 pinctrl-0 = <&nor_gpio1_pins>; 461 462 flash@0 { 463 compatible = "jedec,spi-nor"; 464 reg = <0>; 465 spi-max-frequency = <50000000>; 466 }; 467}; 468 469&pio { 470 gpio-line-names = "EC_INT_1V8", 471 "SD_CD_L", 472 "ALC5514_IRQ", 473 "ALC5650_IRQ", 474 /* 475 * AP_FLASH_WP_L is crossystem ABI. Schematics 476 * call it SFWP_B. 477 */ 478 "AP_FLASH_WP_L", 479 "SFIN", 480 "SFCS0", 481 "SFHOLD", 482 "SFOUT", 483 "SFCK", 484 "WRAP_EVENT_S_EINT10", 485 "PMU_INT", 486 "I2S2_WS_ALC5650", 487 "I2S2_BCK_ALC5650", 488 "PWR_BTN_1V8", 489 "DA9212_IRQ", 490 "IDDIG", 491 "WATCHDOG", 492 "CEC", 493 "HDMISCK", 494 "HDMISD", 495 "HTPLG", 496 "MSDC3_DAT0", 497 "MSDC3_DAT1", 498 "MSDC3_DAT2", 499 "MSDC3_DAT3", 500 "MSDC3_CLK", 501 "MSDC3_CMD", 502 "USB_C0_OC_FLAGB", 503 "USBA_OC1_L", 504 "PS8640_1V2_ENABLE", 505 "THERM_ALERT_N", 506 "PANEL_LCD_POWER_EN", 507 "ANX7688_CHIP_PD_C", 508 "EC_IN_RW_1V8", 509 "ANX7688_1V_EN_C", 510 "USB_DP_HPD_C", 511 "TPM_DAVINT_N", 512 "MARVELL8897_IRQ", 513 "EN_USB_A0_PWR", 514 "USBA_A0_OC_L", 515 "EN_PP3300_DX_EDP", 516 "", 517 "SOC_I2C2_1V8_SDA_400K", 518 "SOC_I2C2_1V8_SCL_400K", 519 "SOC_I2C0_1V8_SDA_400K", 520 "SOC_I2C0_1V8_SCL_400K", 521 "EMMC_ID1", 522 "EMMC_ID0", 523 "MEM_CONFIG3", 524 "EMMC_ID2", 525 "MEM_CONFIG1", 526 "MEM_CONFIG2", 527 "BRD_ID2", 528 "MEM_CONFIG0", 529 "BRD_ID0", 530 "BRD_ID1", 531 "EMMC_DAT0", 532 "EMMC_DAT1", 533 "EMMC_DAT2", 534 "EMMC_DAT3", 535 "EMMC_DAT4", 536 "EMMC_DAT5", 537 "EMMC_DAT6", 538 "EMMC_DAT7", 539 "EMMC_CLK", 540 "EMMC_CMD", 541 "EMMC_RCLK", 542 "PLT_RST_L", 543 "LID_OPEN_1V8_L", 544 "AUDIO_SPI_MISO_R", 545 "", 546 "AC_OK_1V8", 547 "SD_DATA0", 548 "SD_DATA1", 549 "SD_DATA2", 550 "SD_DATA3", 551 "SD_CLK", 552 "SD_CMD", 553 "PWRAP_SPI0_MI", 554 "PWRAP_SPI0_MO", 555 "PWRAP_SPI0_CK", 556 "PWRAP_SPI0_CSN", 557 "", 558 "", 559 "WIFI_PDN", 560 "RTC32K_1V8", 561 "DISP_PWM0", 562 "TOUCHSCREEN_INT_L", 563 "", 564 "SRCLKENA0", 565 "SRCLKENA1", 566 "PS8640_MODE_CONF", 567 "TOUCHSCREEN_RESET_R", 568 "PLATFORM_PROCHOT_L", 569 "PANEL_POWER_EN", 570 "REC_MODE_L", 571 "EC_FW_UPDATE_L", 572 "ACCEL2_INT_L", 573 "HDMI_DP_INT", 574 "ACCELGYRO3_INT_L", 575 "ACCELGYRO4_INT_L", 576 "SPI_EC_CLK", 577 "SPI_EC_MI", 578 "SPI_EC_MO", 579 "SPI_EC_CSN", 580 "SOC_I2C3_1V8_SDA_400K", 581 "SOC_I2C3_1V8_SCL_400K", 582 "", 583 "", 584 "", 585 "", 586 "", 587 "", 588 "", 589 "PS8640_SYSRSTN_1V8", 590 "APIN_MAX98090_DOUT2", 591 "TP_INT_1V8_L_R", 592 "RST_USB_HUB_R", 593 "BT_WAKE_L", 594 "ACCEL1_INT_L", 595 "TABLET_MODE_L", 596 "", 597 "V_UP_IN_L_R", 598 "V_DOWN_IN_L_R", 599 "SOC_I2C1_1V8_SDA_1M", 600 "SOC_I2C1_1V8_SCL_1M", 601 "PS8640_PDN_1V8", 602 "MAX98090_LRCLK", 603 "MAX98090_BCLK", 604 "MAX98090_MCLK", 605 "APOUT_MAX98090_DIN", 606 "APIN_MAX98090_DOUT", 607 "SOC_I2C4_1V8_SDA_400K", 608 "SOC_I2C4_1V8_SCL_400K"; 609 610 aud_i2s2: aud_i2s2 { 611 pins1 { 612 pinmux = <MT8173_PIN_128_I2S0_LRCK__FUNC_I2S1_WS>, 613 <MT8173_PIN_129_I2S0_BCK__FUNC_I2S1_BCK>, 614 <MT8173_PIN_130_I2S0_MCK__FUNC_I2S1_MCK>, 615 <MT8173_PIN_131_I2S0_DATA0__FUNC_I2S1_DO_1>, 616 <MT8173_PIN_12_EINT12__FUNC_I2S2_WS>, 617 <MT8173_PIN_13_EINT13__FUNC_I2S2_BCK>, 618 <MT8173_PIN_132_I2S0_DATA1__FUNC_I2S2_DI_2>; 619 bias-pull-down; 620 }; 621 }; 622 623 bl_fixed_pins: bl_fixed_pins { 624 pins1 { 625 pinmux = <MT8173_PIN_32_UTXD2__FUNC_GPIO32>; 626 output-low; 627 }; 628 }; 629 630 bt_wake_pins: bt_wake_pins { 631 pins1 { 632 pinmux = <MT8173_PIN_119_KPROW0__FUNC_GPIO119>; 633 bias-pull-up; 634 }; 635 }; 636 637 disp_pwm0_pins: disp_pwm0_pins { 638 pins1 { 639 pinmux = <MT8173_PIN_87_DISP_PWM0__FUNC_DISP_PWM0>; 640 output-low; 641 }; 642 }; 643 644 gpio_keys_pins: gpio_keys_pins { 645 volume_pins { 646 pinmux = <MT8173_PIN_123_KPCOL1__FUNC_GPIO123>, 647 <MT8173_PIN_124_KPCOL2__FUNC_GPIO124>; 648 bias-pull-up; 649 }; 650 651 tablet_mode_pins { 652 pinmux = <MT8173_PIN_121_KPROW2__FUNC_GPIO121>; 653 bias-pull-up; 654 }; 655 }; 656 657 hdmi_mux_pins: hdmi_mux_pins { 658 pins1 { 659 pinmux = <MT8173_PIN_36_DAISYNC__FUNC_GPIO36>; 660 }; 661 }; 662 663 i2c1_pins_a: i2c1 { 664 da9211_pins { 665 pinmux = <MT8173_PIN_15_EINT15__FUNC_GPIO15>; 666 bias-pull-up; 667 }; 668 }; 669 670 mmc0_pins_default: mmc0default { 671 pins_cmd_dat { 672 pinmux = <MT8173_PIN_57_MSDC0_DAT0__FUNC_MSDC0_DAT0>, 673 <MT8173_PIN_58_MSDC0_DAT1__FUNC_MSDC0_DAT1>, 674 <MT8173_PIN_59_MSDC0_DAT2__FUNC_MSDC0_DAT2>, 675 <MT8173_PIN_60_MSDC0_DAT3__FUNC_MSDC0_DAT3>, 676 <MT8173_PIN_61_MSDC0_DAT4__FUNC_MSDC0_DAT4>, 677 <MT8173_PIN_62_MSDC0_DAT5__FUNC_MSDC0_DAT5>, 678 <MT8173_PIN_63_MSDC0_DAT6__FUNC_MSDC0_DAT6>, 679 <MT8173_PIN_64_MSDC0_DAT7__FUNC_MSDC0_DAT7>, 680 <MT8173_PIN_66_MSDC0_CMD__FUNC_MSDC0_CMD>; 681 bias-pull-up; 682 }; 683 684 pins_clk { 685 pinmux = <MT8173_PIN_65_MSDC0_CLK__FUNC_MSDC0_CLK>; 686 bias-pull-down; 687 }; 688 689 pins_rst { 690 pinmux = <MT8173_PIN_68_MSDC0_RST___FUNC_MSDC0_RSTB>; 691 bias-pull-up; 692 }; 693 }; 694 695 mmc1_pins_default: mmc1default { 696 pins_cmd_dat { 697 pinmux = <MT8173_PIN_73_MSDC1_DAT0__FUNC_MSDC1_DAT0>, 698 <MT8173_PIN_74_MSDC1_DAT1__FUNC_MSDC1_DAT1>, 699 <MT8173_PIN_75_MSDC1_DAT2__FUNC_MSDC1_DAT2>, 700 <MT8173_PIN_76_MSDC1_DAT3__FUNC_MSDC1_DAT3>, 701 <MT8173_PIN_78_MSDC1_CMD__FUNC_MSDC1_CMD>; 702 input-enable; 703 drive-strength = <MTK_DRIVE_4mA>; 704 bias-pull-up = <MTK_PUPD_SET_R1R0_10>; 705 }; 706 707 pins_clk { 708 pinmux = <MT8173_PIN_77_MSDC1_CLK__FUNC_MSDC1_CLK>; 709 bias-pull-down; 710 drive-strength = <MTK_DRIVE_4mA>; 711 }; 712 713 pins_insert { 714 pinmux = <MT8173_PIN_1_EINT1__FUNC_GPIO1>; 715 bias-pull-up; 716 }; 717 }; 718 719 mmc3_pins_default: mmc3default { 720 pins_dat { 721 pinmux = <MT8173_PIN_22_MSDC3_DAT0__FUNC_MSDC3_DAT0>, 722 <MT8173_PIN_23_MSDC3_DAT1__FUNC_MSDC3_DAT1>, 723 <MT8173_PIN_24_MSDC3_DAT2__FUNC_MSDC3_DAT2>, 724 <MT8173_PIN_25_MSDC3_DAT3__FUNC_MSDC3_DAT3>; 725 input-enable; 726 drive-strength = <MTK_DRIVE_8mA>; 727 bias-pull-up = <MTK_PUPD_SET_R1R0_10>; 728 }; 729 730 pins_cmd { 731 pinmux = <MT8173_PIN_27_MSDC3_CMD__FUNC_MSDC3_CMD>; 732 input-enable; 733 drive-strength = <MTK_DRIVE_8mA>; 734 bias-pull-up = <MTK_PUPD_SET_R1R0_10>; 735 }; 736 737 pins_clk { 738 pinmux = <MT8173_PIN_26_MSDC3_CLK__FUNC_MSDC3_CLK>; 739 bias-pull-down; 740 drive-strength = <MTK_DRIVE_8mA>; 741 }; 742 }; 743 744 mmc0_pins_uhs: mmc0 { 745 pins_cmd_dat { 746 pinmux = <MT8173_PIN_57_MSDC0_DAT0__FUNC_MSDC0_DAT0>, 747 <MT8173_PIN_58_MSDC0_DAT1__FUNC_MSDC0_DAT1>, 748 <MT8173_PIN_59_MSDC0_DAT2__FUNC_MSDC0_DAT2>, 749 <MT8173_PIN_60_MSDC0_DAT3__FUNC_MSDC0_DAT3>, 750 <MT8173_PIN_61_MSDC0_DAT4__FUNC_MSDC0_DAT4>, 751 <MT8173_PIN_62_MSDC0_DAT5__FUNC_MSDC0_DAT5>, 752 <MT8173_PIN_63_MSDC0_DAT6__FUNC_MSDC0_DAT6>, 753 <MT8173_PIN_64_MSDC0_DAT7__FUNC_MSDC0_DAT7>, 754 <MT8173_PIN_66_MSDC0_CMD__FUNC_MSDC0_CMD>; 755 input-enable; 756 drive-strength = <MTK_DRIVE_6mA>; 757 bias-pull-up = <MTK_PUPD_SET_R1R0_01>; 758 }; 759 760 pins_clk { 761 pinmux = <MT8173_PIN_65_MSDC0_CLK__FUNC_MSDC0_CLK>; 762 drive-strength = <MTK_DRIVE_6mA>; 763 bias-pull-down = <MTK_PUPD_SET_R1R0_01>; 764 }; 765 766 pins_ds { 767 pinmux = <MT8173_PIN_67_MSDC0_DSL__FUNC_MSDC0_DSL>; 768 drive-strength = <MTK_DRIVE_10mA>; 769 bias-pull-down = <MTK_PUPD_SET_R1R0_01>; 770 }; 771 772 pins_rst { 773 pinmux = <MT8173_PIN_68_MSDC0_RST___FUNC_MSDC0_RSTB>; 774 bias-pull-up; 775 }; 776 }; 777 778 mmc1_pins_uhs: mmc1 { 779 pins_cmd_dat { 780 pinmux = <MT8173_PIN_73_MSDC1_DAT0__FUNC_MSDC1_DAT0>, 781 <MT8173_PIN_74_MSDC1_DAT1__FUNC_MSDC1_DAT1>, 782 <MT8173_PIN_75_MSDC1_DAT2__FUNC_MSDC1_DAT2>, 783 <MT8173_PIN_76_MSDC1_DAT3__FUNC_MSDC1_DAT3>, 784 <MT8173_PIN_78_MSDC1_CMD__FUNC_MSDC1_CMD>; 785 input-enable; 786 drive-strength = <MTK_DRIVE_6mA>; 787 bias-pull-up = <MTK_PUPD_SET_R1R0_10>; 788 }; 789 790 pins_clk { 791 pinmux = <MT8173_PIN_77_MSDC1_CLK__FUNC_MSDC1_CLK>; 792 drive-strength = <MTK_DRIVE_8mA>; 793 bias-pull-down = <MTK_PUPD_SET_R1R0_10>; 794 }; 795 }; 796 797 mmc3_pins_uhs: mmc3 { 798 pins_dat { 799 pinmux = <MT8173_PIN_22_MSDC3_DAT0__FUNC_MSDC3_DAT0>, 800 <MT8173_PIN_23_MSDC3_DAT1__FUNC_MSDC3_DAT1>, 801 <MT8173_PIN_24_MSDC3_DAT2__FUNC_MSDC3_DAT2>, 802 <MT8173_PIN_25_MSDC3_DAT3__FUNC_MSDC3_DAT3>; 803 input-enable; 804 drive-strength = <MTK_DRIVE_8mA>; 805 bias-pull-up = <MTK_PUPD_SET_R1R0_10>; 806 }; 807 808 pins_cmd { 809 pinmux = <MT8173_PIN_27_MSDC3_CMD__FUNC_MSDC3_CMD>; 810 input-enable; 811 drive-strength = <MTK_DRIVE_8mA>; 812 bias-pull-up = <MTK_PUPD_SET_R1R0_10>; 813 }; 814 815 pins_clk { 816 pinmux = <MT8173_PIN_26_MSDC3_CLK__FUNC_MSDC3_CLK>; 817 drive-strength = <MTK_DRIVE_8mA>; 818 bias-pull-down = <MTK_PUPD_SET_R1R0_10>; 819 }; 820 }; 821 822 nor_gpio1_pins: nor { 823 pins1 { 824 pinmux = <MT8173_PIN_6_EINT6__FUNC_SFCS0>, 825 <MT8173_PIN_7_EINT7__FUNC_SFHOLD>, 826 <MT8173_PIN_8_EINT8__FUNC_SFIN>; 827 input-enable; 828 drive-strength = <MTK_DRIVE_4mA>; 829 bias-pull-up; 830 }; 831 832 pins2 { 833 pinmux = <MT8173_PIN_5_EINT5__FUNC_SFOUT>; 834 drive-strength = <MTK_DRIVE_4mA>; 835 bias-pull-up; 836 }; 837 838 pins_clk { 839 pinmux = <MT8173_PIN_9_EINT9__FUNC_SFCK>; 840 input-enable; 841 drive-strength = <MTK_DRIVE_4mA>; 842 bias-pull-up; 843 }; 844 }; 845 846 panel_backlight_en_pins: panel_backlight_en_pins { 847 pins1 { 848 pinmux = <MT8173_PIN_95_PCM_TX__FUNC_GPIO95>; 849 }; 850 }; 851 852 panel_fixed_pins: panel_fixed_pins { 853 pins1 { 854 pinmux = <MT8173_PIN_41_CMMCLK__FUNC_GPIO41>; 855 }; 856 }; 857 858 ps8640_pins: ps8640_pins { 859 pins1 { 860 pinmux = <MT8173_PIN_92_PCM_CLK__FUNC_GPIO92>, 861 <MT8173_PIN_115_URTS0__FUNC_GPIO115>, 862 <MT8173_PIN_127_LCM_RST__FUNC_GPIO127>; 863 }; 864 }; 865 866 ps8640_fixed_pins: ps8640_fixed_pins { 867 pins1 { 868 pinmux = <MT8173_PIN_30_URTS2__FUNC_GPIO30>; 869 }; 870 }; 871 872 rt5650_irq: rt5650_irq { 873 pins1 { 874 pinmux = <MT8173_PIN_3_EINT3__FUNC_GPIO3>; 875 bias-pull-down; 876 }; 877 }; 878 879 sdio_fixed_3v3_pins: sdio_fixed_3v3_pins { 880 pins1 { 881 pinmux = <MT8173_PIN_85_AUD_DAT_MOSI__FUNC_GPIO85>; 882 output-low; 883 }; 884 }; 885 886 spi_pins_a: spi1 { 887 pins1 { 888 pinmux = <MT8173_PIN_0_EINT0__FUNC_GPIO0>; 889 bias-pull-up; 890 }; 891 892 pins_spi { 893 pinmux = <MT8173_PIN_102_MSDC2_DAT2__FUNC_SPI_CK_1_>, 894 <MT8173_PIN_103_MSDC2_DAT3__FUNC_SPI_MI_1_>, 895 <MT8173_PIN_104_MSDC2_CLK__FUNC_SPI_MO_1_>, 896 <MT8173_PIN_105_MSDC2_CMD__FUNC_SPI_CS_1_>; 897 bias-disable; 898 }; 899 }; 900 901 trackpad_irq: trackpad_irq { 902 pins1 { 903 pinmux = <MT8173_PIN_117_URXD3__FUNC_GPIO117>; 904 input-enable; 905 bias-pull-up; 906 }; 907 }; 908 909 usb_pins: usb { 910 pins1 { 911 pinmux = <MT8173_PIN_101_MSDC2_DAT1__FUNC_GPIO101>; 912 output-high; 913 bias-disable; 914 }; 915 }; 916 917 wifi_wake_pins: wifi_wake_pins { 918 pins1 { 919 pinmux = <MT8173_PIN_38_CONN_RST__FUNC_GPIO38>; 920 bias-pull-up; 921 }; 922 }; 923}; 924 925&pwm0 { 926 pinctrl-names = "default"; 927 pinctrl-0 = <&disp_pwm0_pins>; 928 status = "okay"; 929}; 930 931&pwrap { 932 pmic: pmic { 933 compatible = "mediatek,mt6397"; 934 #address-cells = <1>; 935 #size-cells = <1>; 936 interrupt-parent = <&pio>; 937 interrupts = <11 IRQ_TYPE_LEVEL_HIGH>; 938 interrupt-controller; 939 #interrupt-cells = <2>; 940 941 clock: mt6397clock { 942 compatible = "mediatek,mt6397-clk"; 943 #clock-cells = <1>; 944 }; 945 946 pio6397: pinctrl { 947 compatible = "mediatek,mt6397-pinctrl"; 948 gpio-controller; 949 #gpio-cells = <2>; 950 }; 951 952 regulator: mt6397regulator { 953 compatible = "mediatek,mt6397-regulator"; 954 955 mt6397_vpca15_reg: buck_vpca15 { 956 regulator-compatible = "buck_vpca15"; 957 regulator-name = "vpca15"; 958 regulator-min-microvolt = < 700000>; 959 regulator-max-microvolt = <1350000>; 960 regulator-ramp-delay = <12500>; 961 regulator-always-on; 962 regulator-allowed-modes = <0 1>; 963 }; 964 965 mt6397_vpca7_reg: buck_vpca7 { 966 regulator-compatible = "buck_vpca7"; 967 regulator-name = "vpca7"; 968 regulator-min-microvolt = < 700000>; 969 regulator-max-microvolt = <1350000>; 970 regulator-ramp-delay = <12500>; 971 regulator-enable-ramp-delay = <115>; 972 regulator-always-on; 973 }; 974 975 mt6397_vsramca15_reg: buck_vsramca15 { 976 regulator-compatible = "buck_vsramca15"; 977 regulator-name = "vsramca15"; 978 regulator-min-microvolt = < 700000>; 979 regulator-max-microvolt = <1350000>; 980 regulator-ramp-delay = <12500>; 981 regulator-always-on; 982 }; 983 984 mt6397_vsramca7_reg: buck_vsramca7 { 985 regulator-compatible = "buck_vsramca7"; 986 regulator-name = "vsramca7"; 987 regulator-min-microvolt = < 700000>; 988 regulator-max-microvolt = <1350000>; 989 regulator-ramp-delay = <12500>; 990 regulator-always-on; 991 }; 992 993 mt6397_vcore_reg: buck_vcore { 994 regulator-compatible = "buck_vcore"; 995 regulator-name = "vcore"; 996 regulator-min-microvolt = < 700000>; 997 regulator-max-microvolt = <1350000>; 998 regulator-ramp-delay = <12500>; 999 regulator-always-on; 1000 }; 1001 1002 mt6397_vgpu_reg: buck_vgpu { 1003 regulator-compatible = "buck_vgpu"; 1004 regulator-name = "vgpu"; 1005 regulator-min-microvolt = < 700000>; 1006 regulator-max-microvolt = <1350000>; 1007 regulator-ramp-delay = <12500>; 1008 regulator-enable-ramp-delay = <115>; 1009 }; 1010 1011 mt6397_vdrm_reg: buck_vdrm { 1012 regulator-compatible = "buck_vdrm"; 1013 regulator-name = "vdrm"; 1014 regulator-min-microvolt = <1200000>; 1015 regulator-max-microvolt = <1400000>; 1016 regulator-ramp-delay = <12500>; 1017 regulator-always-on; 1018 }; 1019 1020 mt6397_vio18_reg: buck_vio18 { 1021 regulator-compatible = "buck_vio18"; 1022 regulator-name = "vio18"; 1023 regulator-min-microvolt = <1620000>; 1024 regulator-max-microvolt = <1980000>; 1025 regulator-ramp-delay = <12500>; 1026 regulator-always-on; 1027 }; 1028 1029 mt6397_vtcxo_reg: ldo_vtcxo { 1030 regulator-compatible = "ldo_vtcxo"; 1031 regulator-name = "vtcxo"; 1032 regulator-always-on; 1033 }; 1034 1035 mt6397_va28_reg: ldo_va28 { 1036 regulator-compatible = "ldo_va28"; 1037 regulator-name = "va28"; 1038 }; 1039 1040 mt6397_vcama_reg: ldo_vcama { 1041 regulator-compatible = "ldo_vcama"; 1042 regulator-name = "vcama"; 1043 regulator-min-microvolt = <1800000>; 1044 regulator-max-microvolt = <1800000>; 1045 regulator-enable-ramp-delay = <218>; 1046 }; 1047 1048 mt6397_vio28_reg: ldo_vio28 { 1049 regulator-compatible = "ldo_vio28"; 1050 regulator-name = "vio28"; 1051 regulator-always-on; 1052 }; 1053 1054 mt6397_vusb_reg: ldo_vusb { 1055 regulator-compatible = "ldo_vusb"; 1056 regulator-name = "vusb"; 1057 }; 1058 1059 mt6397_vmc_reg: ldo_vmc { 1060 regulator-compatible = "ldo_vmc"; 1061 regulator-name = "vmc"; 1062 regulator-min-microvolt = <1800000>; 1063 regulator-max-microvolt = <3300000>; 1064 regulator-enable-ramp-delay = <218>; 1065 }; 1066 1067 mt6397_vmch_reg: ldo_vmch { 1068 regulator-compatible = "ldo_vmch"; 1069 regulator-name = "vmch"; 1070 regulator-min-microvolt = <3000000>; 1071 regulator-max-microvolt = <3300000>; 1072 regulator-enable-ramp-delay = <218>; 1073 }; 1074 1075 mt6397_vemc_3v3_reg: ldo_vemc3v3 { 1076 regulator-compatible = "ldo_vemc3v3"; 1077 regulator-name = "vemc_3v3"; 1078 regulator-min-microvolt = <3000000>; 1079 regulator-max-microvolt = <3300000>; 1080 regulator-enable-ramp-delay = <218>; 1081 }; 1082 1083 mt6397_vgp1_reg: ldo_vgp1 { 1084 regulator-compatible = "ldo_vgp1"; 1085 regulator-name = "vcamd"; 1086 regulator-min-microvolt = <1800000>; 1087 regulator-max-microvolt = <1800000>; 1088 regulator-enable-ramp-delay = <240>; 1089 }; 1090 1091 mt6397_vgp2_reg: ldo_vgp2 { 1092 regulator-compatible = "ldo_vgp2"; 1093 regulator-name = "vcamio"; 1094 regulator-min-microvolt = <3300000>; 1095 regulator-max-microvolt = <3300000>; 1096 regulator-enable-ramp-delay = <218>; 1097 }; 1098 1099 mt6397_vgp3_reg: ldo_vgp3 { 1100 regulator-compatible = "ldo_vgp3"; 1101 regulator-name = "vcamaf"; 1102 regulator-min-microvolt = <1800000>; 1103 regulator-max-microvolt = <1800000>; 1104 regulator-enable-ramp-delay = <218>; 1105 }; 1106 1107 mt6397_vgp4_reg: ldo_vgp4 { 1108 regulator-compatible = "ldo_vgp4"; 1109 regulator-name = "vgp4"; 1110 regulator-min-microvolt = <1200000>; 1111 regulator-max-microvolt = <3300000>; 1112 regulator-enable-ramp-delay = <218>; 1113 }; 1114 1115 mt6397_vgp5_reg: ldo_vgp5 { 1116 regulator-compatible = "ldo_vgp5"; 1117 regulator-name = "vgp5"; 1118 regulator-min-microvolt = <1200000>; 1119 regulator-max-microvolt = <3000000>; 1120 regulator-enable-ramp-delay = <218>; 1121 }; 1122 1123 mt6397_vgp6_reg: ldo_vgp6 { 1124 regulator-compatible = "ldo_vgp6"; 1125 regulator-name = "vgp6"; 1126 regulator-min-microvolt = <3300000>; 1127 regulator-max-microvolt = <3300000>; 1128 regulator-enable-ramp-delay = <218>; 1129 regulator-always-on; 1130 }; 1131 1132 mt6397_vibr_reg: ldo_vibr { 1133 regulator-compatible = "ldo_vibr"; 1134 regulator-name = "vibr"; 1135 regulator-min-microvolt = <1300000>; 1136 regulator-max-microvolt = <3300000>; 1137 regulator-enable-ramp-delay = <218>; 1138 }; 1139 }; 1140 1141 rtc: mt6397rtc { 1142 compatible = "mediatek,mt6397-rtc"; 1143 }; 1144 1145 syscfg_pctl_pmic: syscfg_pctl_pmic@c000 { 1146 compatible = "mediatek,mt6397-pctl-pmic-syscfg", 1147 "syscon"; 1148 reg = <0 0x0000c000 0 0x0108>; 1149 }; 1150 }; 1151}; 1152 1153&spi { 1154 pinctrl-names = "default"; 1155 pinctrl-0 = <&spi_pins_a>; 1156 mediatek,pad-select = <1>; 1157 status = "okay"; 1158 /* clients */ 1159 cros_ec: ec@0 { 1160 compatible = "google,cros-ec-spi"; 1161 reg = <0x0>; 1162 spi-max-frequency = <12000000>; 1163 interrupt-parent = <&pio>; 1164 interrupts = <0 IRQ_TYPE_LEVEL_LOW>; 1165 google,cros-ec-spi-msg-delay = <500>; 1166 1167 i2c_tunnel: i2c-tunnel0 { 1168 compatible = "google,cros-ec-i2c-tunnel"; 1169 google,remote-bus = <0>; 1170 #address-cells = <1>; 1171 #size-cells = <0>; 1172 1173 battery: sbs-battery@b { 1174 compatible = "sbs,sbs-battery"; 1175 reg = <0xb>; 1176 sbs,i2c-retry-count = <2>; 1177 sbs,poll-retry-count = <1>; 1178 }; 1179 }; 1180 }; 1181}; 1182 1183&ssusb { 1184 dr_mode = "host"; 1185 wakeup-source; 1186 vusb33-supply = <&mt6397_vusb_reg>; 1187 status = "okay"; 1188}; 1189 1190&thermal { 1191 bank0-supply = <&mt6397_vpca15_reg>; 1192 bank1-supply = <&da9211_vcpu_reg>; 1193}; 1194 1195&uart0 { 1196 status = "okay"; 1197}; 1198 1199&usb_host { 1200 pinctrl-names = "default"; 1201 pinctrl-0 = <&usb_pins>; 1202 vusb33-supply = <&mt6397_vusb_reg>; 1203 status = "okay"; 1204}; 1205 1206#include <arm/cros-ec-keyboard.dtsi> 1207