1// SPDX-License-Identifier: GPL-2.0 2/* 3 * AM625 SK: https://www.ti.com/lit/zip/sprr448 4 * 5 * Copyright (C) 2021-2022 Texas Instruments Incorporated - https://www.ti.com/ 6 */ 7 8/dts-v1/; 9 10#include <dt-bindings/leds/common.h> 11#include <dt-bindings/gpio/gpio.h> 12#include <dt-bindings/net/ti-dp83867.h> 13#include "k3-am625.dtsi" 14 15/ { 16 compatible = "ti,am625-sk", "ti,am625"; 17 model = "Texas Instruments AM625 SK"; 18 19 aliases { 20 serial2 = &main_uart0; 21 mmc0 = &sdhci0; 22 mmc1 = &sdhci1; 23 mmc2 = &sdhci2; 24 spi0 = &ospi0; 25 ethernet0 = &cpsw_port1; 26 ethernet1 = &cpsw_port2; 27 }; 28 29 chosen { 30 stdout-path = "serial2:115200n8"; 31 bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000"; 32 }; 33 34 opp-table { 35 /* Add 1.4GHz OPP for am625-sk board. Requires VDD_CORE to be at 0.85V */ 36 opp-1400000000 { 37 opp-hz = /bits/ 64 <1400000000>; 38 opp-supported-hw = <0x01 0x0004>; 39 clock-latency-ns = <6000000>; 40 }; 41 }; 42 43 memory@80000000 { 44 device_type = "memory"; 45 /* 2G RAM */ 46 reg = <0x00000000 0x80000000 0x00000000 0x80000000>; 47 48 }; 49 50 reserved-memory { 51 #address-cells = <2>; 52 #size-cells = <2>; 53 ranges; 54 55 ramoops@9ca00000 { 56 compatible = "ramoops"; 57 reg = <0x00 0x9ca00000 0x00 0x00100000>; 58 record-size = <0x8000>; 59 console-size = <0x8000>; 60 ftrace-size = <0x00>; 61 pmsg-size = <0x8000>; 62 }; 63 64 secure_tfa_ddr: tfa@9e780000 { 65 reg = <0x00 0x9e780000 0x00 0x80000>; 66 alignment = <0x1000>; 67 no-map; 68 }; 69 70 secure_ddr: optee@9e800000 { 71 reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */ 72 alignment = <0x1000>; 73 no-map; 74 }; 75 76 wkup_r5fss0_core0_dma_memory_region: r5f-dma-memory@9db00000 { 77 compatible = "shared-dma-pool"; 78 reg = <0x00 0x9db00000 0x00 0xc00000>; 79 no-map; 80 }; 81 }; 82 83 vmain_pd: regulator-0 { 84 /* TPS65988 PD CONTROLLER OUTPUT */ 85 compatible = "regulator-fixed"; 86 regulator-name = "vmain_pd"; 87 regulator-min-microvolt = <5000000>; 88 regulator-max-microvolt = <5000000>; 89 regulator-always-on; 90 regulator-boot-on; 91 }; 92 93 vcc_5v0: regulator-1 { 94 /* Output of LM34936 */ 95 compatible = "regulator-fixed"; 96 regulator-name = "vcc_5v0"; 97 regulator-min-microvolt = <5000000>; 98 regulator-max-microvolt = <5000000>; 99 vin-supply = <&vmain_pd>; 100 regulator-always-on; 101 regulator-boot-on; 102 }; 103 104 vcc_3v3_sys: regulator-2 { 105 /* output of LM61460-Q1 */ 106 compatible = "regulator-fixed"; 107 regulator-name = "vcc_3v3_sys"; 108 regulator-min-microvolt = <3300000>; 109 regulator-max-microvolt = <3300000>; 110 vin-supply = <&vmain_pd>; 111 regulator-always-on; 112 regulator-boot-on; 113 }; 114 115 vdd_mmc1: regulator-3 { 116 /* TPS22918DBVR */ 117 compatible = "regulator-fixed"; 118 regulator-name = "vdd_mmc1"; 119 regulator-min-microvolt = <3300000>; 120 regulator-max-microvolt = <3300000>; 121 regulator-boot-on; 122 enable-active-high; 123 vin-supply = <&vcc_3v3_sys>; 124 gpio = <&exp1 3 GPIO_ACTIVE_HIGH>; 125 }; 126 127 vdd_sd_dv: regulator-4 { 128 /* Output of TLV71033 */ 129 compatible = "regulator-gpio"; 130 regulator-name = "tlv71033"; 131 pinctrl-names = "default"; 132 pinctrl-0 = <&vdd_sd_dv_pins_default>; 133 regulator-min-microvolt = <1800000>; 134 regulator-max-microvolt = <3300000>; 135 regulator-boot-on; 136 vin-supply = <&vcc_5v0>; 137 gpios = <&main_gpio0 31 GPIO_ACTIVE_HIGH>; 138 states = <1800000 0x0>, 139 <3300000 0x1>; 140 }; 141 142 leds { 143 compatible = "gpio-leds"; 144 pinctrl-names = "default"; 145 pinctrl-0 = <&usr_led_pins_default>; 146 147 led-0 { 148 label = "am62-sk:green:heartbeat"; 149 gpios = <&main_gpio1 49 GPIO_ACTIVE_HIGH>; 150 linux,default-trigger = "heartbeat"; 151 function = LED_FUNCTION_HEARTBEAT; 152 default-state = "off"; 153 }; 154 }; 155}; 156 157&main_pmx0 { 158 main_uart0_pins_default: main-uart0-pins-default { 159 pinctrl-single,pins = < 160 AM62X_IOPAD(0x1c8, PIN_INPUT, 0) /* (D14) UART0_RXD */ 161 AM62X_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (E14) UART0_TXD */ 162 >; 163 }; 164 165 main_i2c0_pins_default: main-i2c0-pins-default { 166 pinctrl-single,pins = < 167 AM62X_IOPAD(0x1e0, PIN_INPUT_PULLUP, 0) /* (B16) I2C0_SCL */ 168 AM62X_IOPAD(0x1e4, PIN_INPUT_PULLUP, 0) /* (A16) I2C0_SDA */ 169 >; 170 }; 171 172 main_i2c1_pins_default: main-i2c1-pins-default { 173 pinctrl-single,pins = < 174 AM62X_IOPAD(0x1e8, PIN_INPUT_PULLUP, 0) /* (B17) I2C1_SCL */ 175 AM62X_IOPAD(0x1ec, PIN_INPUT_PULLUP, 0) /* (A17) I2C1_SDA */ 176 >; 177 }; 178 179 main_i2c2_pins_default: main-i2c2-pins-default { 180 pinctrl-single,pins = < 181 AM62X_IOPAD(0x0b0, PIN_INPUT_PULLUP, 1) /* (K22) GPMC0_CSn2.I2C2_SCL */ 182 AM62X_IOPAD(0x0b4, PIN_INPUT_PULLUP, 1) /* (K24) GPMC0_CSn3.I2C2_SDA */ 183 >; 184 }; 185 186 main_mmc0_pins_default: main-mmc0-pins-default { 187 pinctrl-single,pins = < 188 AM62X_IOPAD(0x220, PIN_INPUT, 0) /* (Y3) MMC0_CMD */ 189 AM62X_IOPAD(0x218, PIN_INPUT, 0) /* (AB1) MMC0_CLK */ 190 AM62X_IOPAD(0x214, PIN_INPUT, 0) /* (AA2) MMC0_DAT0 */ 191 AM62X_IOPAD(0x210, PIN_INPUT, 0) /* (AA1) MMC0_DAT1 */ 192 AM62X_IOPAD(0x20c, PIN_INPUT, 0) /* (AA3) MMC0_DAT2 */ 193 AM62X_IOPAD(0x208, PIN_INPUT, 0) /* (Y4) MMC0_DAT3 */ 194 AM62X_IOPAD(0x204, PIN_INPUT, 0) /* (AB2) MMC0_DAT4 */ 195 AM62X_IOPAD(0x200, PIN_INPUT, 0) /* (AC1) MMC0_DAT5 */ 196 AM62X_IOPAD(0x1fc, PIN_INPUT, 0) /* (AD2) MMC0_DAT6 */ 197 AM62X_IOPAD(0x1f8, PIN_INPUT, 0) /* (AC2) MMC0_DAT7 */ 198 >; 199 }; 200 201 main_mmc1_pins_default: main-mmc1-pins-default { 202 pinctrl-single,pins = < 203 AM62X_IOPAD(0x23c, PIN_INPUT, 0) /* (A21) MMC1_CMD */ 204 AM62X_IOPAD(0x234, PIN_INPUT, 0) /* (B22) MMC1_CLK */ 205 AM62X_IOPAD(0x230, PIN_INPUT, 0) /* (A22) MMC1_DAT0 */ 206 AM62X_IOPAD(0x22c, PIN_INPUT, 0) /* (B21) MMC1_DAT1 */ 207 AM62X_IOPAD(0x228, PIN_INPUT, 0) /* (C21) MMC1_DAT2 */ 208 AM62X_IOPAD(0x224, PIN_INPUT, 0) /* (D22) MMC1_DAT3 */ 209 AM62X_IOPAD(0x240, PIN_INPUT, 0) /* (D17) MMC1_SDCD */ 210 >; 211 }; 212 213 usr_led_pins_default: usr-led-pins-default { 214 pinctrl-single,pins = < 215 AM62X_IOPAD(0x244, PIN_OUTPUT, 7) /* (C17) MMC1_SDWP.GPIO1_49 */ 216 >; 217 }; 218 219 main_mdio1_pins_default: main-mdio1-pins-default { 220 pinctrl-single,pins = < 221 AM62X_IOPAD(0x160, PIN_OUTPUT, 0) /* (AD24) MDIO0_MDC */ 222 AM62X_IOPAD(0x15c, PIN_INPUT, 0) /* (AB22) MDIO0_MDIO */ 223 >; 224 }; 225 226 main_rgmii1_pins_default: main-rgmii1-pins-default { 227 pinctrl-single,pins = < 228 AM62X_IOPAD(0x14c, PIN_INPUT, 0) /* (AB17) RGMII1_RD0 */ 229 AM62X_IOPAD(0x150, PIN_INPUT, 0) /* (AC17) RGMII1_RD1 */ 230 AM62X_IOPAD(0x154, PIN_INPUT, 0) /* (AB16) RGMII1_RD2 */ 231 AM62X_IOPAD(0x158, PIN_INPUT, 0) /* (AA15) RGMII1_RD3 */ 232 AM62X_IOPAD(0x148, PIN_INPUT, 0) /* (AD17) RGMII1_RXC */ 233 AM62X_IOPAD(0x144, PIN_INPUT, 0) /* (AE17) RGMII1_RX_CTL */ 234 AM62X_IOPAD(0x134, PIN_OUTPUT, 0) /* (AE20) RGMII1_TD0 */ 235 AM62X_IOPAD(0x138, PIN_OUTPUT, 0) /* (AD20) RGMII1_TD1 */ 236 AM62X_IOPAD(0x13c, PIN_OUTPUT, 0) /* (AE18) RGMII1_TD2 */ 237 AM62X_IOPAD(0x140, PIN_OUTPUT, 0) /* (AD18) RGMII1_TD3 */ 238 AM62X_IOPAD(0x130, PIN_OUTPUT, 0) /* (AE19) RGMII1_TXC */ 239 AM62X_IOPAD(0x12c, PIN_OUTPUT, 0) /* (AD19) RGMII1_TX_CTL */ 240 >; 241 }; 242 243 main_rgmii2_pins_default: main-rgmii2-pins-default { 244 pinctrl-single,pins = < 245 AM62X_IOPAD(0x184, PIN_INPUT, 0) /* (AE23) RGMII2_RD0 */ 246 AM62X_IOPAD(0x188, PIN_INPUT, 0) /* (AB20) RGMII2_RD1 */ 247 AM62X_IOPAD(0x18c, PIN_INPUT, 0) /* (AC21) RGMII2_RD2 */ 248 AM62X_IOPAD(0x190, PIN_INPUT, 0) /* (AE22) RGMII2_RD3 */ 249 AM62X_IOPAD(0x180, PIN_INPUT, 0) /* (AD23) RGMII2_RXC */ 250 AM62X_IOPAD(0x17c, PIN_INPUT, 0) /* (AD22) RGMII2_RX_CTL */ 251 AM62X_IOPAD(0x16c, PIN_OUTPUT, 0) /* (Y18) RGMII2_TD0 */ 252 AM62X_IOPAD(0x170, PIN_OUTPUT, 0) /* (AA18) RGMII2_TD1 */ 253 AM62X_IOPAD(0x174, PIN_OUTPUT, 0) /* (AD21) RGMII2_TD2 */ 254 AM62X_IOPAD(0x178, PIN_OUTPUT, 0) /* (AC20) RGMII2_TD3 */ 255 AM62X_IOPAD(0x168, PIN_OUTPUT, 0) /* (AE21) RGMII2_TXC */ 256 AM62X_IOPAD(0x164, PIN_OUTPUT, 0) /* (AA19) RGMII2_TX_CTL */ 257 >; 258 }; 259 260 ospi0_pins_default: ospi0-pins-default { 261 pinctrl-single,pins = < 262 AM62X_IOPAD(0x000, PIN_OUTPUT, 0) /* (H24) OSPI0_CLK */ 263 AM62X_IOPAD(0x02c, PIN_OUTPUT, 0) /* (F23) OSPI0_CSn0 */ 264 AM62X_IOPAD(0x00c, PIN_INPUT, 0) /* (E25) OSPI0_D0 */ 265 AM62X_IOPAD(0x010, PIN_INPUT, 0) /* (G24) OSPI0_D1 */ 266 AM62X_IOPAD(0x014, PIN_INPUT, 0) /* (F25) OSPI0_D2 */ 267 AM62X_IOPAD(0x018, PIN_INPUT, 0) /* (F24) OSPI0_D3 */ 268 AM62X_IOPAD(0x01c, PIN_INPUT, 0) /* (J23) OSPI0_D4 */ 269 AM62X_IOPAD(0x020, PIN_INPUT, 0) /* (J25) OSPI0_D5 */ 270 AM62X_IOPAD(0x024, PIN_INPUT, 0) /* (H25) OSPI0_D6 */ 271 AM62X_IOPAD(0x028, PIN_INPUT, 0) /* (J22) OSPI0_D7 */ 272 AM62X_IOPAD(0x008, PIN_INPUT, 0) /* (J24) OSPI0_DQS */ 273 >; 274 }; 275 276 vdd_sd_dv_pins_default: vdd-sd-dv-pins-default { 277 pinctrl-single,pins = < 278 AM62X_IOPAD(0x07c, PIN_OUTPUT, 7) /* (P25) GPMC0_CLK.GPIO0_31 */ 279 >; 280 }; 281 282 main_gpio1_ioexp_intr_pins_default: main-gpio1-ioexp-intr-pins-default { 283 pinctrl-single,pins = < 284 AM62X_IOPAD(0x01d4, PIN_INPUT, 7) /* (B15) UART0_RTSn.GPIO1_23 */ 285 >; 286 }; 287}; 288 289&wkup_uart0 { 290 /* WKUP UART0 is used by DM firmware */ 291 status = "reserved"; 292}; 293 294&mcu_uart0 { 295 status = "disabled"; 296}; 297 298&main_uart0 { 299 pinctrl-names = "default"; 300 pinctrl-0 = <&main_uart0_pins_default>; 301}; 302 303&main_uart1 { 304 /* Main UART1 is used by TIFS firmware */ 305 status = "reserved"; 306}; 307 308&main_uart2 { 309 status = "disabled"; 310}; 311 312&main_uart3 { 313 status = "disabled"; 314}; 315 316&main_uart4 { 317 status = "disabled"; 318}; 319 320&main_uart5 { 321 status = "disabled"; 322}; 323 324&main_uart6 { 325 status = "disabled"; 326}; 327 328&mcu_i2c0 { 329 status = "disabled"; 330}; 331 332&wkup_i2c0 { 333 status = "disabled"; 334}; 335 336&main_i2c0 { 337 pinctrl-names = "default"; 338 pinctrl-0 = <&main_i2c0_pins_default>; 339 clock-frequency = <400000>; 340}; 341 342&main_i2c1 { 343 pinctrl-names = "default"; 344 pinctrl-0 = <&main_i2c1_pins_default>; 345 clock-frequency = <400000>; 346 347 exp1: gpio@22 { 348 compatible = "ti,tca6424"; 349 reg = <0x22>; 350 gpio-controller; 351 #gpio-cells = <2>; 352 gpio-line-names = "GPIO_CPSW2_RST", "GPIO_CPSW1_RST", 353 "PRU_DETECT", "MMC1_SD_EN", 354 "VPP_LDO_EN", "EXP_PS_3V3_En", 355 "EXP_PS_5V0_En", "EXP_HAT_DETECT", 356 "GPIO_AUD_RSTn", "GPIO_eMMC_RSTn", 357 "UART1_FET_BUF_EN", "WL_LT_EN", 358 "GPIO_HDMI_RSTn", "CSI_GPIO1", 359 "CSI_GPIO2", "PRU_3V3_EN", 360 "HDMI_INTn", "TEST_GPIO2", 361 "MCASP1_FET_EN", "MCASP1_BUF_BT_EN", 362 "MCASP1_FET_SEL", "UART1_FET_SEL", 363 "TSINT#", "IO_EXP_TEST_LED"; 364 365 interrupt-parent = <&main_gpio1>; 366 interrupts = <23 IRQ_TYPE_EDGE_FALLING>; 367 interrupt-controller; 368 #interrupt-cells = <2>; 369 370 pinctrl-names = "default"; 371 pinctrl-0 = <&main_gpio1_ioexp_intr_pins_default>; 372 }; 373}; 374 375&main_i2c2 { 376 status = "disabled"; 377}; 378 379&main_i2c3 { 380 status = "disabled"; 381}; 382 383&sdhci0 { 384 pinctrl-names = "default"; 385 pinctrl-0 = <&main_mmc0_pins_default>; 386 ti,driver-strength-ohm = <50>; 387 disable-wp; 388}; 389 390&sdhci1 { 391 /* SD/MMC */ 392 vmmc-supply = <&vdd_mmc1>; 393 vqmmc-supply = <&vdd_sd_dv>; 394 pinctrl-names = "default"; 395 pinctrl-0 = <&main_mmc1_pins_default>; 396 ti,driver-strength-ohm = <50>; 397 disable-wp; 398}; 399 400&cpsw3g { 401 pinctrl-names = "default"; 402 pinctrl-0 = <&main_mdio1_pins_default 403 &main_rgmii1_pins_default 404 &main_rgmii2_pins_default>; 405}; 406 407&cpsw_port1 { 408 phy-mode = "rgmii-rxid"; 409 phy-handle = <&cpsw3g_phy0>; 410}; 411 412&cpsw_port2 { 413 phy-mode = "rgmii-rxid"; 414 phy-handle = <&cpsw3g_phy1>; 415}; 416 417&cpsw3g_mdio { 418 cpsw3g_phy0: ethernet-phy@0 { 419 reg = <0>; 420 ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>; 421 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>; 422 ti,min-output-impedance; 423 }; 424 425 cpsw3g_phy1: ethernet-phy@1 { 426 reg = <1>; 427 ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>; 428 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>; 429 ti,min-output-impedance; 430 }; 431}; 432 433&mailbox0_cluster0 { 434 mbox_m4_0: mbox-m4-0 { 435 ti,mbox-rx = <0 0 0>; 436 ti,mbox-tx = <1 0 0>; 437 }; 438}; 439 440&ospi0 { 441 pinctrl-names = "default"; 442 pinctrl-0 = <&ospi0_pins_default>; 443 444 flash@0{ 445 compatible = "jedec,spi-nor"; 446 reg = <0x0>; 447 spi-tx-bus-width = <8>; 448 spi-rx-bus-width = <8>; 449 spi-max-frequency = <25000000>; 450 cdns,tshsl-ns = <60>; 451 cdns,tsd2d-ns = <60>; 452 cdns,tchsh-ns = <60>; 453 cdns,tslch-ns = <60>; 454 cdns,read-delay = <4>; 455 456 partitions { 457 compatible = "fixed-partitions"; 458 #address-cells = <1>; 459 #size-cells = <1>; 460 461 partition@0 { 462 label = "ospi.tiboot3"; 463 reg = <0x0 0x80000>; 464 }; 465 466 partition@80000 { 467 label = "ospi.tispl"; 468 reg = <0x80000 0x200000>; 469 }; 470 471 partition@280000 { 472 label = "ospi.u-boot"; 473 reg = <0x280000 0x400000>; 474 }; 475 476 partition@680000 { 477 label = "ospi.env"; 478 reg = <0x680000 0x40000>; 479 }; 480 481 partition@6c0000 { 482 label = "ospi.env.backup"; 483 reg = <0x6c0000 0x40000>; 484 }; 485 486 partition@800000 { 487 label = "ospi.rootfs"; 488 reg = <0x800000 0x37c0000>; 489 }; 490 491 partition@3fc0000 { 492 label = "ospi.phypattern"; 493 reg = <0x3fc0000 0x40000>; 494 }; 495 }; 496 }; 497}; 498 499&ecap0 { 500 status = "disabled"; 501}; 502 503&ecap1 { 504 status = "disabled"; 505}; 506 507&ecap2 { 508 status = "disabled"; 509}; 510 511&main_mcan0 { 512 status = "disabled"; 513}; 514 515&epwm0 { 516 status = "disabled"; 517}; 518 519&epwm1 { 520 status = "disabled"; 521}; 522 523&epwm2 { 524 status = "disabled"; 525}; 526