1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * Copyright (c) 2014 MediaTek Inc. 4 * Author: Eddie Huang <eddie.huang@mediatek.com> 5 */ 6 7/dts-v1/; 8#include <dt-bindings/gpio/gpio.h> 9#include "mt8173.dtsi" 10 11/ { 12 model = "MediaTek MT8173 evaluation board"; 13 chassis-type = "embedded"; 14 compatible = "mediatek,mt8173-evb", "mediatek,mt8173"; 15 16 aliases { 17 serial0 = &uart0; 18 serial1 = &uart1; 19 serial2 = &uart2; 20 serial3 = &uart3; 21 }; 22 23 memory@40000000 { 24 device_type = "memory"; 25 reg = <0 0x40000000 0 0x80000000>; 26 }; 27 28 chosen { }; 29 30 connector { 31 compatible = "hdmi-connector"; 32 label = "hdmi"; 33 type = "d"; 34 35 port { 36 hdmi_connector_in: endpoint { 37 remote-endpoint = <&hdmi0_out>; 38 }; 39 }; 40 }; 41 42 extcon_usb: extcon_iddig { 43 compatible = "linux,extcon-usb-gpio"; 44 id-gpio = <&pio 16 GPIO_ACTIVE_HIGH>; 45 }; 46 47 usb_p1_vbus: regulator-usb-p1 { 48 compatible = "regulator-fixed"; 49 regulator-name = "usb_vbus"; 50 regulator-min-microvolt = <5000000>; 51 regulator-max-microvolt = <5000000>; 52 gpio = <&pio 130 GPIO_ACTIVE_HIGH>; 53 enable-active-high; 54 }; 55 56 usb_p0_vbus: regulator-usb-p0 { 57 compatible = "regulator-fixed"; 58 regulator-name = "vbus"; 59 regulator-min-microvolt = <5000000>; 60 regulator-max-microvolt = <5000000>; 61 gpio = <&pio 9 GPIO_ACTIVE_HIGH>; 62 enable-active-high; 63 }; 64}; 65 66&mfg_async { 67 domain-supply = <&da9211_vgpu_reg>; 68}; 69 70&cec { 71 status = "okay"; 72}; 73 74&cpu0 { 75 proc-supply = <&mt6397_vpca15_reg>; 76}; 77 78&cpu1 { 79 proc-supply = <&mt6397_vpca15_reg>; 80}; 81 82&cpu2 { 83 proc-supply = <&da9211_vcpu_reg>; 84 sram-supply = <&mt6397_vsramca7_reg>; 85}; 86 87&cpu3 { 88 proc-supply = <&da9211_vcpu_reg>; 89 sram-supply = <&mt6397_vsramca7_reg>; 90}; 91 92&dpi0 { 93 status = "okay"; 94}; 95 96&hdmi_phy { 97 status = "okay"; 98}; 99 100&hdmi0 { 101 status = "okay"; 102 103 ports { 104 port@1 { 105 reg = <1>; 106 107 hdmi0_out: endpoint { 108 remote-endpoint = <&hdmi_connector_in>; 109 }; 110 }; 111 }; 112}; 113 114&i2c1 { 115 status = "okay"; 116 117 buck: da9211@68 { 118 compatible = "dlg,da9211"; 119 reg = <0x68>; 120 121 regulators { 122 da9211_vcpu_reg: BUCKA { 123 regulator-name = "VBUCKA"; 124 regulator-min-microvolt = < 700000>; 125 regulator-max-microvolt = <1310000>; 126 regulator-min-microamp = <2000000>; 127 regulator-max-microamp = <4400000>; 128 regulator-ramp-delay = <10000>; 129 regulator-always-on; 130 }; 131 132 da9211_vgpu_reg: BUCKB { 133 regulator-name = "VBUCKB"; 134 regulator-min-microvolt = < 700000>; 135 regulator-max-microvolt = <1310000>; 136 regulator-min-microamp = <2000000>; 137 regulator-max-microamp = <3000000>; 138 regulator-ramp-delay = <10000>; 139 }; 140 }; 141 }; 142}; 143 144&mmc0 { 145 status = "okay"; 146 pinctrl-names = "default", "state_uhs"; 147 pinctrl-0 = <&mmc0_pins_default>; 148 pinctrl-1 = <&mmc0_pins_uhs>; 149 bus-width = <8>; 150 max-frequency = <50000000>; 151 cap-mmc-highspeed; 152 mediatek,hs200-cmd-int-delay = <26>; 153 mediatek,hs400-cmd-int-delay = <14>; 154 mediatek,hs400-cmd-resp-sel-rising; 155 vmmc-supply = <&mt6397_vemc_3v3_reg>; 156 vqmmc-supply = <&mt6397_vio18_reg>; 157 non-removable; 158}; 159 160&mmc1 { 161 status = "okay"; 162 pinctrl-names = "default", "state_uhs"; 163 pinctrl-0 = <&mmc1_pins_default>; 164 pinctrl-1 = <&mmc1_pins_uhs>; 165 bus-width = <4>; 166 max-frequency = <50000000>; 167 cap-sd-highspeed; 168 sd-uhs-sdr25; 169 cd-gpios = <&pio 132 0>; 170 vmmc-supply = <&mt6397_vmch_reg>; 171 vqmmc-supply = <&mt6397_vmc_reg>; 172}; 173 174&pio { 175 disp_pwm0_pins: disp_pwm0_pins { 176 pins1 { 177 pinmux = <MT8173_PIN_87_DISP_PWM0__FUNC_DISP_PWM0>; 178 output-low; 179 }; 180 }; 181 182 mmc0_pins_default: mmc0default { 183 pins_cmd_dat { 184 pinmux = <MT8173_PIN_57_MSDC0_DAT0__FUNC_MSDC0_DAT0>, 185 <MT8173_PIN_58_MSDC0_DAT1__FUNC_MSDC0_DAT1>, 186 <MT8173_PIN_59_MSDC0_DAT2__FUNC_MSDC0_DAT2>, 187 <MT8173_PIN_60_MSDC0_DAT3__FUNC_MSDC0_DAT3>, 188 <MT8173_PIN_61_MSDC0_DAT4__FUNC_MSDC0_DAT4>, 189 <MT8173_PIN_62_MSDC0_DAT5__FUNC_MSDC0_DAT5>, 190 <MT8173_PIN_63_MSDC0_DAT6__FUNC_MSDC0_DAT6>, 191 <MT8173_PIN_64_MSDC0_DAT7__FUNC_MSDC0_DAT7>, 192 <MT8173_PIN_66_MSDC0_CMD__FUNC_MSDC0_CMD>; 193 input-enable; 194 bias-pull-up; 195 }; 196 197 pins_clk { 198 pinmux = <MT8173_PIN_65_MSDC0_CLK__FUNC_MSDC0_CLK>; 199 bias-pull-down; 200 }; 201 202 pins_rst { 203 pinmux = <MT8173_PIN_68_MSDC0_RST___FUNC_MSDC0_RSTB>; 204 bias-pull-up; 205 }; 206 }; 207 208 mmc1_pins_default: mmc1default { 209 pins_cmd_dat { 210 pinmux = <MT8173_PIN_73_MSDC1_DAT0__FUNC_MSDC1_DAT0>, 211 <MT8173_PIN_74_MSDC1_DAT1__FUNC_MSDC1_DAT1>, 212 <MT8173_PIN_75_MSDC1_DAT2__FUNC_MSDC1_DAT2>, 213 <MT8173_PIN_76_MSDC1_DAT3__FUNC_MSDC1_DAT3>, 214 <MT8173_PIN_78_MSDC1_CMD__FUNC_MSDC1_CMD>; 215 input-enable; 216 drive-strength = <MTK_DRIVE_4mA>; 217 bias-pull-up = <MTK_PUPD_SET_R1R0_10>; 218 }; 219 220 pins_clk { 221 pinmux = <MT8173_PIN_77_MSDC1_CLK__FUNC_MSDC1_CLK>; 222 bias-pull-down; 223 drive-strength = <MTK_DRIVE_4mA>; 224 }; 225 226 pins_insert { 227 pinmux = <MT8173_PIN_132_I2S0_DATA1__FUNC_GPIO132>; 228 bias-pull-up; 229 }; 230 }; 231 232 mmc0_pins_uhs: mmc0 { 233 pins_cmd_dat { 234 pinmux = <MT8173_PIN_57_MSDC0_DAT0__FUNC_MSDC0_DAT0>, 235 <MT8173_PIN_58_MSDC0_DAT1__FUNC_MSDC0_DAT1>, 236 <MT8173_PIN_59_MSDC0_DAT2__FUNC_MSDC0_DAT2>, 237 <MT8173_PIN_60_MSDC0_DAT3__FUNC_MSDC0_DAT3>, 238 <MT8173_PIN_61_MSDC0_DAT4__FUNC_MSDC0_DAT4>, 239 <MT8173_PIN_62_MSDC0_DAT5__FUNC_MSDC0_DAT5>, 240 <MT8173_PIN_63_MSDC0_DAT6__FUNC_MSDC0_DAT6>, 241 <MT8173_PIN_64_MSDC0_DAT7__FUNC_MSDC0_DAT7>, 242 <MT8173_PIN_66_MSDC0_CMD__FUNC_MSDC0_CMD>; 243 input-enable; 244 drive-strength = <MTK_DRIVE_2mA>; 245 bias-pull-up = <MTK_PUPD_SET_R1R0_01>; 246 }; 247 248 pins_clk { 249 pinmux = <MT8173_PIN_65_MSDC0_CLK__FUNC_MSDC0_CLK>; 250 drive-strength = <MTK_DRIVE_2mA>; 251 bias-pull-down = <MTK_PUPD_SET_R1R0_01>; 252 }; 253 254 pins_rst { 255 pinmux = <MT8173_PIN_68_MSDC0_RST___FUNC_MSDC0_RSTB>; 256 bias-pull-up; 257 }; 258 }; 259 260 mmc1_pins_uhs: mmc1 { 261 pins_cmd_dat { 262 pinmux = <MT8173_PIN_73_MSDC1_DAT0__FUNC_MSDC1_DAT0>, 263 <MT8173_PIN_74_MSDC1_DAT1__FUNC_MSDC1_DAT1>, 264 <MT8173_PIN_75_MSDC1_DAT2__FUNC_MSDC1_DAT2>, 265 <MT8173_PIN_76_MSDC1_DAT3__FUNC_MSDC1_DAT3>, 266 <MT8173_PIN_78_MSDC1_CMD__FUNC_MSDC1_CMD>; 267 input-enable; 268 drive-strength = <MTK_DRIVE_4mA>; 269 bias-pull-up = <MTK_PUPD_SET_R1R0_10>; 270 }; 271 272 pins_clk { 273 pinmux = <MT8173_PIN_77_MSDC1_CLK__FUNC_MSDC1_CLK>; 274 drive-strength = <MTK_DRIVE_4mA>; 275 bias-pull-down = <MTK_PUPD_SET_R1R0_10>; 276 }; 277 }; 278 279 usb_id_pins_float: usb_iddig_pull_up { 280 pins_iddig { 281 pinmux = <MT8173_PIN_16_IDDIG__FUNC_IDDIG>; 282 bias-pull-up; 283 }; 284 }; 285 286 usb_id_pins_ground: usb_iddig_pull_down { 287 pins_iddig { 288 pinmux = <MT8173_PIN_16_IDDIG__FUNC_IDDIG>; 289 bias-pull-down; 290 }; 291 }; 292}; 293 294&pwm0 { 295 pinctrl-names = "default"; 296 pinctrl-0 = <&disp_pwm0_pins>; 297 status = "okay"; 298}; 299 300&pwrap { 301 /* Only MT8173 E1 needs USB power domain */ 302 power-domains = <&spm MT8173_POWER_DOMAIN_USB>; 303 304 pmic: pmic { 305 compatible = "mediatek,mt6397"; 306 interrupt-parent = <&pio>; 307 interrupts = <11 IRQ_TYPE_LEVEL_HIGH>; 308 interrupt-controller; 309 #interrupt-cells = <2>; 310 311 mt6397regulator: mt6397regulator { 312 compatible = "mediatek,mt6397-regulator"; 313 314 mt6397_vpca15_reg: buck_vpca15 { 315 regulator-compatible = "buck_vpca15"; 316 regulator-name = "vpca15"; 317 regulator-min-microvolt = < 700000>; 318 regulator-max-microvolt = <1350000>; 319 regulator-ramp-delay = <12500>; 320 regulator-always-on; 321 }; 322 323 mt6397_vpca7_reg: buck_vpca7 { 324 regulator-compatible = "buck_vpca7"; 325 regulator-name = "vpca7"; 326 regulator-min-microvolt = < 700000>; 327 regulator-max-microvolt = <1350000>; 328 regulator-ramp-delay = <12500>; 329 regulator-enable-ramp-delay = <115>; 330 }; 331 332 mt6397_vsramca15_reg: buck_vsramca15 { 333 regulator-compatible = "buck_vsramca15"; 334 regulator-name = "vsramca15"; 335 regulator-min-microvolt = < 700000>; 336 regulator-max-microvolt = <1350000>; 337 regulator-ramp-delay = <12500>; 338 regulator-always-on; 339 }; 340 341 mt6397_vsramca7_reg: buck_vsramca7 { 342 regulator-compatible = "buck_vsramca7"; 343 regulator-name = "vsramca7"; 344 regulator-min-microvolt = < 700000>; 345 regulator-max-microvolt = <1350000>; 346 regulator-ramp-delay = <12500>; 347 regulator-always-on; 348 }; 349 350 mt6397_vcore_reg: buck_vcore { 351 regulator-compatible = "buck_vcore"; 352 regulator-name = "vcore"; 353 regulator-min-microvolt = < 700000>; 354 regulator-max-microvolt = <1350000>; 355 regulator-ramp-delay = <12500>; 356 regulator-always-on; 357 }; 358 359 mt6397_vgpu_reg: buck_vgpu { 360 regulator-compatible = "buck_vgpu"; 361 regulator-name = "vgpu"; 362 regulator-min-microvolt = < 700000>; 363 regulator-max-microvolt = <1350000>; 364 regulator-ramp-delay = <12500>; 365 regulator-enable-ramp-delay = <115>; 366 }; 367 368 mt6397_vdrm_reg: buck_vdrm { 369 regulator-compatible = "buck_vdrm"; 370 regulator-name = "vdrm"; 371 regulator-min-microvolt = <1200000>; 372 regulator-max-microvolt = <1400000>; 373 regulator-ramp-delay = <12500>; 374 regulator-always-on; 375 }; 376 377 mt6397_vio18_reg: buck_vio18 { 378 regulator-compatible = "buck_vio18"; 379 regulator-name = "vio18"; 380 regulator-min-microvolt = <1620000>; 381 regulator-max-microvolt = <1980000>; 382 regulator-ramp-delay = <12500>; 383 regulator-always-on; 384 }; 385 386 mt6397_vtcxo_reg: ldo_vtcxo { 387 regulator-compatible = "ldo_vtcxo"; 388 regulator-name = "vtcxo"; 389 regulator-always-on; 390 }; 391 392 mt6397_va28_reg: ldo_va28 { 393 regulator-compatible = "ldo_va28"; 394 regulator-name = "va28"; 395 regulator-always-on; 396 }; 397 398 mt6397_vcama_reg: ldo_vcama { 399 regulator-compatible = "ldo_vcama"; 400 regulator-name = "vcama"; 401 regulator-min-microvolt = <1500000>; 402 regulator-max-microvolt = <2800000>; 403 regulator-enable-ramp-delay = <218>; 404 }; 405 406 mt6397_vio28_reg: ldo_vio28 { 407 regulator-compatible = "ldo_vio28"; 408 regulator-name = "vio28"; 409 regulator-always-on; 410 }; 411 412 mt6397_vusb_reg: ldo_vusb { 413 regulator-compatible = "ldo_vusb"; 414 regulator-name = "vusb"; 415 }; 416 417 mt6397_vmc_reg: ldo_vmc { 418 regulator-compatible = "ldo_vmc"; 419 regulator-name = "vmc"; 420 regulator-min-microvolt = <1800000>; 421 regulator-max-microvolt = <3300000>; 422 regulator-enable-ramp-delay = <218>; 423 }; 424 425 mt6397_vmch_reg: ldo_vmch { 426 regulator-compatible = "ldo_vmch"; 427 regulator-name = "vmch"; 428 regulator-min-microvolt = <3000000>; 429 regulator-max-microvolt = <3300000>; 430 regulator-enable-ramp-delay = <218>; 431 }; 432 433 mt6397_vemc_3v3_reg: ldo_vemc3v3 { 434 regulator-compatible = "ldo_vemc3v3"; 435 regulator-name = "vemc_3v3"; 436 regulator-min-microvolt = <3000000>; 437 regulator-max-microvolt = <3300000>; 438 regulator-enable-ramp-delay = <218>; 439 }; 440 441 mt6397_vgp1_reg: ldo_vgp1 { 442 regulator-compatible = "ldo_vgp1"; 443 regulator-name = "vcamd"; 444 regulator-min-microvolt = <1220000>; 445 regulator-max-microvolt = <3300000>; 446 regulator-enable-ramp-delay = <240>; 447 }; 448 449 mt6397_vgp2_reg: ldo_vgp2 { 450 regulator-compatible = "ldo_vgp2"; 451 regulator-name = "vcamio"; 452 regulator-min-microvolt = <1000000>; 453 regulator-max-microvolt = <3300000>; 454 regulator-enable-ramp-delay = <218>; 455 }; 456 457 mt6397_vgp3_reg: ldo_vgp3 { 458 regulator-compatible = "ldo_vgp3"; 459 regulator-name = "vcamaf"; 460 regulator-min-microvolt = <1200000>; 461 regulator-max-microvolt = <3300000>; 462 regulator-enable-ramp-delay = <218>; 463 }; 464 465 mt6397_vgp4_reg: ldo_vgp4 { 466 regulator-compatible = "ldo_vgp4"; 467 regulator-name = "vgp4"; 468 regulator-min-microvolt = <1200000>; 469 regulator-max-microvolt = <3300000>; 470 regulator-enable-ramp-delay = <218>; 471 }; 472 473 mt6397_vgp5_reg: ldo_vgp5 { 474 regulator-compatible = "ldo_vgp5"; 475 regulator-name = "vgp5"; 476 regulator-min-microvolt = <1200000>; 477 regulator-max-microvolt = <3000000>; 478 regulator-enable-ramp-delay = <218>; 479 }; 480 481 mt6397_vgp6_reg: ldo_vgp6 { 482 regulator-compatible = "ldo_vgp6"; 483 regulator-name = "vgp6"; 484 regulator-min-microvolt = <1200000>; 485 regulator-max-microvolt = <3300000>; 486 regulator-enable-ramp-delay = <218>; 487 }; 488 489 mt6397_vibr_reg: ldo_vibr { 490 regulator-compatible = "ldo_vibr"; 491 regulator-name = "vibr"; 492 regulator-min-microvolt = <1300000>; 493 regulator-max-microvolt = <3300000>; 494 regulator-enable-ramp-delay = <218>; 495 }; 496 }; 497 }; 498}; 499 500&pio { 501 spi_pins_a: spi0 { 502 pins_spi { 503 pinmux = <MT8173_PIN_69_SPI_CK__FUNC_SPI_CK_0_>, 504 <MT8173_PIN_70_SPI_MI__FUNC_SPI_MI_0_>, 505 <MT8173_PIN_71_SPI_MO__FUNC_SPI_MO_0_>, 506 <MT8173_PIN_72_SPI_CS__FUNC_SPI_CS_0_>; 507 }; 508 }; 509}; 510 511&spi { 512 pinctrl-names = "default"; 513 pinctrl-0 = <&spi_pins_a>; 514 mediatek,pad-select = <0>; 515 status = "okay"; 516}; 517 518&ssusb { 519 vusb33-supply = <&mt6397_vusb_reg>; 520 vbus-supply = <&usb_p0_vbus>; 521 extcon = <&extcon_usb>; 522 dr_mode = "otg"; 523 wakeup-source; 524 pinctrl-names = "default"; 525 pinctrl-0 = <&usb_id_pins_float>; 526 status = "okay"; 527}; 528 529&uart0 { 530 status = "okay"; 531}; 532 533&usb_host { 534 vusb33-supply = <&mt6397_vusb_reg>; 535 vbus-supply = <&usb_p1_vbus>; 536 status = "okay"; 537}; 538