1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Copyright (C) 2021 Texas Instruments Incorporated - https://www.ti.com/ 4 */ 5 6/dts-v1/; 7 8#include <dt-bindings/mux/ti-serdes.h> 9#include <dt-bindings/phy/phy.h> 10#include <dt-bindings/gpio/gpio.h> 11#include <dt-bindings/net/ti-dp83867.h> 12#include "k3-am642.dtsi" 13 14/ { 15 compatible = "ti,am642-sk", "ti,am642"; 16 model = "Texas Instruments AM642 SK"; 17 18 chosen { 19 stdout-path = "serial2:115200n8"; 20 bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000"; 21 }; 22 23 memory@80000000 { 24 device_type = "memory"; 25 /* 2G RAM */ 26 reg = <0x00000000 0x80000000 0x00000000 0x80000000>; 27 28 }; 29 30 reserved-memory { 31 #address-cells = <2>; 32 #size-cells = <2>; 33 ranges; 34 35 secure_ddr: optee@9e800000 { 36 reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */ 37 alignment = <0x1000>; 38 no-map; 39 }; 40 41 main_r5fss0_core0_dma_memory_region: r5f-dma-memory@a0000000 { 42 compatible = "shared-dma-pool"; 43 reg = <0x00 0xa0000000 0x00 0x100000>; 44 no-map; 45 }; 46 47 main_r5fss0_core0_memory_region: r5f-memory@a0100000 { 48 compatible = "shared-dma-pool"; 49 reg = <0x00 0xa0100000 0x00 0xf00000>; 50 no-map; 51 }; 52 53 main_r5fss0_core1_dma_memory_region: r5f-dma-memory@a1000000 { 54 compatible = "shared-dma-pool"; 55 reg = <0x00 0xa1000000 0x00 0x100000>; 56 no-map; 57 }; 58 59 main_r5fss0_core1_memory_region: r5f-memory@a1100000 { 60 compatible = "shared-dma-pool"; 61 reg = <0x00 0xa1100000 0x00 0xf00000>; 62 no-map; 63 }; 64 65 main_r5fss1_core0_dma_memory_region: r5f-dma-memory@a2000000 { 66 compatible = "shared-dma-pool"; 67 reg = <0x00 0xa2000000 0x00 0x100000>; 68 no-map; 69 }; 70 71 main_r5fss1_core0_memory_region: r5f-memory@a2100000 { 72 compatible = "shared-dma-pool"; 73 reg = <0x00 0xa2100000 0x00 0xf00000>; 74 no-map; 75 }; 76 77 main_r5fss1_core1_dma_memory_region: r5f-dma-memory@a3000000 { 78 compatible = "shared-dma-pool"; 79 reg = <0x00 0xa3000000 0x00 0x100000>; 80 no-map; 81 }; 82 83 main_r5fss1_core1_memory_region: r5f-memory@a3100000 { 84 compatible = "shared-dma-pool"; 85 reg = <0x00 0xa3100000 0x00 0xf00000>; 86 no-map; 87 }; 88 89 rtos_ipc_memory_region: ipc-memories@a5000000 { 90 reg = <0x00 0xa5000000 0x00 0x00800000>; 91 alignment = <0x1000>; 92 no-map; 93 }; 94 }; 95 96 vusb_main: fixed-regulator-vusb-main5v0 { 97 /* USB MAIN INPUT 5V DC */ 98 compatible = "regulator-fixed"; 99 regulator-name = "vusb_main5v0"; 100 regulator-min-microvolt = <5000000>; 101 regulator-max-microvolt = <5000000>; 102 regulator-always-on; 103 regulator-boot-on; 104 }; 105 106 vcc_3v3_sys: fixedregulator-vcc-3v3-sys { 107 /* output of LP8733xx */ 108 compatible = "regulator-fixed"; 109 regulator-name = "vcc_3v3_sys"; 110 regulator-min-microvolt = <3300000>; 111 regulator-max-microvolt = <3300000>; 112 vin-supply = <&vusb_main>; 113 regulator-always-on; 114 regulator-boot-on; 115 }; 116 117 vdd_mmc1: fixed-regulator-sd { 118 /* TPS2051BD */ 119 compatible = "regulator-fixed"; 120 regulator-name = "vdd_mmc1"; 121 regulator-min-microvolt = <3300000>; 122 regulator-max-microvolt = <3300000>; 123 regulator-boot-on; 124 enable-active-high; 125 vin-supply = <&vcc_3v3_sys>; 126 gpio = <&exp1 3 GPIO_ACTIVE_HIGH>; 127 }; 128}; 129 130&main_pmx0 { 131 main_mmc1_pins_default: main-mmc1-pins-default { 132 pinctrl-single,pins = < 133 AM64X_IOPAD(0x0294, PIN_INPUT, 0) /* (J19) MMC1_CMD */ 134 AM64X_IOPAD(0x0290, PIN_INPUT, 0) /* (#N/A) MMC1_CLKLB */ 135 AM64X_IOPAD(0x028c, PIN_INPUT, 0) /* (L20) MMC1_CLK */ 136 AM64X_IOPAD(0x0288, PIN_INPUT, 0) /* (K21) MMC1_DAT0 */ 137 AM64X_IOPAD(0x0284, PIN_INPUT, 0) /* (L21) MMC1_DAT1 */ 138 AM64X_IOPAD(0x0280, PIN_INPUT, 0) /* (K19) MMC1_DAT2 */ 139 AM64X_IOPAD(0x027c, PIN_INPUT, 0) /* (K18) MMC1_DAT3 */ 140 AM64X_IOPAD(0x0298, PIN_INPUT, 0) /* (D19) MMC1_SDCD */ 141 >; 142 }; 143 144 main_usb0_pins_default: main-usb0-pins-default { 145 pinctrl-single,pins = < 146 AM64X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (E19) USB0_DRVVBUS */ 147 >; 148 }; 149 150 main_i2c1_pins_default: main-i2c1-pins-default { 151 pinctrl-single,pins = < 152 AM64X_IOPAD(0x0268, PIN_INPUT_PULLUP, 0) /* (C18) I2C1_SCL */ 153 AM64X_IOPAD(0x026c, PIN_INPUT_PULLUP, 0) /* (B19) I2C1_SDA */ 154 >; 155 }; 156 157 mdio1_pins_default: mdio1-pins-default { 158 pinctrl-single,pins = < 159 AM64X_IOPAD(0x01fc, PIN_OUTPUT, 4) /* (R2) PRG0_PRU1_GPO19.MDIO0_MDC */ 160 AM64X_IOPAD(0x01f8, PIN_INPUT, 4) /* (P5) PRG0_PRU1_GPO18.MDIO0_MDIO */ 161 >; 162 }; 163 164 rgmii1_pins_default: rgmii1-pins-default { 165 pinctrl-single,pins = < 166 AM64X_IOPAD(0x011c, PIN_INPUT, 4) /* (AA13) PRG1_PRU1_GPO5.RGMII1_RD0 */ 167 AM64X_IOPAD(0x0128, PIN_INPUT, 4) /* (U12) PRG1_PRU1_GPO8.RGMII1_RD1 */ 168 AM64X_IOPAD(0x0150, PIN_INPUT, 4) /* (Y13) PRG1_PRU1_GPO18.RGMII1_RD2 */ 169 AM64X_IOPAD(0x0154, PIN_INPUT, 4) /* (V12) PRG1_PRU1_GPO19.RGMII1_RD3 */ 170 AM64X_IOPAD(0x00d8, PIN_INPUT, 4) /* (W13) PRG1_PRU0_GPO8.RGMII1_RXC */ 171 AM64X_IOPAD(0x00cc, PIN_INPUT, 4) /* (V13) PRG1_PRU0_GPO5.RGMII1_RX_CTL */ 172 AM64X_IOPAD(0x0124, PIN_OUTPUT, 4) /* (V15) PRG1_PRU1_GPO7.RGMII1_TD0 */ 173 AM64X_IOPAD(0x012c, PIN_OUTPUT, 4) /* (V14) PRG1_PRU1_GPO9.RGMII1_TD1 */ 174 AM64X_IOPAD(0x0130, PIN_OUTPUT, 4) /* (W14) PRG1_PRU1_GPO10.RGMII1_TD2 */ 175 AM64X_IOPAD(0x014c, PIN_OUTPUT, 4) /* (AA14) PRG1_PRU1_GPO17.RGMII1_TD3 */ 176 AM64X_IOPAD(0x00e0, PIN_OUTPUT, 4) /* (U14) PRG1_PRU0_GPO10.RGMII1_TXC */ 177 AM64X_IOPAD(0x00dc, PIN_OUTPUT, 4) /* (U15) PRG1_PRU0_GPO9.RGMII1_TX_CTL */ 178 >; 179 }; 180 181 rgmii2_pins_default: rgmii2-pins-default { 182 pinctrl-single,pins = < 183 AM64X_IOPAD(0x0108, PIN_INPUT, 4) /* (W11) PRG1_PRU1_GPO0.RGMII2_RD0 */ 184 AM64X_IOPAD(0x010c, PIN_INPUT, 4) /* (V11) PRG1_PRU1_GPO1.RGMII2_RD1 */ 185 AM64X_IOPAD(0x0110, PIN_INPUT, 4) /* (AA12) PRG1_PRU1_GPO2.RGMII2_RD2 */ 186 AM64X_IOPAD(0x0114, PIN_INPUT, 4) /* (Y12) PRG1_PRU1_GPO3.RGMII2_RD3 */ 187 AM64X_IOPAD(0x0120, PIN_INPUT, 4) /* (U11) PRG1_PRU1_GPO6.RGMII2_RXC */ 188 AM64X_IOPAD(0x0118, PIN_INPUT, 4) /* (W12) PRG1_PRU1_GPO4.RGMII2_RX_CTL */ 189 AM64X_IOPAD(0x0134, PIN_OUTPUT, 4) /* (AA10) PRG1_PRU1_GPO11.RGMII2_TD0 */ 190 AM64X_IOPAD(0x0138, PIN_OUTPUT, 4) /* (V10) PRG1_PRU1_GPO12.RGMII2_TD1 */ 191 AM64X_IOPAD(0x013c, PIN_OUTPUT, 4) /* (U10) PRG1_PRU1_GPO13.RGMII2_TD2 */ 192 AM64X_IOPAD(0x0140, PIN_OUTPUT, 4) /* (AA11) PRG1_PRU1_GPO14.RGMII2_TD3 */ 193 AM64X_IOPAD(0x0148, PIN_OUTPUT, 4) /* (Y10) PRG1_PRU1_GPO16.RGMII2_TXC */ 194 AM64X_IOPAD(0x0144, PIN_OUTPUT, 4) /* (Y11) PRG1_PRU1_GPO15.RGMII2_TX_CTL */ 195 >; 196 }; 197 198 ospi0_pins_default: ospi0-pins-default { 199 pinctrl-single,pins = < 200 AM64X_IOPAD(0x0000, PIN_OUTPUT, 0) /* (N20) OSPI0_CLK */ 201 AM64X_IOPAD(0x002c, PIN_OUTPUT, 0) /* (L19) OSPI0_CSn0 */ 202 AM64X_IOPAD(0x000c, PIN_INPUT, 0) /* (M19) OSPI0_D0 */ 203 AM64X_IOPAD(0x0010, PIN_INPUT, 0) /* (M18) OSPI0_D1 */ 204 AM64X_IOPAD(0x0014, PIN_INPUT, 0) /* (M20) OSPI0_D2 */ 205 AM64X_IOPAD(0x0018, PIN_INPUT, 0) /* (M21) OSPI0_D3 */ 206 AM64X_IOPAD(0x001c, PIN_INPUT, 0) /* (P21) OSPI0_D4 */ 207 AM64X_IOPAD(0x0020, PIN_INPUT, 0) /* (P20) OSPI0_D5 */ 208 AM64X_IOPAD(0x0024, PIN_INPUT, 0) /* (N18) OSPI0_D6 */ 209 AM64X_IOPAD(0x0028, PIN_INPUT, 0) /* (M17) OSPI0_D7 */ 210 AM64X_IOPAD(0x0008, PIN_INPUT, 0) /* (N19) OSPI0_DQS */ 211 >; 212 }; 213 214 main_ecap0_pins_default: main-ecap0-pins-default { 215 pinctrl-single,pins = < 216 AM64X_IOPAD(0x0270, PIN_INPUT, 0) /* (D18) ECAP0_IN_APWM_OUT */ 217 >; 218 }; 219}; 220 221&mcu_uart0 { 222 status = "disabled"; 223}; 224 225&mcu_uart1 { 226 status = "disabled"; 227}; 228 229&main_uart1 { 230 /* main_uart1 is reserved for firmware usage */ 231 status = "reserved"; 232}; 233 234&main_uart2 { 235 status = "disabled"; 236}; 237 238&main_uart3 { 239 status = "disabled"; 240}; 241 242&main_uart4 { 243 status = "disabled"; 244}; 245 246&main_uart5 { 247 status = "disabled"; 248}; 249 250&main_uart6 { 251 status = "disabled"; 252}; 253 254&mcu_i2c0 { 255 status = "disabled"; 256}; 257 258&mcu_i2c1 { 259 status = "disabled"; 260}; 261 262&main_i2c1 { 263 pinctrl-names = "default"; 264 pinctrl-0 = <&main_i2c1_pins_default>; 265 clock-frequency = <400000>; 266 267 exp1: gpio@70 { 268 compatible = "nxp,pca9538"; 269 reg = <0x70>; 270 gpio-controller; 271 #gpio-cells = <2>; 272 gpio-line-names = "GPIO_CPSW2_RST", "GPIO_CPSW1_RST", 273 "PRU_DETECT", "MMC1_SD_EN", 274 "VPP_LDO_EN", "RPI_PS_3V3_En", 275 "RPI_PS_5V0_En", "RPI_HAT_DETECT"; 276 }; 277}; 278 279&main_i2c3 { 280 status = "disabled"; 281}; 282 283&mcu_spi0 { 284 status = "disabled"; 285}; 286 287&mcu_spi1 { 288 status = "disabled"; 289}; 290 291/* mcu_gpio0 is reserved for mcu firmware usage */ 292&mcu_gpio0 { 293 status = "reserved"; 294}; 295 296&sdhci1 { 297 /* SD/MMC */ 298 vmmc-supply = <&vdd_mmc1>; 299 pinctrl-names = "default"; 300 bus-width = <4>; 301 pinctrl-0 = <&main_mmc1_pins_default>; 302 ti,driver-strength-ohm = <50>; 303 disable-wp; 304}; 305 306&serdes_ln_ctrl { 307 idle-states = <AM64_SERDES0_LANE0_USB>; 308}; 309 310&serdes0 { 311 serdes0_usb_link: phy@0 { 312 reg = <0>; 313 cdns,num-lanes = <1>; 314 #phy-cells = <0>; 315 cdns,phy-type = <PHY_TYPE_USB3>; 316 resets = <&serdes_wiz0 1>; 317 }; 318}; 319 320&usbss0 { 321 ti,vbus-divider; 322}; 323 324&usb0 { 325 dr_mode = "host"; 326 maximum-speed = "super-speed"; 327 pinctrl-names = "default"; 328 pinctrl-0 = <&main_usb0_pins_default>; 329 phys = <&serdes0_usb_link>; 330 phy-names = "cdns3,usb3-phy"; 331}; 332 333&cpsw3g { 334 pinctrl-names = "default"; 335 pinctrl-0 = <&mdio1_pins_default 336 &rgmii1_pins_default 337 &rgmii2_pins_default>; 338}; 339 340&cpsw_port1 { 341 phy-mode = "rgmii-rxid"; 342 phy-handle = <&cpsw3g_phy0>; 343}; 344 345&cpsw_port2 { 346 phy-mode = "rgmii-rxid"; 347 phy-handle = <&cpsw3g_phy1>; 348}; 349 350&cpsw3g_mdio { 351 cpsw3g_phy0: ethernet-phy@0 { 352 reg = <0>; 353 ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>; 354 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>; 355 }; 356 357 cpsw3g_phy1: ethernet-phy@1 { 358 reg = <1>; 359 ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>; 360 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>; 361 }; 362}; 363 364&tscadc0 { 365 status = "disabled"; 366}; 367 368&ospi0 { 369 pinctrl-names = "default"; 370 pinctrl-0 = <&ospi0_pins_default>; 371 372 flash@0{ 373 compatible = "jedec,spi-nor"; 374 reg = <0x0>; 375 spi-tx-bus-width = <8>; 376 spi-rx-bus-width = <8>; 377 spi-max-frequency = <25000000>; 378 cdns,tshsl-ns = <60>; 379 cdns,tsd2d-ns = <60>; 380 cdns,tchsh-ns = <60>; 381 cdns,tslch-ns = <60>; 382 cdns,read-delay = <4>; 383 #address-cells = <1>; 384 #size-cells = <1>; 385 }; 386}; 387 388&mailbox0_cluster2 { 389 mbox_main_r5fss0_core0: mbox-main-r5fss0-core0 { 390 ti,mbox-rx = <0 0 2>; 391 ti,mbox-tx = <1 0 2>; 392 }; 393 394 mbox_main_r5fss0_core1: mbox-main-r5fss0-core1 { 395 ti,mbox-rx = <2 0 2>; 396 ti,mbox-tx = <3 0 2>; 397 }; 398}; 399 400&mailbox0_cluster3 { 401 status = "disabled"; 402}; 403 404&mailbox0_cluster4 { 405 mbox_main_r5fss1_core0: mbox-main-r5fss1-core0 { 406 ti,mbox-rx = <0 0 2>; 407 ti,mbox-tx = <1 0 2>; 408 }; 409 410 mbox_main_r5fss1_core1: mbox-main-r5fss1-core1 { 411 ti,mbox-rx = <2 0 2>; 412 ti,mbox-tx = <3 0 2>; 413 }; 414}; 415 416&mailbox0_cluster5 { 417 status = "disabled"; 418}; 419 420&mailbox0_cluster6 { 421 mbox_m4_0: mbox-m4-0 { 422 ti,mbox-rx = <0 0 2>; 423 ti,mbox-tx = <1 0 2>; 424 }; 425}; 426 427&mailbox0_cluster7 { 428 status = "disabled"; 429}; 430 431&main_r5fss0_core0 { 432 mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core0>; 433 memory-region = <&main_r5fss0_core0_dma_memory_region>, 434 <&main_r5fss0_core0_memory_region>; 435}; 436 437&main_r5fss0_core1 { 438 mboxes = <&mailbox0_cluster2 &mbox_main_r5fss0_core1>; 439 memory-region = <&main_r5fss0_core1_dma_memory_region>, 440 <&main_r5fss0_core1_memory_region>; 441}; 442 443&main_r5fss1_core0 { 444 mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core0>; 445 memory-region = <&main_r5fss1_core0_dma_memory_region>, 446 <&main_r5fss1_core0_memory_region>; 447}; 448 449&main_r5fss1_core1 { 450 mboxes = <&mailbox0_cluster4 &mbox_main_r5fss1_core1>; 451 memory-region = <&main_r5fss1_core1_dma_memory_region>, 452 <&main_r5fss1_core1_memory_region>; 453}; 454 455&pcie0_rc { 456 status = "disabled"; 457}; 458 459&pcie0_ep { 460 status = "disabled"; 461}; 462 463&ecap0 { 464 /* PWM is available on Pin 1 of header J3 */ 465 pinctrl-names = "default"; 466 pinctrl-0 = <&main_ecap0_pins_default>; 467}; 468 469&ecap1 { 470 status = "disabled"; 471}; 472 473&ecap2 { 474 status = "disabled"; 475}; 476 477&epwm0 { 478 status = "disabled"; 479}; 480 481&epwm1 { 482 status = "disabled"; 483}; 484 485&epwm2 { 486 status = "disabled"; 487}; 488 489&epwm3 { 490 status = "disabled"; 491}; 492 493&epwm4 { 494 /* 495 * EPWM4_A, EPWM4_B is available on Pin 32 and 33 on J4 (RPi hat) 496 * But RPi Hat will be used for other use cases, so marking epwm4 as disabled. 497 */ 498 status = "disabled"; 499}; 500 501&epwm5 { 502 /* 503 * EPWM5_A, EPWM5_B is available on Pin 29 and 31 on J4 (RPi hat) 504 * But RPi Hat will be used for other use cases, so marking epwm5 as disabled. 505 */ 506 status = "disabled"; 507}; 508 509&epwm6 { 510 status = "disabled"; 511}; 512 513&epwm7 { 514 status = "disabled"; 515}; 516 517&epwm8 { 518 status = "disabled"; 519}; 520 521&icssg0_mdio { 522 status = "disabled"; 523}; 524 525&icssg1_mdio { 526 status = "disabled"; 527}; 528