1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Copyright (c) 2021-2022 BayLibre, SAS. 4 * Authors: 5 * Fabien Parent <fparent@baylibre.com> 6 * Bernhard Rosenkränzer <bero@baylibre.com> 7 */ 8 9/dts-v1/; 10 11#include <dt-bindings/gpio/gpio.h> 12#include <dt-bindings/input/input.h> 13#include <dt-bindings/pinctrl/mt8365-pinfunc.h> 14#include "mt8365.dtsi" 15#include "mt6357.dtsi" 16 17/ { 18 model = "MediaTek MT8365 Open Platform EVK"; 19 compatible = "mediatek,mt8365-evk", "mediatek,mt8365"; 20 21 aliases { 22 serial0 = &uart0; 23 }; 24 25 chosen { 26 stdout-path = "serial0:921600n8"; 27 }; 28 29 firmware { 30 optee { 31 compatible = "linaro,optee-tz"; 32 method = "smc"; 33 }; 34 }; 35 36 gpio-keys { 37 compatible = "gpio-keys"; 38 pinctrl-names = "default"; 39 pinctrl-0 = <&gpio_keys>; 40 41 key-volume-up { 42 gpios = <&pio 24 GPIO_ACTIVE_LOW>; 43 label = "volume_up"; 44 linux,code = <KEY_VOLUMEUP>; 45 wakeup-source; 46 debounce-interval = <15>; 47 }; 48 }; 49 50 memory@40000000 { 51 device_type = "memory"; 52 reg = <0 0x40000000 0 0xc0000000>; 53 }; 54 55 usb_otg_vbus: regulator-0 { 56 compatible = "regulator-fixed"; 57 regulator-name = "otg_vbus"; 58 regulator-min-microvolt = <5000000>; 59 regulator-max-microvolt = <5000000>; 60 gpio = <&pio 16 GPIO_ACTIVE_HIGH>; 61 enable-active-high; 62 }; 63 64 reserved-memory { 65 #address-cells = <2>; 66 #size-cells = <2>; 67 ranges; 68 69 /* 192 KiB reserved for ARM Trusted Firmware (BL31) */ 70 bl31_secmon_reserved: secmon@43000000 { 71 no-map; 72 reg = <0 0x43000000 0 0x30000>; 73 }; 74 75 /* 12 MiB reserved for OP-TEE (BL32) 76 * +-----------------------+ 0x43e0_0000 77 * | SHMEM 2MiB | 78 * +-----------------------+ 0x43c0_0000 79 * | | TA_RAM 8MiB | 80 * + TZDRAM +--------------+ 0x4340_0000 81 * | | TEE_RAM 2MiB | 82 * +-----------------------+ 0x4320_0000 83 */ 84 optee_reserved: optee@43200000 { 85 no-map; 86 reg = <0 0x43200000 0 0x00c00000>; 87 }; 88 }; 89}; 90 91&cpu0 { 92 proc-supply = <&mt6357_vproc_reg>; 93 sram-supply = <&mt6357_vsram_proc_reg>; 94}; 95 96&cpu1 { 97 proc-supply = <&mt6357_vproc_reg>; 98 sram-supply = <&mt6357_vsram_proc_reg>; 99}; 100 101&cpu2 { 102 proc-supply = <&mt6357_vproc_reg>; 103 sram-supply = <&mt6357_vsram_proc_reg>; 104}; 105 106&cpu3 { 107 proc-supply = <&mt6357_vproc_reg>; 108 sram-supply = <&mt6357_vsram_proc_reg>; 109}; 110 111ðernet { 112 pinctrl-0 = <ðernet_pins>; 113 pinctrl-names = "default"; 114 phy-handle = <ð_phy>; 115 phy-mode = "rmii"; 116 /* 117 * Ethernet and HDMI (DSI0) are sharing pins. 118 * Only one can be enabled at a time and require the physical switch 119 * SW2101 to be set on LAN position 120 * mt6357_vibr_reg and mt6357_vsim2_reg are needed to supply ethernet 121 */ 122 status = "disabled"; 123 124 mdio { 125 #address-cells = <1>; 126 #size-cells = <0>; 127 128 eth_phy: ethernet-phy@0 { 129 reg = <0>; 130 }; 131 }; 132}; 133 134&i2c0 { 135 clock-frequency = <100000>; 136 pinctrl-0 = <&i2c0_pins>; 137 pinctrl-names = "default"; 138 status = "okay"; 139}; 140 141&mmc0 { 142 assigned-clock-parents = <&topckgen CLK_TOP_MSDCPLL>; 143 assigned-clocks = <&topckgen CLK_TOP_MSDC50_0_SEL>; 144 bus-width = <8>; 145 cap-mmc-highspeed; 146 cap-mmc-hw-reset; 147 hs400-ds-delay = <0x12012>; 148 max-frequency = <200000000>; 149 mmc-hs200-1_8v; 150 mmc-hs400-1_8v; 151 no-sd; 152 no-sdio; 153 non-removable; 154 pinctrl-0 = <&mmc0_default_pins>; 155 pinctrl-1 = <&mmc0_uhs_pins>; 156 pinctrl-names = "default", "state_uhs"; 157 vmmc-supply = <&mt6357_vemc_reg>; 158 vqmmc-supply = <&mt6357_vio18_reg>; 159 status = "okay"; 160}; 161 162&mmc1 { 163 bus-width = <4>; 164 cap-sd-highspeed; 165 cd-gpios = <&pio 76 GPIO_ACTIVE_LOW>; 166 max-frequency = <200000000>; 167 pinctrl-0 = <&mmc1_default_pins>; 168 pinctrl-1 = <&mmc1_uhs_pins>; 169 pinctrl-names = "default", "state_uhs"; 170 sd-uhs-sdr104; 171 sd-uhs-sdr50; 172 vmmc-supply = <&mt6357_vmch_reg>; 173 vqmmc-supply = <&mt6357_vmc_reg>; 174 status = "okay"; 175}; 176 177&mt6357_pmic { 178 interrupts-extended = <&pio 145 IRQ_TYPE_LEVEL_HIGH>; 179 interrupt-controller; 180 #interrupt-cells = <2>; 181}; 182 183&pio { 184 ethernet_pins: ethernet-pins { 185 phy_reset_pins { 186 pinmux = <MT8365_PIN_133_TDM_TX_DATA1__FUNC_GPIO133>; 187 }; 188 189 rmii_pins { 190 pinmux = <MT8365_PIN_0_GPIO0__FUNC_EXT_TXD0>, 191 <MT8365_PIN_1_GPIO1__FUNC_EXT_TXD1>, 192 <MT8365_PIN_2_GPIO2__FUNC_EXT_TXD2>, 193 <MT8365_PIN_3_GPIO3__FUNC_EXT_TXD3>, 194 <MT8365_PIN_4_GPIO4__FUNC_EXT_TXC>, 195 <MT8365_PIN_5_GPIO5__FUNC_EXT_RXER>, 196 <MT8365_PIN_6_GPIO6__FUNC_EXT_RXC>, 197 <MT8365_PIN_7_GPIO7__FUNC_EXT_RXDV>, 198 <MT8365_PIN_8_GPIO8__FUNC_EXT_RXD0>, 199 <MT8365_PIN_9_GPIO9__FUNC_EXT_RXD1>, 200 <MT8365_PIN_10_GPIO10__FUNC_EXT_RXD2>, 201 <MT8365_PIN_11_GPIO11__FUNC_EXT_RXD3>, 202 <MT8365_PIN_12_GPIO12__FUNC_EXT_TXEN>, 203 <MT8365_PIN_13_GPIO13__FUNC_EXT_COL>, 204 <MT8365_PIN_14_GPIO14__FUNC_EXT_MDIO>, 205 <MT8365_PIN_15_GPIO15__FUNC_EXT_MDC>; 206 }; 207 }; 208 209 gpio_keys: gpio-keys-pins { 210 pins { 211 pinmux = <MT8365_PIN_24_KPCOL0__FUNC_KPCOL0>; 212 bias-pull-up; 213 input-enable; 214 }; 215 }; 216 217 i2c0_pins: i2c0-pins { 218 pins { 219 pinmux = <MT8365_PIN_57_SDA0__FUNC_SDA0_0>, 220 <MT8365_PIN_58_SCL0__FUNC_SCL0_0>; 221 bias-pull-up; 222 }; 223 }; 224 225 mmc0_default_pins: mmc0-default-pins { 226 clk-pins { 227 pinmux = <MT8365_PIN_99_MSDC0_CLK__FUNC_MSDC0_CLK>; 228 bias-pull-down; 229 }; 230 231 cmd-dat-pins { 232 pinmux = <MT8365_PIN_103_MSDC0_DAT0__FUNC_MSDC0_DAT0>, 233 <MT8365_PIN_102_MSDC0_DAT1__FUNC_MSDC0_DAT1>, 234 <MT8365_PIN_101_MSDC0_DAT2__FUNC_MSDC0_DAT2>, 235 <MT8365_PIN_100_MSDC0_DAT3__FUNC_MSDC0_DAT3>, 236 <MT8365_PIN_96_MSDC0_DAT4__FUNC_MSDC0_DAT4>, 237 <MT8365_PIN_95_MSDC0_DAT5__FUNC_MSDC0_DAT5>, 238 <MT8365_PIN_94_MSDC0_DAT6__FUNC_MSDC0_DAT6>, 239 <MT8365_PIN_93_MSDC0_DAT7__FUNC_MSDC0_DAT7>, 240 <MT8365_PIN_98_MSDC0_CMD__FUNC_MSDC0_CMD>; 241 input-enable; 242 bias-pull-up; 243 }; 244 245 rst-pins { 246 pinmux = <MT8365_PIN_97_MSDC0_RSTB__FUNC_MSDC0_RSTB>; 247 bias-pull-up; 248 }; 249 }; 250 251 mmc0_uhs_pins: mmc0-uhs-pins { 252 clk-pins { 253 pinmux = <MT8365_PIN_99_MSDC0_CLK__FUNC_MSDC0_CLK>; 254 drive-strength = <MTK_DRIVE_10mA>; 255 bias-pull-down = <MTK_PUPD_SET_R1R0_10>; 256 }; 257 258 cmd-dat-pins { 259 pinmux = <MT8365_PIN_103_MSDC0_DAT0__FUNC_MSDC0_DAT0>, 260 <MT8365_PIN_102_MSDC0_DAT1__FUNC_MSDC0_DAT1>, 261 <MT8365_PIN_101_MSDC0_DAT2__FUNC_MSDC0_DAT2>, 262 <MT8365_PIN_100_MSDC0_DAT3__FUNC_MSDC0_DAT3>, 263 <MT8365_PIN_96_MSDC0_DAT4__FUNC_MSDC0_DAT4>, 264 <MT8365_PIN_95_MSDC0_DAT5__FUNC_MSDC0_DAT5>, 265 <MT8365_PIN_94_MSDC0_DAT6__FUNC_MSDC0_DAT6>, 266 <MT8365_PIN_93_MSDC0_DAT7__FUNC_MSDC0_DAT7>, 267 <MT8365_PIN_98_MSDC0_CMD__FUNC_MSDC0_CMD>; 268 input-enable; 269 drive-strength = <MTK_DRIVE_10mA>; 270 bias-pull-up = <MTK_PUPD_SET_R1R0_01>; 271 }; 272 273 ds-pins { 274 pinmux = <MT8365_PIN_104_MSDC0_DSL__FUNC_MSDC0_DSL>; 275 drive-strength = <MTK_DRIVE_10mA>; 276 bias-pull-down = <MTK_PUPD_SET_R1R0_10>; 277 }; 278 279 rst-pins { 280 pinmux = <MT8365_PIN_97_MSDC0_RSTB__FUNC_MSDC0_RSTB>; 281 drive-strength = <MTK_DRIVE_10mA>; 282 bias-pull-up; 283 }; 284 }; 285 286 mmc1_default_pins: mmc1-default-pins { 287 cd-pins { 288 pinmux = <MT8365_PIN_76_CMDAT8__FUNC_GPIO76>; 289 bias-pull-up; 290 }; 291 292 clk-pins { 293 pinmux = <MT8365_PIN_88_MSDC1_CLK__FUNC_MSDC1_CLK>; 294 bias-pull-down = <MTK_PUPD_SET_R1R0_10>; 295 }; 296 297 cmd-dat-pins { 298 pinmux = <MT8365_PIN_89_MSDC1_DAT0__FUNC_MSDC1_DAT0>, 299 <MT8365_PIN_90_MSDC1_DAT1__FUNC_MSDC1_DAT1>, 300 <MT8365_PIN_91_MSDC1_DAT2__FUNC_MSDC1_DAT2>, 301 <MT8365_PIN_92_MSDC1_DAT3__FUNC_MSDC1_DAT3>, 302 <MT8365_PIN_87_MSDC1_CMD__FUNC_MSDC1_CMD>; 303 input-enable; 304 bias-pull-up = <MTK_PUPD_SET_R1R0_01>; 305 }; 306 }; 307 308 mmc1_uhs_pins: mmc1-uhs-pins { 309 clk-pins { 310 pinmux = <MT8365_PIN_88_MSDC1_CLK__FUNC_MSDC1_CLK>; 311 drive-strength = <MTK_DRIVE_8mA>; 312 bias-pull-down = <MTK_PUPD_SET_R1R0_10>; 313 }; 314 315 cmd-dat-pins { 316 pinmux = <MT8365_PIN_89_MSDC1_DAT0__FUNC_MSDC1_DAT0>, 317 <MT8365_PIN_90_MSDC1_DAT1__FUNC_MSDC1_DAT1>, 318 <MT8365_PIN_91_MSDC1_DAT2__FUNC_MSDC1_DAT2>, 319 <MT8365_PIN_92_MSDC1_DAT3__FUNC_MSDC1_DAT3>, 320 <MT8365_PIN_87_MSDC1_CMD__FUNC_MSDC1_CMD>; 321 input-enable; 322 drive-strength = <MTK_DRIVE_6mA>; 323 bias-pull-up = <MTK_PUPD_SET_R1R0_01>; 324 }; 325 }; 326 327 uart0_pins: uart0-pins { 328 pins { 329 pinmux = <MT8365_PIN_35_URXD0__FUNC_URXD0>, 330 <MT8365_PIN_36_UTXD0__FUNC_UTXD0>; 331 }; 332 }; 333 334 uart1_pins: uart1-pins { 335 pins { 336 pinmux = <MT8365_PIN_37_URXD1__FUNC_URXD1>, 337 <MT8365_PIN_38_UTXD1__FUNC_UTXD1>; 338 }; 339 }; 340 341 uart2_pins: uart2-pins { 342 pins { 343 pinmux = <MT8365_PIN_39_URXD2__FUNC_URXD2>, 344 <MT8365_PIN_40_UTXD2__FUNC_UTXD2>; 345 }; 346 }; 347 348 usb_pins: usb-pins { 349 id-pins { 350 pinmux = <MT8365_PIN_17_GPIO17__FUNC_GPIO17>; 351 input-enable; 352 bias-pull-up; 353 }; 354 355 usb0-vbus-pins { 356 pinmux = <MT8365_PIN_16_GPIO16__FUNC_USB_DRVVBUS>; 357 output-high; 358 }; 359 360 usb1-vbus-pins { 361 pinmux = <MT8365_PIN_18_GPIO18__FUNC_GPIO18>; 362 output-high; 363 }; 364 }; 365 366 pwm_pins: pwm-pins { 367 pins { 368 pinmux = <MT8365_PIN_19_DISP_PWM__FUNC_PWM_A>, 369 <MT8365_PIN_116_I2S_BCK__FUNC_PWM_C>; 370 }; 371 }; 372}; 373 374&pwm { 375 pinctrl-0 = <&pwm_pins>; 376 pinctrl-names = "default"; 377 status = "okay"; 378}; 379 380&ssusb { 381 dr_mode = "otg"; 382 maximum-speed = "high-speed"; 383 pinctrl-0 = <&usb_pins>; 384 pinctrl-names = "default"; 385 usb-role-switch; 386 vusb33-supply = <&mt6357_vusb33_reg>; 387 status = "okay"; 388 389 connector { 390 compatible = "gpio-usb-b-connector", "usb-b-connector"; 391 id-gpios = <&pio 17 GPIO_ACTIVE_HIGH>; 392 type = "micro"; 393 vbus-supply = <&usb_otg_vbus>; 394 }; 395}; 396 397&usb_host { 398 vusb33-supply = <&mt6357_vusb33_reg>; 399 status = "okay"; 400}; 401 402&uart0 { 403 pinctrl-0 = <&uart0_pins>; 404 pinctrl-names = "default"; 405 status = "okay"; 406}; 407 408&uart1 { 409 pinctrl-0 = <&uart1_pins>; 410 pinctrl-names = "default"; 411 status = "okay"; 412}; 413 414&uart2 { 415 pinctrl-0 = <&uart2_pins>; 416 pinctrl-names = "default"; 417 status = "okay"; 418}; 419