1*1e6550d3SDave Gerlach// SPDX-License-Identifier: GPL-2.0 2*1e6550d3SDave Gerlach/* 3*1e6550d3SDave Gerlach * Copyright (C) 2020-2021 Texas Instruments Incorporated - https://www.ti.com/ 4*1e6550d3SDave Gerlach */ 5*1e6550d3SDave Gerlach 6*1e6550d3SDave Gerlach/dts-v1/; 7*1e6550d3SDave Gerlach 8*1e6550d3SDave Gerlach#include <dt-bindings/leds/common.h> 9*1e6550d3SDave Gerlach#include "k3-am642.dtsi" 10*1e6550d3SDave Gerlach 11*1e6550d3SDave Gerlach/ { 12*1e6550d3SDave Gerlach compatible = "ti,am642-evm", "ti,am642"; 13*1e6550d3SDave Gerlach model = "Texas Instruments AM642 EVM"; 14*1e6550d3SDave Gerlach 15*1e6550d3SDave Gerlach chosen { 16*1e6550d3SDave Gerlach stdout-path = "serial2:115200n8"; 17*1e6550d3SDave Gerlach bootargs = "console=ttyS2,115200n8 earlycon=ns16550a,mmio32,0x02800000"; 18*1e6550d3SDave Gerlach }; 19*1e6550d3SDave Gerlach 20*1e6550d3SDave Gerlach memory@80000000 { 21*1e6550d3SDave Gerlach device_type = "memory"; 22*1e6550d3SDave Gerlach /* 2G RAM */ 23*1e6550d3SDave Gerlach reg = <0x00000000 0x80000000 0x00000000 0x80000000>; 24*1e6550d3SDave Gerlach 25*1e6550d3SDave Gerlach }; 26*1e6550d3SDave Gerlach 27*1e6550d3SDave Gerlach reserved-memory { 28*1e6550d3SDave Gerlach #address-cells = <2>; 29*1e6550d3SDave Gerlach #size-cells = <2>; 30*1e6550d3SDave Gerlach ranges; 31*1e6550d3SDave Gerlach 32*1e6550d3SDave Gerlach secure_ddr: optee@9e800000 { 33*1e6550d3SDave Gerlach reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */ 34*1e6550d3SDave Gerlach alignment = <0x1000>; 35*1e6550d3SDave Gerlach no-map; 36*1e6550d3SDave Gerlach }; 37*1e6550d3SDave Gerlach }; 38*1e6550d3SDave Gerlach 39*1e6550d3SDave Gerlach evm_12v0: fixedregulator-evm12v0 { 40*1e6550d3SDave Gerlach /* main DC jack */ 41*1e6550d3SDave Gerlach compatible = "regulator-fixed"; 42*1e6550d3SDave Gerlach regulator-name = "evm_12v0"; 43*1e6550d3SDave Gerlach regulator-min-microvolt = <12000000>; 44*1e6550d3SDave Gerlach regulator-max-microvolt = <12000000>; 45*1e6550d3SDave Gerlach regulator-always-on; 46*1e6550d3SDave Gerlach regulator-boot-on; 47*1e6550d3SDave Gerlach }; 48*1e6550d3SDave Gerlach 49*1e6550d3SDave Gerlach vsys_5v0: fixedregulator-vsys5v0 { 50*1e6550d3SDave Gerlach /* output of LM5140 */ 51*1e6550d3SDave Gerlach compatible = "regulator-fixed"; 52*1e6550d3SDave Gerlach regulator-name = "vsys_5v0"; 53*1e6550d3SDave Gerlach regulator-min-microvolt = <5000000>; 54*1e6550d3SDave Gerlach regulator-max-microvolt = <5000000>; 55*1e6550d3SDave Gerlach vin-supply = <&evm_12v0>; 56*1e6550d3SDave Gerlach regulator-always-on; 57*1e6550d3SDave Gerlach regulator-boot-on; 58*1e6550d3SDave Gerlach }; 59*1e6550d3SDave Gerlach 60*1e6550d3SDave Gerlach vsys_3v3: fixedregulator-vsys3v3 { 61*1e6550d3SDave Gerlach /* output of LM5140 */ 62*1e6550d3SDave Gerlach compatible = "regulator-fixed"; 63*1e6550d3SDave Gerlach regulator-name = "vsys_3v3"; 64*1e6550d3SDave Gerlach regulator-min-microvolt = <3300000>; 65*1e6550d3SDave Gerlach regulator-max-microvolt = <3300000>; 66*1e6550d3SDave Gerlach vin-supply = <&evm_12v0>; 67*1e6550d3SDave Gerlach regulator-always-on; 68*1e6550d3SDave Gerlach regulator-boot-on; 69*1e6550d3SDave Gerlach }; 70*1e6550d3SDave Gerlach 71*1e6550d3SDave Gerlach vdd_mmc1: fixed-regulator-sd { 72*1e6550d3SDave Gerlach /* TPS2051BD */ 73*1e6550d3SDave Gerlach compatible = "regulator-fixed"; 74*1e6550d3SDave Gerlach regulator-name = "vdd_mmc1"; 75*1e6550d3SDave Gerlach regulator-min-microvolt = <3300000>; 76*1e6550d3SDave Gerlach regulator-max-microvolt = <3300000>; 77*1e6550d3SDave Gerlach regulator-boot-on; 78*1e6550d3SDave Gerlach enable-active-high; 79*1e6550d3SDave Gerlach vin-supply = <&vsys_3v3>; 80*1e6550d3SDave Gerlach gpio = <&exp1 6 GPIO_ACTIVE_HIGH>; 81*1e6550d3SDave Gerlach }; 82*1e6550d3SDave Gerlach 83*1e6550d3SDave Gerlach vddb: fixedregulator-vddb { 84*1e6550d3SDave Gerlach compatible = "regulator-fixed"; 85*1e6550d3SDave Gerlach regulator-name = "vddb_3v3_display"; 86*1e6550d3SDave Gerlach regulator-min-microvolt = <3300000>; 87*1e6550d3SDave Gerlach regulator-max-microvolt = <3300000>; 88*1e6550d3SDave Gerlach vin-supply = <&vsys_3v3>; 89*1e6550d3SDave Gerlach regulator-always-on; 90*1e6550d3SDave Gerlach regulator-boot-on; 91*1e6550d3SDave Gerlach }; 92*1e6550d3SDave Gerlach 93*1e6550d3SDave Gerlach leds { 94*1e6550d3SDave Gerlach compatible = "gpio-leds"; 95*1e6550d3SDave Gerlach 96*1e6550d3SDave Gerlach led-0 { 97*1e6550d3SDave Gerlach label = "am64-evm:red:heartbeat"; 98*1e6550d3SDave Gerlach gpios = <&exp1 16 GPIO_ACTIVE_HIGH>; 99*1e6550d3SDave Gerlach linux,default-trigger = "heartbeat"; 100*1e6550d3SDave Gerlach function = LED_FUNCTION_HEARTBEAT; 101*1e6550d3SDave Gerlach default-state = "off"; 102*1e6550d3SDave Gerlach }; 103*1e6550d3SDave Gerlach }; 104*1e6550d3SDave Gerlach}; 105*1e6550d3SDave Gerlach 106*1e6550d3SDave Gerlach&main_pmx0 { 107*1e6550d3SDave Gerlach main_mmc1_pins_default: main-mmc1-pins-default { 108*1e6550d3SDave Gerlach pinctrl-single,pins = < 109*1e6550d3SDave Gerlach AM64X_IOPAD(0x0294, PIN_INPUT_PULLUP, 0) /* (J19) MMC1_CMD */ 110*1e6550d3SDave Gerlach AM64X_IOPAD(0x028c, PIN_INPUT_PULLDOWN, 0) /* (L20) MMC1_CLK */ 111*1e6550d3SDave Gerlach AM64X_IOPAD(0x0288, PIN_INPUT_PULLUP, 0) /* (K21) MMC1_DAT0 */ 112*1e6550d3SDave Gerlach AM64X_IOPAD(0x0284, PIN_INPUT_PULLUP, 0) /* (L21) MMC1_DAT1 */ 113*1e6550d3SDave Gerlach AM64X_IOPAD(0x0280, PIN_INPUT_PULLUP, 0) /* (K19) MMC1_DAT2 */ 114*1e6550d3SDave Gerlach AM64X_IOPAD(0x027c, PIN_INPUT_PULLUP, 0) /* (K18) MMC1_DAT3 */ 115*1e6550d3SDave Gerlach AM64X_IOPAD(0x0298, PIN_INPUT_PULLUP, 0) /* (D19) MMC1_SDCD */ 116*1e6550d3SDave Gerlach AM64X_IOPAD(0x029c, PIN_INPUT, 0) /* (C20) MMC1_SDWP */ 117*1e6550d3SDave Gerlach AM64X_IOPAD(0x0290, PIN_INPUT, 0) /* MMC1_CLKLB */ 118*1e6550d3SDave Gerlach >; 119*1e6550d3SDave Gerlach }; 120*1e6550d3SDave Gerlach 121*1e6550d3SDave Gerlach main_uart0_pins_default: main-uart0-pins-default { 122*1e6550d3SDave Gerlach pinctrl-single,pins = < 123*1e6550d3SDave Gerlach AM64X_IOPAD(0x0238, PIN_INPUT, 0) /* (B16) UART0_CTSn */ 124*1e6550d3SDave Gerlach AM64X_IOPAD(0x023c, PIN_OUTPUT, 0) /* (A16) UART0_RTSn */ 125*1e6550d3SDave Gerlach AM64X_IOPAD(0x0230, PIN_INPUT, 0) /* (D15) UART0_RXD */ 126*1e6550d3SDave Gerlach AM64X_IOPAD(0x0234, PIN_OUTPUT, 0) /* (C16) UART0_TXD */ 127*1e6550d3SDave Gerlach >; 128*1e6550d3SDave Gerlach }; 129*1e6550d3SDave Gerlach 130*1e6550d3SDave Gerlach main_i2c1_pins_default: main-i2c1-pins-default { 131*1e6550d3SDave Gerlach pinctrl-single,pins = < 132*1e6550d3SDave Gerlach AM64X_IOPAD(0x0268, PIN_INPUT_PULLUP, 0) /* (C18) I2C1_SCL */ 133*1e6550d3SDave Gerlach AM64X_IOPAD(0x026c, PIN_INPUT_PULLUP, 0) /* (B19) I2C1_SDA */ 134*1e6550d3SDave Gerlach >; 135*1e6550d3SDave Gerlach }; 136*1e6550d3SDave Gerlach}; 137*1e6550d3SDave Gerlach 138*1e6550d3SDave Gerlach&main_uart0 { 139*1e6550d3SDave Gerlach pinctrl-names = "default"; 140*1e6550d3SDave Gerlach pinctrl-0 = <&main_uart0_pins_default>; 141*1e6550d3SDave Gerlach}; 142*1e6550d3SDave Gerlach 143*1e6550d3SDave Gerlach/* main_uart1 is reserved for firmware usage */ 144*1e6550d3SDave Gerlach&main_uart1 { 145*1e6550d3SDave Gerlach status = "reserved"; 146*1e6550d3SDave Gerlach}; 147*1e6550d3SDave Gerlach 148*1e6550d3SDave Gerlach&main_uart2 { 149*1e6550d3SDave Gerlach status = "disabled"; 150*1e6550d3SDave Gerlach}; 151*1e6550d3SDave Gerlach 152*1e6550d3SDave Gerlach&main_uart3 { 153*1e6550d3SDave Gerlach status = "disabled"; 154*1e6550d3SDave Gerlach}; 155*1e6550d3SDave Gerlach 156*1e6550d3SDave Gerlach&main_uart4 { 157*1e6550d3SDave Gerlach status = "disabled"; 158*1e6550d3SDave Gerlach}; 159*1e6550d3SDave Gerlach 160*1e6550d3SDave Gerlach&main_uart5 { 161*1e6550d3SDave Gerlach status = "disabled"; 162*1e6550d3SDave Gerlach}; 163*1e6550d3SDave Gerlach 164*1e6550d3SDave Gerlach&main_uart6 { 165*1e6550d3SDave Gerlach status = "disabled"; 166*1e6550d3SDave Gerlach}; 167*1e6550d3SDave Gerlach 168*1e6550d3SDave Gerlach&mcu_uart0 { 169*1e6550d3SDave Gerlach status = "disabled"; 170*1e6550d3SDave Gerlach}; 171*1e6550d3SDave Gerlach 172*1e6550d3SDave Gerlach&mcu_uart1 { 173*1e6550d3SDave Gerlach status = "disabled"; 174*1e6550d3SDave Gerlach}; 175*1e6550d3SDave Gerlach 176*1e6550d3SDave Gerlach&main_i2c1 { 177*1e6550d3SDave Gerlach pinctrl-names = "default"; 178*1e6550d3SDave Gerlach pinctrl-0 = <&main_i2c1_pins_default>; 179*1e6550d3SDave Gerlach clock-frequency = <400000>; 180*1e6550d3SDave Gerlach 181*1e6550d3SDave Gerlach exp1: gpio@22 { 182*1e6550d3SDave Gerlach compatible = "ti,tca6424"; 183*1e6550d3SDave Gerlach reg = <0x22>; 184*1e6550d3SDave Gerlach gpio-controller; 185*1e6550d3SDave Gerlach #gpio-cells = <2>; 186*1e6550d3SDave Gerlach gpio-line-names = "GPIO_eMMC_RSTn", "CAN_MUX_SEL", 187*1e6550d3SDave Gerlach "GPIO_CPSW1_RST", "GPIO_RGMII1_RST", 188*1e6550d3SDave Gerlach "GPIO_RGMII2_RST", "GPIO_PCIe_RST_OUT", 189*1e6550d3SDave Gerlach "MMC1_SD_EN", "FSI_FET_SEL", 190*1e6550d3SDave Gerlach "MCAN0_STB_3V3", "MCAN1_STB_3V3", 191*1e6550d3SDave Gerlach "CPSW_FET_SEL", "CPSW_FET2_SEL", 192*1e6550d3SDave Gerlach "PRG1_RGMII2_FET_SEL", "TEST_GPIO2", 193*1e6550d3SDave Gerlach "GPIO_OLED_RESETn", "VPP_LDO_EN", 194*1e6550d3SDave Gerlach "TEST_LED1", "TP92", "TP90", "TP88", 195*1e6550d3SDave Gerlach "TP87", "TP86", "TP89", "TP91"; 196*1e6550d3SDave Gerlach }; 197*1e6550d3SDave Gerlach 198*1e6550d3SDave Gerlach /* osd9616p0899-10 */ 199*1e6550d3SDave Gerlach display@3c { 200*1e6550d3SDave Gerlach compatible = "solomon,ssd1306fb-i2c"; 201*1e6550d3SDave Gerlach reg = <0x3c>; 202*1e6550d3SDave Gerlach reset-gpios = <&exp1 14 GPIO_ACTIVE_LOW>; 203*1e6550d3SDave Gerlach vbat-supply = <&vddb>; 204*1e6550d3SDave Gerlach solomon,height = <16>; 205*1e6550d3SDave Gerlach solomon,width = <96>; 206*1e6550d3SDave Gerlach solomon,com-seq; 207*1e6550d3SDave Gerlach solomon,com-invdir; 208*1e6550d3SDave Gerlach solomon,page-offset = <0>; 209*1e6550d3SDave Gerlach solomon,prechargep1 = <2>; 210*1e6550d3SDave Gerlach solomon,prechargep2 = <13>; 211*1e6550d3SDave Gerlach }; 212*1e6550d3SDave Gerlach}; 213*1e6550d3SDave Gerlach 214*1e6550d3SDave Gerlach&mcu_i2c0 { 215*1e6550d3SDave Gerlach status = "disabled"; 216*1e6550d3SDave Gerlach}; 217*1e6550d3SDave Gerlach 218*1e6550d3SDave Gerlach&mcu_i2c1 { 219*1e6550d3SDave Gerlach status = "disabled"; 220*1e6550d3SDave Gerlach}; 221*1e6550d3SDave Gerlach 222*1e6550d3SDave Gerlach&mcu_spi0 { 223*1e6550d3SDave Gerlach status = "disabled"; 224*1e6550d3SDave Gerlach}; 225*1e6550d3SDave Gerlach 226*1e6550d3SDave Gerlach&mcu_spi1 { 227*1e6550d3SDave Gerlach status = "disabled"; 228*1e6550d3SDave Gerlach}; 229*1e6550d3SDave Gerlach 230*1e6550d3SDave Gerlach&sdhci0 { 231*1e6550d3SDave Gerlach /* emmc */ 232*1e6550d3SDave Gerlach bus-width = <8>; 233*1e6550d3SDave Gerlach non-removable; 234*1e6550d3SDave Gerlach ti,driver-strength-ohm = <50>; 235*1e6550d3SDave Gerlach disable-wp; 236*1e6550d3SDave Gerlach}; 237*1e6550d3SDave Gerlach 238*1e6550d3SDave Gerlach&sdhci1 { 239*1e6550d3SDave Gerlach /* SD/MMC */ 240*1e6550d3SDave Gerlach vmmc-supply = <&vdd_mmc1>; 241*1e6550d3SDave Gerlach pinctrl-names = "default"; 242*1e6550d3SDave Gerlach bus-width = <4>; 243*1e6550d3SDave Gerlach pinctrl-0 = <&main_mmc1_pins_default>; 244*1e6550d3SDave Gerlach ti,driver-strength-ohm = <50>; 245*1e6550d3SDave Gerlach disable-wp; 246*1e6550d3SDave Gerlach}; 247