1// SPDX-License-Identifier: (GPL-2.0 OR MIT) 2/* 3 * Copyright (C) 2022 BayLibre, SAS. 4 * Author: Fabien Parent <fparent@baylibre.com> 5 */ 6/dts-v1/; 7 8#include "mt8195.dtsi" 9#include "mt6359.dtsi" 10 11#include <dt-bindings/gpio/gpio.h> 12#include <dt-bindings/input/input.h> 13#include <dt-bindings/pinctrl/mt8195-pinfunc.h> 14#include <dt-bindings/regulator/mediatek,mt6360-regulator.h> 15 16/ { 17 model = "MediaTek MT8195 demo board"; 18 compatible = "mediatek,mt8195-demo", "mediatek,mt8195"; 19 20 aliases { 21 serial0 = &uart0; 22 }; 23 24 chosen { 25 stdout-path = "serial0:921600n8"; 26 }; 27 28 firmware { 29 optee { 30 compatible = "linaro,optee-tz"; 31 method = "smc"; 32 }; 33 }; 34 35 gpio-keys { 36 compatible = "gpio-keys"; 37 pinctrl-names = "default"; 38 pinctrl-0 = <&gpio_keys_pins>; 39 40 key-0 { 41 gpios = <&pio 106 GPIO_ACTIVE_LOW>; 42 label = "volume_up"; 43 linux,code = <KEY_VOLUMEUP>; 44 wakeup-source; 45 debounce-interval = <15>; 46 }; 47 }; 48 49 memory@40000000 { 50 device_type = "memory"; 51 reg = <0 0x40000000 0x2 0x00000000>; 52 }; 53 54 reserved-memory { 55 #address-cells = <2>; 56 #size-cells = <2>; 57 ranges; 58 59 /* 60 * 12 MiB reserved for OP-TEE (BL32) 61 * +-----------------------+ 0x43e0_0000 62 * | SHMEM 2MiB | 63 * +-----------------------+ 0x43c0_0000 64 * | | TA_RAM 8MiB | 65 * + TZDRAM +--------------+ 0x4340_0000 66 * | | TEE_RAM 2MiB | 67 * +-----------------------+ 0x4320_0000 68 */ 69 optee_reserved: optee@43200000 { 70 no-map; 71 reg = <0 0x43200000 0 0x00c00000>; 72 }; 73 74 scp_mem: memory@50000000 { 75 compatible = "shared-dma-pool"; 76 reg = <0 0x50000000 0 0x2900000>; 77 no-map; 78 }; 79 80 vpu_mem: memory@53000000 { 81 compatible = "shared-dma-pool"; 82 reg = <0 0x53000000 0 0x1400000>; /* 20 MB */ 83 }; 84 85 /* 2 MiB reserved for ARM Trusted Firmware (BL31) */ 86 bl31_secmon_mem: memory@54600000 { 87 no-map; 88 reg = <0 0x54600000 0x0 0x200000>; 89 }; 90 91 snd_dma_mem: memory@60000000 { 92 compatible = "shared-dma-pool"; 93 reg = <0 0x60000000 0 0x1100000>; 94 no-map; 95 }; 96 97 apu_mem: memory@62000000 { 98 compatible = "shared-dma-pool"; 99 reg = <0 0x62000000 0 0x1400000>; /* 20 MB */ 100 }; 101 }; 102}; 103 104ð { 105 phy-mode = "rgmii-id"; 106 phy-handle = <ðernet_phy0>; 107 snps,reset-gpio = <&pio 93 GPIO_ACTIVE_HIGH>; 108 snps,reset-delays-us = <0 10000 80000>; 109 pinctrl-names = "default", "sleep"; 110 pinctrl-0 = <ð_default_pins>; 111 pinctrl-1 = <ð_sleep_pins>; 112 status = "okay"; 113 114 mdio { 115 ethernet_phy0: ethernet-phy@1 { 116 reg = <0x1>; 117 }; 118 }; 119}; 120 121&i2c6 { 122 clock-frequency = <400000>; 123 pinctrl-0 = <&i2c6_pins>; 124 pinctrl-names = "default"; 125 status = "okay"; 126 127 mt6360: pmic@34 { 128 compatible = "mediatek,mt6360"; 129 reg = <0x34>; 130 interrupt-controller; 131 #interrupt-cells = <1>; 132 interrupts-extended = <&pio 101 IRQ_TYPE_EDGE_FALLING>; 133 interrupt-names = "IRQB"; 134 135 charger { 136 compatible = "mediatek,mt6360-chg"; 137 richtek,vinovp-microvolt = <14500000>; 138 139 otg_vbus_regulator: usb-otg-vbus-regulator { 140 regulator-compatible = "usb-otg-vbus"; 141 regulator-name = "usb-otg-vbus"; 142 regulator-min-microvolt = <4425000>; 143 regulator-max-microvolt = <5825000>; 144 }; 145 }; 146 147 regulator { 148 compatible = "mediatek,mt6360-regulator"; 149 LDO_VIN3-supply = <&mt6360_buck2>; 150 151 mt6360_buck1: buck1 { 152 regulator-compatible = "BUCK1"; 153 regulator-name = "mt6360,buck1"; 154 regulator-min-microvolt = <300000>; 155 regulator-max-microvolt = <1300000>; 156 regulator-allowed-modes = <MT6360_OPMODE_NORMAL 157 MT6360_OPMODE_LP 158 MT6360_OPMODE_ULP>; 159 regulator-always-on; 160 }; 161 162 mt6360_buck2: buck2 { 163 regulator-compatible = "BUCK2"; 164 regulator-name = "mt6360,buck2"; 165 regulator-min-microvolt = <300000>; 166 regulator-max-microvolt = <1300000>; 167 regulator-allowed-modes = <MT6360_OPMODE_NORMAL 168 MT6360_OPMODE_LP 169 MT6360_OPMODE_ULP>; 170 regulator-always-on; 171 }; 172 173 mt6360_ldo1: ldo1 { 174 regulator-compatible = "LDO1"; 175 regulator-name = "mt6360,ldo1"; 176 regulator-min-microvolt = <1200000>; 177 regulator-max-microvolt = <3600000>; 178 regulator-allowed-modes = <MT6360_OPMODE_NORMAL 179 MT6360_OPMODE_LP>; 180 }; 181 182 mt6360_ldo2: ldo2 { 183 regulator-compatible = "LDO2"; 184 regulator-name = "mt6360,ldo2"; 185 regulator-min-microvolt = <1200000>; 186 regulator-max-microvolt = <3600000>; 187 regulator-allowed-modes = <MT6360_OPMODE_NORMAL 188 MT6360_OPMODE_LP>; 189 }; 190 191 mt6360_ldo3: ldo3 { 192 regulator-compatible = "LDO3"; 193 regulator-name = "mt6360,ldo3"; 194 regulator-min-microvolt = <1200000>; 195 regulator-max-microvolt = <3600000>; 196 regulator-allowed-modes = <MT6360_OPMODE_NORMAL 197 MT6360_OPMODE_LP>; 198 }; 199 200 mt6360_ldo5: ldo5 { 201 regulator-compatible = "LDO5"; 202 regulator-name = "mt6360,ldo5"; 203 regulator-min-microvolt = <2700000>; 204 regulator-max-microvolt = <3600000>; 205 regulator-allowed-modes = <MT6360_OPMODE_NORMAL 206 MT6360_OPMODE_LP>; 207 }; 208 209 mt6360_ldo6: ldo6 { 210 regulator-compatible = "LDO6"; 211 regulator-name = "mt6360,ldo6"; 212 regulator-min-microvolt = <500000>; 213 regulator-max-microvolt = <2100000>; 214 regulator-allowed-modes = <MT6360_OPMODE_NORMAL 215 MT6360_OPMODE_LP>; 216 }; 217 218 mt6360_ldo7: ldo7 { 219 regulator-compatible = "LDO7"; 220 regulator-name = "mt6360,ldo7"; 221 regulator-min-microvolt = <500000>; 222 regulator-max-microvolt = <2100000>; 223 regulator-allowed-modes = <MT6360_OPMODE_NORMAL 224 MT6360_OPMODE_LP>; 225 regulator-always-on; 226 }; 227 }; 228 }; 229}; 230 231&mmc0 { 232 status = "okay"; 233 pinctrl-names = "default", "state_uhs"; 234 pinctrl-0 = <&mmc0_default_pins>; 235 pinctrl-1 = <&mmc0_uhs_pins>; 236 bus-width = <8>; 237 max-frequency = <200000000>; 238 cap-mmc-highspeed; 239 mmc-hs200-1_8v; 240 mmc-hs400-1_8v; 241 cap-mmc-hw-reset; 242 no-sdio; 243 no-sd; 244 hs400-ds-delay = <0x14c11>; 245 vmmc-supply = <&mt6359_vemc_1_ldo_reg>; 246 vqmmc-supply = <&mt6359_vufs_ldo_reg>; 247 non-removable; 248}; 249 250&mmc1 { 251 pinctrl-names = "default", "state_uhs"; 252 pinctrl-0 = <&mmc1_default_pins>; 253 pinctrl-1 = <&mmc1_uhs_pins>; 254 cd-gpios = <&pio 129 GPIO_ACTIVE_LOW>; 255 bus-width = <4>; 256 max-frequency = <200000000>; 257 cap-sd-highspeed; 258 sd-uhs-sdr50; 259 sd-uhs-sdr104; 260 vmmc-supply = <&mt6360_ldo5>; 261 vqmmc-supply = <&mt6360_ldo3>; 262 status = "okay"; 263}; 264 265&mt6359_vbbck_ldo_reg { 266 regulator-always-on; 267}; 268 269&mt6359_vcore_buck_reg { 270 regulator-always-on; 271}; 272 273&mt6359_vgpu11_buck_reg { 274 regulator-always-on; 275}; 276 277&mt6359_vproc1_buck_reg { 278 regulator-always-on; 279}; 280 281&mt6359_vproc2_buck_reg { 282 regulator-always-on; 283}; 284 285&mt6359_vpu_buck_reg { 286 regulator-always-on; 287}; 288 289&mt6359_vrf12_ldo_reg { 290 regulator-always-on; 291}; 292 293&mt6359_vsram_md_ldo_reg { 294 regulator-always-on; 295}; 296 297&mt6359_vsram_others_ldo_reg { 298 regulator-always-on; 299}; 300 301&pio { 302 eth_default_pins: eth-default-pins { 303 pins-txd { 304 pinmux = <PINMUX_GPIO77__FUNC_GBE_TXD3>, 305 <PINMUX_GPIO78__FUNC_GBE_TXD2>, 306 <PINMUX_GPIO79__FUNC_GBE_TXD1>, 307 <PINMUX_GPIO80__FUNC_GBE_TXD0>; 308 drive-strength = <MTK_DRIVE_8mA>; 309 }; 310 pins-cc { 311 pinmux = <PINMUX_GPIO85__FUNC_GBE_TXC>, 312 <PINMUX_GPIO88__FUNC_GBE_TXEN>, 313 <PINMUX_GPIO87__FUNC_GBE_RXDV>, 314 <PINMUX_GPIO86__FUNC_GBE_RXC>; 315 drive-strength = <MTK_DRIVE_8mA>; 316 }; 317 pins-rxd { 318 pinmux = <PINMUX_GPIO81__FUNC_GBE_RXD3>, 319 <PINMUX_GPIO82__FUNC_GBE_RXD2>, 320 <PINMUX_GPIO83__FUNC_GBE_RXD1>, 321 <PINMUX_GPIO84__FUNC_GBE_RXD0>; 322 }; 323 pins-mdio { 324 pinmux = <PINMUX_GPIO89__FUNC_GBE_MDC>, 325 <PINMUX_GPIO90__FUNC_GBE_MDIO>; 326 input-enable; 327 }; 328 pins-power { 329 pinmux = <PINMUX_GPIO91__FUNC_GPIO91>, 330 <PINMUX_GPIO92__FUNC_GPIO92>; 331 output-high; 332 }; 333 }; 334 335 eth_sleep_pins: eth-sleep-pins { 336 pins-txd { 337 pinmux = <PINMUX_GPIO77__FUNC_GPIO77>, 338 <PINMUX_GPIO78__FUNC_GPIO78>, 339 <PINMUX_GPIO79__FUNC_GPIO79>, 340 <PINMUX_GPIO80__FUNC_GPIO80>; 341 }; 342 pins-cc { 343 pinmux = <PINMUX_GPIO85__FUNC_GPIO85>, 344 <PINMUX_GPIO88__FUNC_GPIO88>, 345 <PINMUX_GPIO87__FUNC_GPIO87>, 346 <PINMUX_GPIO86__FUNC_GPIO86>; 347 }; 348 pins-rxd { 349 pinmux = <PINMUX_GPIO81__FUNC_GPIO81>, 350 <PINMUX_GPIO82__FUNC_GPIO82>, 351 <PINMUX_GPIO83__FUNC_GPIO83>, 352 <PINMUX_GPIO84__FUNC_GPIO84>; 353 }; 354 pins-mdio { 355 pinmux = <PINMUX_GPIO89__FUNC_GPIO89>, 356 <PINMUX_GPIO90__FUNC_GPIO90>; 357 input-disable; 358 bias-disable; 359 }; 360 }; 361 362 gpio_keys_pins: gpio-keys-pins { 363 pins { 364 pinmux = <PINMUX_GPIO106__FUNC_GPIO106>; 365 input-enable; 366 }; 367 }; 368 369 i2c6_pins: i2c6-pins { 370 pins { 371 pinmux = <PINMUX_GPIO25__FUNC_SDA6>, 372 <PINMUX_GPIO26__FUNC_SCL6>; 373 bias-pull-up; 374 }; 375 }; 376 377 mmc0_default_pins: mmc0-default-pins { 378 pins-clk { 379 pinmux = <PINMUX_GPIO122__FUNC_MSDC0_CLK>; 380 drive-strength = <MTK_DRIVE_6mA>; 381 bias-pull-down = <MTK_PUPD_SET_R1R0_10>; 382 }; 383 384 pins-cmd-dat { 385 pinmux = <PINMUX_GPIO126__FUNC_MSDC0_DAT0>, 386 <PINMUX_GPIO125__FUNC_MSDC0_DAT1>, 387 <PINMUX_GPIO124__FUNC_MSDC0_DAT2>, 388 <PINMUX_GPIO123__FUNC_MSDC0_DAT3>, 389 <PINMUX_GPIO119__FUNC_MSDC0_DAT4>, 390 <PINMUX_GPIO118__FUNC_MSDC0_DAT5>, 391 <PINMUX_GPIO117__FUNC_MSDC0_DAT6>, 392 <PINMUX_GPIO116__FUNC_MSDC0_DAT7>, 393 <PINMUX_GPIO121__FUNC_MSDC0_CMD>; 394 input-enable; 395 drive-strength = <MTK_DRIVE_6mA>; 396 bias-pull-up = <MTK_PUPD_SET_R1R0_01>; 397 }; 398 399 pins-rst { 400 pinmux = <PINMUX_GPIO120__FUNC_MSDC0_RSTB>; 401 drive-strength = <MTK_DRIVE_6mA>; 402 bias-pull-up = <MTK_PUPD_SET_R1R0_01>; 403 }; 404 }; 405 406 mmc0_uhs_pins: mmc0-uhs-pins { 407 pins-clk { 408 pinmux = <PINMUX_GPIO122__FUNC_MSDC0_CLK>; 409 drive-strength = <MTK_DRIVE_8mA>; 410 bias-pull-down = <MTK_PUPD_SET_R1R0_10>; 411 }; 412 413 pins-cmd-dat { 414 pinmux = <PINMUX_GPIO126__FUNC_MSDC0_DAT0>, 415 <PINMUX_GPIO125__FUNC_MSDC0_DAT1>, 416 <PINMUX_GPIO124__FUNC_MSDC0_DAT2>, 417 <PINMUX_GPIO123__FUNC_MSDC0_DAT3>, 418 <PINMUX_GPIO119__FUNC_MSDC0_DAT4>, 419 <PINMUX_GPIO118__FUNC_MSDC0_DAT5>, 420 <PINMUX_GPIO117__FUNC_MSDC0_DAT6>, 421 <PINMUX_GPIO116__FUNC_MSDC0_DAT7>, 422 <PINMUX_GPIO121__FUNC_MSDC0_CMD>; 423 input-enable; 424 drive-strength = <MTK_DRIVE_8mA>; 425 bias-pull-up = <MTK_PUPD_SET_R1R0_01>; 426 }; 427 428 pins-ds { 429 pinmux = <PINMUX_GPIO127__FUNC_MSDC0_DSL>; 430 drive-strength = <MTK_DRIVE_8mA>; 431 bias-pull-down = <MTK_PUPD_SET_R1R0_10>; 432 }; 433 434 pins-rst { 435 pinmux = <PINMUX_GPIO120__FUNC_MSDC0_RSTB>; 436 drive-strength = <MTK_DRIVE_8mA>; 437 bias-pull-up = <MTK_PUPD_SET_R1R0_01>; 438 }; 439 }; 440 441 mmc1_default_pins: mmc1-default-pins { 442 pins-clk { 443 pinmux = <PINMUX_GPIO111__FUNC_MSDC1_CLK>; 444 drive-strength = <MTK_DRIVE_8mA>; 445 bias-pull-down = <MTK_PUPD_SET_R1R0_10>; 446 }; 447 448 pins-cmd-dat { 449 pinmux = <PINMUX_GPIO110__FUNC_MSDC1_CMD>, 450 <PINMUX_GPIO112__FUNC_MSDC1_DAT0>, 451 <PINMUX_GPIO113__FUNC_MSDC1_DAT1>, 452 <PINMUX_GPIO114__FUNC_MSDC1_DAT2>, 453 <PINMUX_GPIO115__FUNC_MSDC1_DAT3>; 454 input-enable; 455 drive-strength = <MTK_DRIVE_8mA>; 456 bias-pull-up = <MTK_PUPD_SET_R1R0_01>; 457 }; 458 459 pins-insert { 460 pinmux = <PINMUX_GPIO129__FUNC_GPIO129>; 461 bias-pull-up; 462 }; 463 }; 464 465 mmc1_uhs_pins: mmc1-uhs-pins { 466 pins-clk { 467 pinmux = <PINMUX_GPIO111__FUNC_MSDC1_CLK>; 468 drive-strength = <MTK_DRIVE_8mA>; 469 bias-pull-down = <MTK_PUPD_SET_R1R0_10>; 470 }; 471 472 pins-cmd-dat { 473 pinmux = <PINMUX_GPIO110__FUNC_MSDC1_CMD>, 474 <PINMUX_GPIO112__FUNC_MSDC1_DAT0>, 475 <PINMUX_GPIO113__FUNC_MSDC1_DAT1>, 476 <PINMUX_GPIO114__FUNC_MSDC1_DAT2>, 477 <PINMUX_GPIO115__FUNC_MSDC1_DAT3>; 478 input-enable; 479 drive-strength = <MTK_DRIVE_8mA>; 480 bias-pull-up = <MTK_PUPD_SET_R1R0_01>; 481 }; 482 }; 483 484 uart0_pins: uart0-pins { 485 pins { 486 pinmux = <PINMUX_GPIO98__FUNC_UTXD0>, 487 <PINMUX_GPIO99__FUNC_URXD0>; 488 }; 489 }; 490 491 uart1_pins: uart1-pins { 492 pins { 493 pinmux = <PINMUX_GPIO102__FUNC_UTXD1>, 494 <PINMUX_GPIO103__FUNC_URXD1>; 495 }; 496 }; 497}; 498 499 500&pmic { 501 interrupts-extended = <&pio 222 IRQ_TYPE_LEVEL_HIGH>; 502}; 503 504&uart0 { 505 pinctrl-names = "default"; 506 pinctrl-0 = <&uart0_pins>; 507 status = "okay"; 508}; 509 510&uart1 { 511 pinctrl-names = "default"; 512 pinctrl-0 = <&uart1_pins>; 513 status = "okay"; 514}; 515 516&u3phy0 { 517 status = "okay"; 518}; 519 520&u3phy1 { 521 status = "okay"; 522}; 523 524&u3phy2 { 525 status = "okay"; 526}; 527 528&u3phy3 { 529 status = "okay"; 530}; 531 532&xhci0 { 533 vusb33-supply = <&mt6359_vusb_ldo_reg>; 534 vbus-supply = <&otg_vbus_regulator>; 535 status = "okay"; 536}; 537 538&xhci1 { 539 vusb33-supply = <&mt6359_vusb_ldo_reg>; 540 status = "okay"; 541}; 542 543&xhci2 { 544 vusb33-supply = <&mt6359_vusb_ldo_reg>; 545 status = "okay"; 546}; 547 548&xhci3 { 549 vusb33-supply = <&mt6359_vusb_ldo_reg>; 550 status = "okay"; 551}; 552