xref: /openbmc/linux/arch/arm64/boot/dts/ti/k3-am642-evm.dts (revision 1e6550d35c245e10c3a8fd7c7a9f96d7b905ba05)
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