0001 // SPDX-License-Identifier: GPL-2.0
0002 /*
0003 * Copyright (C) 2016-2020 Texas Instruments Incorporated - https://www.ti.com/
0004 */
0005
0006 /dts-v1/;
0007
0008 #include "k3-am654.dtsi"
0009 #include <dt-bindings/input/input.h>
0010 #include <dt-bindings/net/ti-dp83867.h>
0011
0012 / {
0013 compatible = "ti,am654-evm", "ti,am654";
0014 model = "Texas Instruments AM654 Base Board";
0015
0016 chosen {
0017 stdout-path = "serial2:115200n8";
0018 bootargs = "earlycon=ns16550a,mmio32,0x02800000";
0019 };
0020
0021 memory@80000000 {
0022 device_type = "memory";
0023 /* 4G RAM */
0024 reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
0025 <0x00000008 0x80000000 0x00000000 0x80000000>;
0026 };
0027
0028 reserved-memory {
0029 #address-cells = <2>;
0030 #size-cells = <2>;
0031 ranges;
0032
0033 secure_ddr: secure-ddr@9e800000 {
0034 reg = <0 0x9e800000 0 0x01800000>; /* for OP-TEE */
0035 alignment = <0x1000>;
0036 no-map;
0037 };
0038
0039 mcu_r5fss0_core0_dma_memory_region: r5f-dma-memory@a0000000 {
0040 compatible = "shared-dma-pool";
0041 reg = <0 0xa0000000 0 0x100000>;
0042 no-map;
0043 };
0044
0045 mcu_r5fss0_core0_memory_region: r5f-memory@a0100000 {
0046 compatible = "shared-dma-pool";
0047 reg = <0 0xa0100000 0 0xf00000>;
0048 no-map;
0049 };
0050
0051 mcu_r5fss0_core1_dma_memory_region: r5f-dma-memory@a1000000 {
0052 compatible = "shared-dma-pool";
0053 reg = <0 0xa1000000 0 0x100000>;
0054 no-map;
0055 };
0056
0057 mcu_r5fss0_core1_memory_region: r5f-memory@a1100000 {
0058 compatible = "shared-dma-pool";
0059 reg = <0 0xa1100000 0 0xf00000>;
0060 no-map;
0061 };
0062
0063 rtos_ipc_memory_region: ipc-memories@a2000000 {
0064 reg = <0x00 0xa2000000 0x00 0x00100000>;
0065 alignment = <0x1000>;
0066 no-map;
0067 };
0068 };
0069
0070 gpio-keys {
0071 compatible = "gpio-keys";
0072 autorepeat;
0073 pinctrl-names = "default";
0074 pinctrl-0 = <&push_button_pins_default>;
0075
0076 switch-5 {
0077 label = "GPIO Key USER1";
0078 linux,code = <BTN_0>;
0079 gpios = <&wkup_gpio0 24 GPIO_ACTIVE_LOW>;
0080 };
0081
0082 switch-6 {
0083 label = "GPIO Key USER2";
0084 linux,code = <BTN_1>;
0085 gpios = <&wkup_gpio0 27 GPIO_ACTIVE_LOW>;
0086 };
0087 };
0088
0089 evm_12v0: fixedregulator-evm12v0 {
0090 /* main supply */
0091 compatible = "regulator-fixed";
0092 regulator-name = "evm_12v0";
0093 regulator-min-microvolt = <12000000>;
0094 regulator-max-microvolt = <12000000>;
0095 regulator-always-on;
0096 regulator-boot-on;
0097 };
0098
0099 vcc3v3_io: fixedregulator-vcc3v3io {
0100 /* Output of TPS54334 */
0101 compatible = "regulator-fixed";
0102 regulator-name = "vcc3v3_io";
0103 regulator-min-microvolt = <3300000>;
0104 regulator-max-microvolt = <3300000>;
0105 regulator-always-on;
0106 regulator-boot-on;
0107 vin-supply = <&evm_12v0>;
0108 };
0109
0110 vdd_mmc1_sd: fixedregulator-sd {
0111 compatible = "regulator-fixed";
0112 regulator-name = "vdd_mmc1_sd";
0113 regulator-min-microvolt = <3300000>;
0114 regulator-max-microvolt = <3300000>;
0115 regulator-boot-on;
0116 enable-active-high;
0117 vin-supply = <&vcc3v3_io>;
0118 gpio = <&pca9554 4 GPIO_ACTIVE_HIGH>;
0119 };
0120 };
0121
0122 &wkup_pmx0 {
0123 wkup_i2c0_pins_default: wkup-i2c0-pins-default {
0124 pinctrl-single,pins = <
0125 AM65X_WKUP_IOPAD(0x00e0, PIN_INPUT, 0) /* (AC7) WKUP_I2C0_SCL */
0126 AM65X_WKUP_IOPAD(0x00e4, PIN_INPUT, 0) /* (AD6) WKUP_I2C0_SDA */
0127 >;
0128 };
0129
0130 push_button_pins_default: push-button-pins-default {
0131 pinctrl-single,pins = <
0132 AM65X_WKUP_IOPAD(0x0030, PIN_INPUT, 7) /* (R5) WKUP_GPIO0_24 */
0133 AM65X_WKUP_IOPAD(0x003c, PIN_INPUT, 7) /* (P2) WKUP_GPIO0_27 */
0134 >;
0135 };
0136
0137 mcu_fss0_ospi0_pins_default: mcu-fss0-ospi0-pins-default {
0138 pinctrl-single,pins = <
0139 AM65X_WKUP_IOPAD(0x0000, PIN_OUTPUT, 0) /* (V1) MCU_OSPI0_CLK */
0140 AM65X_WKUP_IOPAD(0x0008, PIN_INPUT, 0) /* (U2) MCU_OSPI0_DQS */
0141 AM65X_WKUP_IOPAD(0x000c, PIN_INPUT, 0) /* (U4) MCU_OSPI0_D0 */
0142 AM65X_WKUP_IOPAD(0x0010, PIN_INPUT, 0) /* (U5) MCU_OSPI0_D1 */
0143 AM65X_WKUP_IOPAD(0x0014, PIN_INPUT, 0) /* (T2) MCU_OSPI0_D2 */
0144 AM65X_WKUP_IOPAD(0x0018, PIN_INPUT, 0) /* (T3) MCU_OSPI0_D3 */
0145 AM65X_WKUP_IOPAD(0x001c, PIN_INPUT, 0) /* (T4) MCU_OSPI0_D4 */
0146 AM65X_WKUP_IOPAD(0x0020, PIN_INPUT, 0) /* (T5) MCU_OSPI0_D5 */
0147 AM65X_WKUP_IOPAD(0x0024, PIN_INPUT, 0) /* (R2) MCU_OSPI0_D6 */
0148 AM65X_WKUP_IOPAD(0x0028, PIN_INPUT, 0) /* (R3) MCU_OSPI0_D7 */
0149 AM65X_WKUP_IOPAD(0x002c, PIN_OUTPUT, 0) /* (R4) MCU_OSPI0_CSn0 */
0150 >;
0151 };
0152
0153 wkup_pca554_default: wkup-pca554-default {
0154 pinctrl-single,pins = <
0155 AM65X_WKUP_IOPAD(0x0034, PIN_INPUT, 7) /* (T1) MCU_OSPI1_CLK.WKUP_GPIO0_25 */
0156 >;
0157 };
0158
0159 mcu_cpsw_pins_default: mcu-cpsw-pins-default {
0160 pinctrl-single,pins = <
0161 AM65X_WKUP_IOPAD(0x0058, PIN_OUTPUT, 0) /* (N4) MCU_RGMII1_TX_CTL */
0162 AM65X_WKUP_IOPAD(0x005c, PIN_INPUT, 0) /* (N5) MCU_RGMII1_RX_CTL */
0163 AM65X_WKUP_IOPAD(0x0060, PIN_OUTPUT, 0) /* (M2) MCU_RGMII1_TD3 */
0164 AM65X_WKUP_IOPAD(0x0064, PIN_OUTPUT, 0) /* (M3) MCU_RGMII1_TD2 */
0165 AM65X_WKUP_IOPAD(0x0068, PIN_OUTPUT, 0) /* (M4) MCU_RGMII1_TD1 */
0166 AM65X_WKUP_IOPAD(0x006c, PIN_OUTPUT, 0) /* (M5) MCU_RGMII1_TD0 */
0167 AM65X_WKUP_IOPAD(0x0078, PIN_INPUT, 0) /* (L2) MCU_RGMII1_RD3 */
0168 AM65X_WKUP_IOPAD(0x007c, PIN_INPUT, 0) /* (L5) MCU_RGMII1_RD2 */
0169 AM65X_WKUP_IOPAD(0x0080, PIN_INPUT, 0) /* (M6) MCU_RGMII1_RD1 */
0170 AM65X_WKUP_IOPAD(0x0084, PIN_INPUT, 0) /* (L6) MCU_RGMII1_RD0 */
0171 AM65X_WKUP_IOPAD(0x0070, PIN_OUTPUT, 0) /* (N1) MCU_RGMII1_TXC */
0172 AM65X_WKUP_IOPAD(0x0074, PIN_INPUT, 0) /* (M1) MCU_RGMII1_RXC */
0173 >;
0174 };
0175
0176 mcu_mdio_pins_default: mcu-mdio1-pins-default {
0177 pinctrl-single,pins = <
0178 AM65X_WKUP_IOPAD(0x008c, PIN_OUTPUT, 0) /* (L1) MCU_MDIO0_MDC */
0179 AM65X_WKUP_IOPAD(0x0088, PIN_INPUT, 0) /* (L4) MCU_MDIO0_MDIO */
0180 >;
0181 };
0182 };
0183
0184 &main_pmx0 {
0185 main_uart0_pins_default: main-uart0-pins-default {
0186 pinctrl-single,pins = <
0187 AM65X_IOPAD(0x01e4, PIN_INPUT, 0) /* (AF11) UART0_RXD */
0188 AM65X_IOPAD(0x01e8, PIN_OUTPUT, 0) /* (AE11) UART0_TXD */
0189 AM65X_IOPAD(0x01ec, PIN_INPUT, 0) /* (AG11) UART0_CTSn */
0190 AM65X_IOPAD(0x01f0, PIN_OUTPUT, 0) /* (AD11) UART0_RTSn */
0191 >;
0192 };
0193
0194 main_i2c2_pins_default: main-i2c2-pins-default {
0195 pinctrl-single,pins = <
0196 AM65X_IOPAD(0x0074, PIN_INPUT, 5) /* (T27) GPMC0_CSn3.I2C2_SCL */
0197 AM65X_IOPAD(0x0070, PIN_INPUT, 5) /* (R25) GPMC0_CSn2.I2C2_SDA */
0198 >;
0199 };
0200
0201 main_spi0_pins_default: main-spi0-pins-default {
0202 pinctrl-single,pins = <
0203 AM65X_IOPAD(0x01c4, PIN_INPUT, 0) /* (AH13) SPI0_CLK */
0204 AM65X_IOPAD(0x01c8, PIN_INPUT, 0) /* (AE13) SPI0_D0 */
0205 AM65X_IOPAD(0x01cc, PIN_INPUT, 0) /* (AD13) SPI0_D1 */
0206 AM65X_IOPAD(0x01bc, PIN_OUTPUT, 0) /* (AG13) SPI0_CS0 */
0207 >;
0208 };
0209
0210 main_mmc0_pins_default: main-mmc0-pins-default {
0211 pinctrl-single,pins = <
0212 AM65X_IOPAD(0x01a8, PIN_INPUT_PULLDOWN, 0) /* (B25) MMC0_CLK */
0213 AM65X_IOPAD(0x01ac, PIN_INPUT_PULLUP, 0) /* (B27) MMC0_CMD */
0214 AM65X_IOPAD(0x01a4, PIN_INPUT_PULLUP, 0) /* (A26) MMC0_DAT0 */
0215 AM65X_IOPAD(0x01a0, PIN_INPUT_PULLUP, 0) /* (E25) MMC0_DAT1 */
0216 AM65X_IOPAD(0x019c, PIN_INPUT_PULLUP, 0) /* (C26) MMC0_DAT2 */
0217 AM65X_IOPAD(0x0198, PIN_INPUT_PULLUP, 0) /* (A25) MMC0_DAT3 */
0218 AM65X_IOPAD(0x0194, PIN_INPUT_PULLUP, 0) /* (E24) MMC0_DAT4 */
0219 AM65X_IOPAD(0x0190, PIN_INPUT_PULLUP, 0) /* (A24) MMC0_DAT5 */
0220 AM65X_IOPAD(0x018c, PIN_INPUT_PULLUP, 0) /* (B26) MMC0_DAT6 */
0221 AM65X_IOPAD(0x0188, PIN_INPUT_PULLUP, 0) /* (D25) MMC0_DAT7 */
0222 AM65X_IOPAD(0x01b4, PIN_INPUT_PULLUP, 0) /* (A23) MMC0_SDCD */
0223 AM65X_IOPAD(0x01b0, PIN_INPUT, 0) /* (C25) MMC0_DS */
0224 >;
0225 };
0226
0227 main_mmc1_pins_default: main-mmc1-pins-default {
0228 pinctrl-single,pins = <
0229 AM65X_IOPAD(0x02d4, PIN_INPUT_PULLDOWN, 0) /* (C27) MMC1_CLK */
0230 AM65X_IOPAD(0x02d8, PIN_INPUT_PULLUP, 0) /* (C28) MMC1_CMD */
0231 AM65X_IOPAD(0x02d0, PIN_INPUT_PULLUP, 0) /* (D28) MMC1_DAT0 */
0232 AM65X_IOPAD(0x02cc, PIN_INPUT_PULLUP, 0) /* (E27) MMC1_DAT1 */
0233 AM65X_IOPAD(0x02c8, PIN_INPUT_PULLUP, 0) /* (D26) MMC1_DAT2 */
0234 AM65X_IOPAD(0x02c4, PIN_INPUT_PULLUP, 0) /* (D27) MMC1_DAT3 */
0235 AM65X_IOPAD(0x02dc, PIN_INPUT_PULLUP, 0) /* (B24) MMC1_SDCD */
0236 AM65X_IOPAD(0x02e0, PIN_INPUT, 0) /* (C24) MMC1_SDWP */
0237 >;
0238 };
0239
0240 usb1_pins_default: usb1-pins-default {
0241 pinctrl-single,pins = <
0242 AM65X_IOPAD(0x02c0, PIN_OUTPUT, 0) /* (AC8) USB1_DRVVBUS */
0243 >;
0244 };
0245 };
0246
0247 &main_pmx1 {
0248 main_i2c0_pins_default: main-i2c0-pins-default {
0249 pinctrl-single,pins = <
0250 AM65X_IOPAD(0x0000, PIN_INPUT, 0) /* (D20) I2C0_SCL */
0251 AM65X_IOPAD(0x0004, PIN_INPUT, 0) /* (C21) I2C0_SDA */
0252 >;
0253 };
0254
0255 main_i2c1_pins_default: main-i2c1-pins-default {
0256 pinctrl-single,pins = <
0257 AM65X_IOPAD(0x0008, PIN_INPUT, 0) /* (B21) I2C1_SCL */
0258 AM65X_IOPAD(0x000c, PIN_INPUT, 0) /* (E21) I2C1_SDA */
0259 >;
0260 };
0261
0262 ecap0_pins_default: ecap0-pins-default {
0263 pinctrl-single,pins = <
0264 AM65X_IOPAD(0x0010, PIN_INPUT, 0) /* (D21) ECAP0_IN_APWM_OUT */
0265 >;
0266 };
0267 };
0268
0269 &wkup_uart0 {
0270 /* Wakeup UART is used by System firmware */
0271 status = "reserved";
0272 };
0273
0274 &main_uart0 {
0275 pinctrl-names = "default";
0276 pinctrl-0 = <&main_uart0_pins_default>;
0277 power-domains = <&k3_pds 146 TI_SCI_PD_SHARED>;
0278 };
0279
0280 &wkup_i2c0 {
0281 pinctrl-names = "default";
0282 pinctrl-0 = <&wkup_i2c0_pins_default>;
0283 clock-frequency = <400000>;
0284
0285 pca9554: gpio@39 {
0286 compatible = "nxp,pca9554";
0287 reg = <0x39>;
0288 gpio-controller;
0289 #gpio-cells = <2>;
0290 pinctrl-names = "default";
0291 pinctrl-0 = <&wkup_pca554_default>;
0292 interrupt-parent = <&wkup_gpio0>;
0293 interrupts = <25 IRQ_TYPE_EDGE_FALLING>;
0294 interrupt-controller;
0295 #interrupt-cells = <2>;
0296 };
0297 };
0298
0299 &main_i2c0 {
0300 pinctrl-names = "default";
0301 pinctrl-0 = <&main_i2c0_pins_default>;
0302 clock-frequency = <400000>;
0303
0304 pca9555: gpio@21 {
0305 compatible = "nxp,pca9555";
0306 reg = <0x21>;
0307 gpio-controller;
0308 #gpio-cells = <2>;
0309 };
0310 };
0311
0312 &main_i2c1 {
0313 pinctrl-names = "default";
0314 pinctrl-0 = <&main_i2c1_pins_default>;
0315 clock-frequency = <400000>;
0316 };
0317
0318 &main_i2c2 {
0319 pinctrl-names = "default";
0320 pinctrl-0 = <&main_i2c2_pins_default>;
0321 clock-frequency = <400000>;
0322 };
0323
0324 &ecap0 {
0325 pinctrl-names = "default";
0326 pinctrl-0 = <&ecap0_pins_default>;
0327 };
0328
0329 &main_spi0 {
0330 pinctrl-names = "default";
0331 pinctrl-0 = <&main_spi0_pins_default>;
0332 #address-cells = <1>;
0333 #size-cells = <0>;
0334 ti,pindir-d0-out-d1-in;
0335
0336 flash@0 {
0337 compatible = "jedec,spi-nor";
0338 reg = <0x0>;
0339 spi-tx-bus-width = <1>;
0340 spi-rx-bus-width = <1>;
0341 spi-max-frequency = <48000000>;
0342 };
0343 };
0344
0345 &sdhci0 {
0346 pinctrl-names = "default";
0347 pinctrl-0 = <&main_mmc0_pins_default>;
0348 bus-width = <8>;
0349 non-removable;
0350 ti,driver-strength-ohm = <50>;
0351 disable-wp;
0352 };
0353
0354 /*
0355 * Because of erratas i2025 and i2026 for silicon revision 1.0, the
0356 * SD card interface might fail. Boards with sr1.0 are recommended to
0357 * disable sdhci1
0358 */
0359 &sdhci1 {
0360 vmmc-supply = <&vdd_mmc1_sd>;
0361 pinctrl-names = "default";
0362 pinctrl-0 = <&main_mmc1_pins_default>;
0363 ti,driver-strength-ohm = <50>;
0364 disable-wp;
0365 };
0366
0367 &usb1 {
0368 pinctrl-names = "default";
0369 pinctrl-0 = <&usb1_pins_default>;
0370 dr_mode = "otg";
0371 };
0372
0373 &dwc3_0 {
0374 status = "disabled";
0375 };
0376
0377 &usb0_phy {
0378 status = "disabled";
0379 };
0380
0381 &tscadc0 {
0382 adc {
0383 ti,adc-channels = <0 1 2 3 4 5 6 7>;
0384 };
0385 };
0386
0387 &tscadc1 {
0388 adc {
0389 ti,adc-channels = <0 1 2 3 4 5 6 7>;
0390 };
0391 };
0392
0393 &serdes0 {
0394 status = "disabled";
0395 };
0396
0397 &serdes1 {
0398 status = "disabled";
0399 };
0400
0401 &pcie0_rc {
0402 status = "disabled";
0403 };
0404
0405 &pcie0_ep {
0406 status = "disabled";
0407 };
0408
0409 &pcie1_rc {
0410 status = "disabled";
0411 };
0412
0413 &pcie1_ep {
0414 status = "disabled";
0415 };
0416
0417 &m_can0 {
0418 status = "disabled";
0419 };
0420
0421 &m_can1 {
0422 status = "disabled";
0423 };
0424
0425 &mailbox0_cluster0 {
0426 interrupts = <436>;
0427
0428 mbox_mcu_r5fss0_core0: mbox-mcu-r5fss0-core0 {
0429 ti,mbox-tx = <1 0 0>;
0430 ti,mbox-rx = <0 0 0>;
0431 };
0432 };
0433
0434 &mailbox0_cluster1 {
0435 interrupts = <432>;
0436
0437 mbox_mcu_r5fss0_core1: mbox-mcu-r5fss0-core1 {
0438 ti,mbox-tx = <1 0 0>;
0439 ti,mbox-rx = <0 0 0>;
0440 };
0441 };
0442
0443 &mailbox0_cluster2 {
0444 status = "disabled";
0445 };
0446
0447 &mailbox0_cluster3 {
0448 status = "disabled";
0449 };
0450
0451 &mailbox0_cluster4 {
0452 status = "disabled";
0453 };
0454
0455 &mailbox0_cluster5 {
0456 status = "disabled";
0457 };
0458
0459 &mailbox0_cluster6 {
0460 status = "disabled";
0461 };
0462
0463 &mailbox0_cluster7 {
0464 status = "disabled";
0465 };
0466
0467 &mailbox0_cluster8 {
0468 status = "disabled";
0469 };
0470
0471 &mailbox0_cluster9 {
0472 status = "disabled";
0473 };
0474
0475 &mailbox0_cluster10 {
0476 status = "disabled";
0477 };
0478
0479 &mailbox0_cluster11 {
0480 status = "disabled";
0481 };
0482
0483 &mcu_r5fss0_core0 {
0484 memory-region = <&mcu_r5fss0_core0_dma_memory_region>,
0485 <&mcu_r5fss0_core0_memory_region>;
0486 mboxes = <&mailbox0_cluster0 &mbox_mcu_r5fss0_core0>;
0487 };
0488
0489 &mcu_r5fss0_core1 {
0490 memory-region = <&mcu_r5fss0_core1_dma_memory_region>,
0491 <&mcu_r5fss0_core1_memory_region>;
0492 mboxes = <&mailbox0_cluster1 &mbox_mcu_r5fss0_core1>;
0493 };
0494
0495 &ospi0 {
0496 pinctrl-names = "default";
0497 pinctrl-0 = <&mcu_fss0_ospi0_pins_default>;
0498
0499 flash@0 {
0500 compatible = "jedec,spi-nor";
0501 reg = <0x0>;
0502 spi-tx-bus-width = <8>;
0503 spi-rx-bus-width = <8>;
0504 spi-max-frequency = <25000000>;
0505 cdns,tshsl-ns = <60>;
0506 cdns,tsd2d-ns = <60>;
0507 cdns,tchsh-ns = <60>;
0508 cdns,tslch-ns = <60>;
0509 cdns,read-delay = <0>;
0510 };
0511 };
0512
0513 &mcu_cpsw {
0514 pinctrl-names = "default";
0515 pinctrl-0 = <&mcu_cpsw_pins_default &mcu_mdio_pins_default>;
0516 };
0517
0518 &davinci_mdio {
0519 phy0: ethernet-phy@0 {
0520 reg = <0>;
0521 ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
0522 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
0523 };
0524 };
0525
0526 &cpsw_port1 {
0527 phy-mode = "rgmii-rxid";
0528 phy-handle = <&phy0>;
0529 };
0530
0531 &mcasp0 {
0532 status = "disabled";
0533 };
0534
0535 &mcasp1 {
0536 status = "disabled";
0537 };
0538
0539 &mcasp2 {
0540 status = "disabled";
0541 };
0542
0543 &dss {
0544 status = "disabled";
0545 };
0546
0547 &icssg0_mdio {
0548 status = "disabled";
0549 };
0550
0551 &icssg1_mdio {
0552 status = "disabled";
0553 };
0554
0555 &icssg2_mdio {
0556 status = "disabled";
0557 };