blob: fe2ea25b396f326c88c4ed1111831d1d013b4442 [file] [log] [blame]
Dave Gerlachfbdf3752021-04-23 11:27:45 -05001// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (C) 2020-2021 Texas Instruments Incorporated - https://www.ti.com/
4 */
5
6/dts-v1/;
7
Tom Rinif8276452021-09-10 17:37:43 -04008#include <dt-bindings/phy/phy.h>
Dave Gerlachfbdf3752021-04-23 11:27:45 -05009#include <dt-bindings/leds/common.h>
Vignesh Raghavendra759316f2021-05-10 20:06:12 +053010#include <dt-bindings/gpio/gpio.h>
11#include <dt-bindings/net/ti-dp83867.h>
Dave Gerlachfbdf3752021-04-23 11:27:45 -050012#include "k3-am642.dtsi"
Nishanth Menon8a8a2c02023-09-11 09:43:59 -050013#include "k3-serdes.h"
Dave Gerlachfbdf3752021-04-23 11:27:45 -050014
15/ {
Roger Quadros8bacb0f2023-01-24 11:43:25 +020016 compatible = "ti,am642-evm", "ti,am642";
Dave Gerlachfbdf3752021-04-23 11:27:45 -050017 model = "Texas Instruments AM642 EVM";
18
19 chosen {
Roger Quadrosaf6e2a72023-08-05 11:14:40 +030020 stdout-path = &main_uart0;
Dave Gerlachfbdf3752021-04-23 11:27:45 -050021 };
22
Roger Quadrosaf6e2a72023-08-05 11:14:40 +030023 aliases {
24 serial0 = &mcu_uart0;
25 serial1 = &main_uart1;
26 serial2 = &main_uart0;
27 serial3 = &main_uart3;
28 i2c0 = &main_i2c0;
29 i2c1 = &main_i2c1;
30 mmc0 = &sdhci0;
31 mmc1 = &sdhci1;
32 ethernet0 = &cpsw_port1;
33 ethernet1 = &cpsw_port2;
34 };
35
Dave Gerlachfbdf3752021-04-23 11:27:45 -050036 memory@80000000 {
37 device_type = "memory";
38 /* 2G RAM */
39 reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
Dave Gerlachfbdf3752021-04-23 11:27:45 -050040 };
41
42 reserved-memory {
43 #address-cells = <2>;
44 #size-cells = <2>;
45 ranges;
46
47 secure_ddr: optee@9e800000 {
48 reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
49 alignment = <0x1000>;
50 no-map;
51 };
Tom Rinif8276452021-09-10 17:37:43 -040052
53 main_r5fss0_core0_dma_memory_region: r5f-dma-memory@a0000000 {
54 compatible = "shared-dma-pool";
55 reg = <0x00 0xa0000000 0x00 0x100000>;
56 no-map;
57 };
58
59 main_r5fss0_core0_memory_region: r5f-memory@a0100000 {
60 compatible = "shared-dma-pool";
61 reg = <0x00 0xa0100000 0x00 0xf00000>;
62 no-map;
63 };
64
65 main_r5fss0_core1_dma_memory_region: r5f-dma-memory@a1000000 {
66 compatible = "shared-dma-pool";
67 reg = <0x00 0xa1000000 0x00 0x100000>;
68 no-map;
69 };
70
71 main_r5fss0_core1_memory_region: r5f-memory@a1100000 {
72 compatible = "shared-dma-pool";
73 reg = <0x00 0xa1100000 0x00 0xf00000>;
74 no-map;
75 };
76
77 main_r5fss1_core0_dma_memory_region: r5f-dma-memory@a2000000 {
78 compatible = "shared-dma-pool";
79 reg = <0x00 0xa2000000 0x00 0x100000>;
80 no-map;
81 };
82
83 main_r5fss1_core0_memory_region: r5f-memory@a2100000 {
84 compatible = "shared-dma-pool";
85 reg = <0x00 0xa2100000 0x00 0xf00000>;
86 no-map;
87 };
88
89 main_r5fss1_core1_dma_memory_region: r5f-dma-memory@a3000000 {
90 compatible = "shared-dma-pool";
91 reg = <0x00 0xa3000000 0x00 0x100000>;
92 no-map;
93 };
94
95 main_r5fss1_core1_memory_region: r5f-memory@a3100000 {
96 compatible = "shared-dma-pool";
97 reg = <0x00 0xa3100000 0x00 0xf00000>;
98 no-map;
99 };
100
101 rtos_ipc_memory_region: ipc-memories@a5000000 {
102 reg = <0x00 0xa5000000 0x00 0x00800000>;
103 alignment = <0x1000>;
104 no-map;
105 };
Dave Gerlachfbdf3752021-04-23 11:27:45 -0500106 };
107
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300108 evm_12v0: regulator-0 {
Dave Gerlachfbdf3752021-04-23 11:27:45 -0500109 /* main DC jack */
110 compatible = "regulator-fixed";
111 regulator-name = "evm_12v0";
112 regulator-min-microvolt = <12000000>;
113 regulator-max-microvolt = <12000000>;
114 regulator-always-on;
115 regulator-boot-on;
116 };
117
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300118 vsys_5v0: regulator-1 {
Dave Gerlachfbdf3752021-04-23 11:27:45 -0500119 /* output of LM5140 */
120 compatible = "regulator-fixed";
121 regulator-name = "vsys_5v0";
122 regulator-min-microvolt = <5000000>;
123 regulator-max-microvolt = <5000000>;
124 vin-supply = <&evm_12v0>;
125 regulator-always-on;
126 regulator-boot-on;
127 };
128
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300129 vsys_3v3: regulator-2 {
Dave Gerlachfbdf3752021-04-23 11:27:45 -0500130 /* output of LM5140 */
131 compatible = "regulator-fixed";
132 regulator-name = "vsys_3v3";
133 regulator-min-microvolt = <3300000>;
134 regulator-max-microvolt = <3300000>;
135 vin-supply = <&evm_12v0>;
136 regulator-always-on;
137 regulator-boot-on;
138 };
139
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300140 vdd_mmc1: regulator-3 {
Dave Gerlachfbdf3752021-04-23 11:27:45 -0500141 /* TPS2051BD */
142 compatible = "regulator-fixed";
143 regulator-name = "vdd_mmc1";
144 regulator-min-microvolt = <3300000>;
145 regulator-max-microvolt = <3300000>;
146 regulator-boot-on;
147 enable-active-high;
148 vin-supply = <&vsys_3v3>;
149 gpio = <&exp1 6 GPIO_ACTIVE_HIGH>;
150 };
151
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300152 vddb: regulator-4 {
Dave Gerlachfbdf3752021-04-23 11:27:45 -0500153 compatible = "regulator-fixed";
154 regulator-name = "vddb_3v3_display";
155 regulator-min-microvolt = <3300000>;
156 regulator-max-microvolt = <3300000>;
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300157 vin-supply = <&vsys_3v3>;
158 regulator-always-on;
159 regulator-boot-on;
160 };
161
162 vtt_supply: regulator-5 {
163 compatible = "regulator-fixed";
164 regulator-name = "vtt";
165 pinctrl-names = "default";
166 pinctrl-0 = <&ddr_vtt_pins_default>;
167 regulator-min-microvolt = <3300000>;
168 regulator-max-microvolt = <3300000>;
169 gpio = <&main_gpio0 12 GPIO_ACTIVE_HIGH>;
Dave Gerlachfbdf3752021-04-23 11:27:45 -0500170 vin-supply = <&vsys_3v3>;
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300171 enable-active-high;
Dave Gerlachfbdf3752021-04-23 11:27:45 -0500172 regulator-always-on;
173 regulator-boot-on;
174 };
175
176 leds {
177 compatible = "gpio-leds";
178
179 led-0 {
180 label = "am64-evm:red:heartbeat";
181 gpios = <&exp1 16 GPIO_ACTIVE_HIGH>;
182 linux,default-trigger = "heartbeat";
183 function = LED_FUNCTION_HEARTBEAT;
184 default-state = "off";
185 };
186 };
Vignesh Raghavendra759316f2021-05-10 20:06:12 +0530187
188 mdio_mux: mux-controller {
189 compatible = "gpio-mux";
190 #mux-control-cells = <0>;
191
192 mux-gpios = <&exp1 12 GPIO_ACTIVE_HIGH>;
193 };
194
195 mdio-mux-1 {
196 compatible = "mdio-mux-multiplexer";
197 mux-controls = <&mdio_mux>;
198 mdio-parent-bus = <&cpsw3g_mdio>;
199 #address-cells = <1>;
200 #size-cells = <0>;
201
202 mdio@1 {
203 reg = <0x1>;
204 #address-cells = <1>;
205 #size-cells = <0>;
206
207 cpsw3g_phy3: ethernet-phy@3 {
208 reg = <3>;
209 };
210 };
211 };
Roger Quadros8bacb0f2023-01-24 11:43:25 +0200212
213 transceiver1: can-phy0 {
214 compatible = "ti,tcan1042";
215 #phy-cells = <0>;
216 max-bitrate = <5000000>;
217 standby-gpios = <&exp1 8 GPIO_ACTIVE_HIGH>;
218 };
219
220 transceiver2: can-phy1 {
221 compatible = "ti,tcan1042";
222 #phy-cells = <0>;
223 max-bitrate = <5000000>;
224 standby-gpios = <&exp1 9 GPIO_ACTIVE_HIGH>;
225 };
Dave Gerlachfbdf3752021-04-23 11:27:45 -0500226};
227
228&main_pmx0 {
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300229 main_mmc1_pins_default: main-mmc1-default-pins {
Dave Gerlachfbdf3752021-04-23 11:27:45 -0500230 pinctrl-single,pins = <
231 AM64X_IOPAD(0x0294, PIN_INPUT_PULLUP, 0) /* (J19) MMC1_CMD */
232 AM64X_IOPAD(0x028c, PIN_INPUT_PULLDOWN, 0) /* (L20) MMC1_CLK */
233 AM64X_IOPAD(0x0288, PIN_INPUT_PULLUP, 0) /* (K21) MMC1_DAT0 */
234 AM64X_IOPAD(0x0284, PIN_INPUT_PULLUP, 0) /* (L21) MMC1_DAT1 */
235 AM64X_IOPAD(0x0280, PIN_INPUT_PULLUP, 0) /* (K19) MMC1_DAT2 */
236 AM64X_IOPAD(0x027c, PIN_INPUT_PULLUP, 0) /* (K18) MMC1_DAT3 */
237 AM64X_IOPAD(0x0298, PIN_INPUT_PULLUP, 0) /* (D19) MMC1_SDCD */
238 AM64X_IOPAD(0x029c, PIN_INPUT, 0) /* (C20) MMC1_SDWP */
239 AM64X_IOPAD(0x0290, PIN_INPUT, 0) /* MMC1_CLKLB */
240 >;
241 };
242
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300243 main_uart1_pins_default: main-uart1-default-pins {
244 pinctrl-single,pins = <
245 AM64X_IOPAD(0x0248, PIN_INPUT, 0) /* (D16) UART1_CTSn */
246 AM64X_IOPAD(0x024c, PIN_OUTPUT, 0) /* (E16) UART1_RTSn */
247 AM64X_IOPAD(0x0240, PIN_INPUT, 0) /* (E15) UART1_RXD */
248 AM64X_IOPAD(0x0244, PIN_OUTPUT, 0) /* (E14) UART1_TXD */
249 >;
250 };
251
252 main_uart0_pins_default: main-uart0-default-pins {
Dave Gerlachfbdf3752021-04-23 11:27:45 -0500253 pinctrl-single,pins = <
254 AM64X_IOPAD(0x0238, PIN_INPUT, 0) /* (B16) UART0_CTSn */
255 AM64X_IOPAD(0x023c, PIN_OUTPUT, 0) /* (A16) UART0_RTSn */
256 AM64X_IOPAD(0x0230, PIN_INPUT, 0) /* (D15) UART0_RXD */
257 AM64X_IOPAD(0x0234, PIN_OUTPUT, 0) /* (C16) UART0_TXD */
258 >;
259 };
260
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300261 main_spi0_pins_default: main-spi0-default-pins {
Tom Rinif8276452021-09-10 17:37:43 -0400262 pinctrl-single,pins = <
263 AM64X_IOPAD(0x0210, PIN_INPUT, 0) /* (D13) SPI0_CLK */
264 AM64X_IOPAD(0x0208, PIN_OUTPUT, 0) /* (D12) SPI0_CS0 */
265 AM64X_IOPAD(0x0214, PIN_OUTPUT, 0) /* (A13) SPI0_D0 */
266 AM64X_IOPAD(0x0218, PIN_INPUT, 0) /* (A14) SPI0_D1 */
267 >;
268 };
269
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300270 main_i2c0_pins_default: main-i2c0-default-pins {
271 pinctrl-single,pins = <
272 AM64X_IOPAD(0x0260, PIN_INPUT_PULLUP, 0) /* (A18) I2C0_SCL */
273 AM64X_IOPAD(0x0264, PIN_INPUT_PULLUP, 0) /* (B18) I2C0_SDA */
274 >;
275 };
276
277 main_i2c1_pins_default: main-i2c1-default-pins {
Dave Gerlachfbdf3752021-04-23 11:27:45 -0500278 pinctrl-single,pins = <
279 AM64X_IOPAD(0x0268, PIN_INPUT_PULLUP, 0) /* (C18) I2C1_SCL */
280 AM64X_IOPAD(0x026c, PIN_INPUT_PULLUP, 0) /* (B19) I2C1_SDA */
281 >;
282 };
Vignesh Raghavendra759316f2021-05-10 20:06:12 +0530283
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300284 mdio1_pins_default: mdio1-default-pins {
Vignesh Raghavendra759316f2021-05-10 20:06:12 +0530285 pinctrl-single,pins = <
286 AM64X_IOPAD(0x01fc, PIN_OUTPUT, 4) /* (R2) PRG0_PRU1_GPO19.MDIO0_MDC */
287 AM64X_IOPAD(0x01f8, PIN_INPUT, 4) /* (P5) PRG0_PRU1_GPO18.MDIO0_MDIO */
288 >;
289 };
290
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300291 rgmii1_pins_default: rgmii1-default-pins {
Vignesh Raghavendra759316f2021-05-10 20:06:12 +0530292 pinctrl-single,pins = <
293 AM64X_IOPAD(0x01cc, PIN_INPUT, 4) /* (W5) PRG0_PRU1_GPO7.RGMII1_RD0 */
294 AM64X_IOPAD(0x01d4, PIN_INPUT, 4) /* (Y5) PRG0_PRU1_GPO9.RGMII1_RD1 */
295 AM64X_IOPAD(0x01d8, PIN_INPUT, 4) /* (V6) PRG0_PRU1_GPO10.RGMII1_RD2 */
296 AM64X_IOPAD(0x01f4, PIN_INPUT, 4) /* (V5) PRG0_PRU1_GPO17.RGMII1_RD3 */
297 AM64X_IOPAD(0x0188, PIN_INPUT, 4) /* (AA5) PRG0_PRU0_GPO10.RGMII1_RXC */
298 AM64X_IOPAD(0x0184, PIN_INPUT, 4) /* (W6) PRG0_PRU0_GPO9.RGMII1_RX_CTL */
299 AM64X_IOPAD(0x0124, PIN_OUTPUT, 4) /* (V15) PRG1_PRU1_GPO7.RGMII1_TD0 */
300 AM64X_IOPAD(0x012c, PIN_OUTPUT, 4) /* (V14) PRG1_PRU1_GPO9.RGMII1_TD1 */
301 AM64X_IOPAD(0x0130, PIN_OUTPUT, 4) /* (W14) PRG1_PRU1_GPO10.RGMII1_TD2 */
302 AM64X_IOPAD(0x014c, PIN_OUTPUT, 4) /* (AA14) PRG1_PRU1_GPO17.RGMII1_TD3 */
303 AM64X_IOPAD(0x00e0, PIN_OUTPUT, 4) /* (U14) PRG1_PRU0_GPO10.RGMII1_TXC */
304 AM64X_IOPAD(0x00dc, PIN_OUTPUT, 4) /* (U15) PRG1_PRU0_GPO9.RGMII1_TX_CTL */
305 >;
306 };
307
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300308 rgmii2_pins_default: rgmii2-default-pins {
Vignesh Raghavendra759316f2021-05-10 20:06:12 +0530309 pinctrl-single,pins = <
310 AM64X_IOPAD(0x0108, PIN_INPUT, 4) /* (W11) PRG1_PRU1_GPO0.RGMII2_RD0 */
311 AM64X_IOPAD(0x010c, PIN_INPUT, 4) /* (V11) PRG1_PRU1_GPO1.RGMII2_RD1 */
312 AM64X_IOPAD(0x0110, PIN_INPUT, 4) /* (AA12) PRG1_PRU1_GPO2.RGMII2_RD2 */
313 AM64X_IOPAD(0x0114, PIN_INPUT, 4) /* (Y12) PRG1_PRU1_GPO3.RGMII2_RD3 */
314 AM64X_IOPAD(0x0120, PIN_INPUT, 4) /* (U11) PRG1_PRU1_GPO6.RGMII2_RXC */
315 AM64X_IOPAD(0x0118, PIN_INPUT, 4) /* (W12) PRG1_PRU1_GPO4.RGMII2_RX_CTL */
316 AM64X_IOPAD(0x0134, PIN_OUTPUT, 4) /* (AA10) PRG1_PRU1_GPO11.RGMII2_TD0 */
317 AM64X_IOPAD(0x0138, PIN_OUTPUT, 4) /* (V10) PRG1_PRU1_GPO12.RGMII2_TD1 */
318 AM64X_IOPAD(0x013c, PIN_OUTPUT, 4) /* (U10) PRG1_PRU1_GPO13.RGMII2_TD2 */
319 AM64X_IOPAD(0x0140, PIN_OUTPUT, 4) /* (AA11) PRG1_PRU1_GPO14.RGMII2_TD3 */
320 AM64X_IOPAD(0x0148, PIN_OUTPUT, 4) /* (Y10) PRG1_PRU1_GPO16.RGMII2_TXC */
321 AM64X_IOPAD(0x0144, PIN_OUTPUT, 4) /* (Y11) PRG1_PRU1_GPO15.RGMII2_TX_CTL */
322 >;
323 };
Aswath Govindraju0b2481e2021-06-04 22:00:36 +0530324
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300325 main_usb0_pins_default: main-usb0-default-pins {
Aswath Govindraju0b2481e2021-06-04 22:00:36 +0530326 pinctrl-single,pins = <
327 AM64X_IOPAD(0x02a8, PIN_OUTPUT, 0) /* (E19) USB0_DRVVBUS */
328 >;
329 };
Tom Rinif8276452021-09-10 17:37:43 -0400330
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300331 ospi0_pins_default: ospi0-default-pins {
Tom Rinif8276452021-09-10 17:37:43 -0400332 pinctrl-single,pins = <
333 AM64X_IOPAD(0x0000, PIN_OUTPUT, 0) /* (N20) OSPI0_CLK */
334 AM64X_IOPAD(0x002c, PIN_OUTPUT, 0) /* (L19) OSPI0_CSn0 */
335 AM64X_IOPAD(0x000c, PIN_INPUT, 0) /* (M19) OSPI0_D0 */
336 AM64X_IOPAD(0x0010, PIN_INPUT, 0) /* (M18) OSPI0_D1 */
337 AM64X_IOPAD(0x0014, PIN_INPUT, 0) /* (M20) OSPI0_D2 */
338 AM64X_IOPAD(0x0018, PIN_INPUT, 0) /* (M21) OSPI0_D3 */
339 AM64X_IOPAD(0x001c, PIN_INPUT, 0) /* (P21) OSPI0_D4 */
340 AM64X_IOPAD(0x0020, PIN_INPUT, 0) /* (P20) OSPI0_D5 */
341 AM64X_IOPAD(0x0024, PIN_INPUT, 0) /* (N18) OSPI0_D6 */
342 AM64X_IOPAD(0x0028, PIN_INPUT, 0) /* (M17) OSPI0_D7 */
343 AM64X_IOPAD(0x0008, PIN_INPUT, 0) /* (N19) OSPI0_DQS */
344 >;
345 };
Roger Quadros8bacb0f2023-01-24 11:43:25 +0200346
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300347 main_ecap0_pins_default: main-ecap0-default-pins {
Roger Quadros8bacb0f2023-01-24 11:43:25 +0200348 pinctrl-single,pins = <
349 AM64X_IOPAD(0x0270, PIN_INPUT, 0) /* (D18) ECAP0_IN_APWM_OUT */
350 >;
351 };
352
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300353 main_mcan0_pins_default: main-mcan0-default-pins {
Roger Quadros8bacb0f2023-01-24 11:43:25 +0200354 pinctrl-single,pins = <
355 AM64X_IOPAD(0x0254, PIN_INPUT, 0) /* (B17) MCAN0_RX */
356 AM64X_IOPAD(0x0250, PIN_OUTPUT, 0) /* (A17) MCAN0_TX */
357 >;
358 };
359
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300360 main_mcan1_pins_default: main-mcan1-default-pins {
Roger Quadros8bacb0f2023-01-24 11:43:25 +0200361 pinctrl-single,pins = <
362 AM64X_IOPAD(0x025c, PIN_INPUT, 0) /* (D17) MCAN1_RX */
363 AM64X_IOPAD(0x0258, PIN_OUTPUT, 0) /* (C17) MCAN1_TX */
364 >;
365 };
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300366
367 ddr_vtt_pins_default: ddr-vtt-default-pins {
368 pinctrl-single,pins = <
369 AM64X_IOPAD(0x0030, PIN_OUTPUT_PULLUP, 7) /* (L18) OSPI0_CSN1.GPIO0_12 */
370 >;
371 };
Dave Gerlachfbdf3752021-04-23 11:27:45 -0500372};
373
374&main_uart0 {
Roger Quadros8bacb0f2023-01-24 11:43:25 +0200375 status = "okay";
Dave Gerlachfbdf3752021-04-23 11:27:45 -0500376 pinctrl-names = "default";
377 pinctrl-0 = <&main_uart0_pins_default>;
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300378 current-speed = <115200>;
Dave Gerlachfbdf3752021-04-23 11:27:45 -0500379};
380
381/* main_uart1 is reserved for firmware usage */
382&main_uart1 {
383 status = "reserved";
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300384 pinctrl-names = "default";
385 pinctrl-0 = <&main_uart1_pins_default>;
Dave Gerlachfbdf3752021-04-23 11:27:45 -0500386};
387
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300388&main_i2c0 {
389 status = "okay";
390 pinctrl-names = "default";
391 pinctrl-0 = <&main_i2c0_pins_default>;
392 clock-frequency = <400000>;
393
394 eeprom@50 {
395 /* AT24CM01 */
396 compatible = "atmel,24c1024";
397 reg = <0x50>;
398 };
399};
400
Dave Gerlachfbdf3752021-04-23 11:27:45 -0500401&main_i2c1 {
Roger Quadros8bacb0f2023-01-24 11:43:25 +0200402 status = "okay";
Dave Gerlachfbdf3752021-04-23 11:27:45 -0500403 pinctrl-names = "default";
404 pinctrl-0 = <&main_i2c1_pins_default>;
405 clock-frequency = <400000>;
406
407 exp1: gpio@22 {
408 compatible = "ti,tca6424";
409 reg = <0x22>;
410 gpio-controller;
411 #gpio-cells = <2>;
412 gpio-line-names = "GPIO_eMMC_RSTn", "CAN_MUX_SEL",
413 "GPIO_CPSW1_RST", "GPIO_RGMII1_RST",
414 "GPIO_RGMII2_RST", "GPIO_PCIe_RST_OUT",
415 "MMC1_SD_EN", "FSI_FET_SEL",
416 "MCAN0_STB_3V3", "MCAN1_STB_3V3",
417 "CPSW_FET_SEL", "CPSW_FET2_SEL",
418 "PRG1_RGMII2_FET_SEL", "TEST_GPIO2",
419 "GPIO_OLED_RESETn", "VPP_LDO_EN",
420 "TEST_LED1", "TP92", "TP90", "TP88",
421 "TP87", "TP86", "TP89", "TP91";
422 };
423
424 /* osd9616p0899-10 */
425 display@3c {
426 compatible = "solomon,ssd1306fb-i2c";
427 reg = <0x3c>;
428 reset-gpios = <&exp1 14 GPIO_ACTIVE_LOW>;
429 vbat-supply = <&vddb>;
430 solomon,height = <16>;
431 solomon,width = <96>;
432 solomon,com-seq;
433 solomon,com-invdir;
434 solomon,page-offset = <0>;
435 solomon,prechargep1 = <2>;
436 solomon,prechargep2 = <13>;
437 };
438};
439
Tom Rinif8276452021-09-10 17:37:43 -0400440/* mcu_gpio0 is reserved for mcu firmware usage */
441&mcu_gpio0 {
442 status = "reserved";
443};
444
Tom Rinif8276452021-09-10 17:37:43 -0400445&main_spi0 {
Roger Quadros8bacb0f2023-01-24 11:43:25 +0200446 status = "okay";
Vignesh Raghavendra759316f2021-05-10 20:06:12 +0530447 pinctrl-names = "default";
Tom Rinif8276452021-09-10 17:37:43 -0400448 pinctrl-0 = <&main_spi0_pins_default>;
449 ti,pindir-d0-out-d1-in;
450 eeprom@0 {
451 compatible = "microchip,93lc46b";
Vignesh Raghavendra759316f2021-05-10 20:06:12 +0530452 reg = <0>;
Tom Rinif8276452021-09-10 17:37:43 -0400453 spi-max-frequency = <1000000>;
454 spi-cs-high;
455 data-size = <16>;
Vignesh Raghavendra759316f2021-05-10 20:06:12 +0530456 };
457};
458
Dave Gerlachfbdf3752021-04-23 11:27:45 -0500459&sdhci0 {
460 /* emmc */
461 bus-width = <8>;
462 non-removable;
463 ti,driver-strength-ohm = <50>;
464 disable-wp;
465};
466
467&sdhci1 {
468 /* SD/MMC */
469 vmmc-supply = <&vdd_mmc1>;
470 pinctrl-names = "default";
471 bus-width = <4>;
472 pinctrl-0 = <&main_mmc1_pins_default>;
473 ti,driver-strength-ohm = <50>;
474 disable-wp;
475};
Aswath Govindraju0b2481e2021-06-04 22:00:36 +0530476
477&usbss0 {
478 ti,vbus-divider;
479 ti,usb2-only;
480};
481
482&usb0 {
483 dr_mode = "otg";
484 maximum-speed = "high-speed";
485 pinctrl-names = "default";
486 pinctrl-0 = <&main_usb0_pins_default>;
487};
Tom Rinif8276452021-09-10 17:37:43 -0400488
489&cpsw3g {
490 pinctrl-names = "default";
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300491 pinctrl-0 = <&rgmii1_pins_default>, <&rgmii2_pins_default>;
Tom Rinif8276452021-09-10 17:37:43 -0400492};
493
494&cpsw_port1 {
495 phy-mode = "rgmii-rxid";
496 phy-handle = <&cpsw3g_phy0>;
497};
498
499&cpsw_port2 {
500 phy-mode = "rgmii-rxid";
501 phy-handle = <&cpsw3g_phy3>;
502};
503
504&cpsw3g_mdio {
Roger Quadros8bacb0f2023-01-24 11:43:25 +0200505 status = "okay";
506 pinctrl-names = "default";
507 pinctrl-0 = <&mdio1_pins_default>;
508
Tom Rinif8276452021-09-10 17:37:43 -0400509 cpsw3g_phy0: ethernet-phy@0 {
510 reg = <0>;
511 ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
512 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
513 };
514};
515
516&tscadc0 {
517 /* ADC is reserved for R5 usage */
518 status = "reserved";
519};
520
521&ospi0 {
522 pinctrl-names = "default";
523 pinctrl-0 = <&ospi0_pins_default>;
524
Roger Quadros8bacb0f2023-01-24 11:43:25 +0200525 flash@0 {
Tom Rinif8276452021-09-10 17:37:43 -0400526 compatible = "jedec,spi-nor";
527 reg = <0x0>;
528 spi-tx-bus-width = <8>;
529 spi-rx-bus-width = <8>;
530 spi-max-frequency = <25000000>;
531 cdns,tshsl-ns = <60>;
532 cdns,tsd2d-ns = <60>;
533 cdns,tchsh-ns = <60>;
534 cdns,tslch-ns = <60>;
535 cdns,read-delay = <4>;
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300536
537 partitions {
538 compatible = "fixed-partitions";
539 #address-cells = <1>;
540 #size-cells = <1>;
541
542 partition@0 {
543 label = "ospi.tiboot3";
544 reg = <0x0 0x100000>;
545 };
546
547 partition@100000 {
548 label = "ospi.tispl";
549 reg = <0x100000 0x200000>;
550 };
551
552 partition@300000 {
553 label = "ospi.u-boot";
554 reg = <0x300000 0x400000>;
555 };
556
557 partition@700000 {
558 label = "ospi.env";
559 reg = <0x700000 0x40000>;
560 };
561
562 partition@740000 {
563 label = "ospi.env.backup";
564 reg = <0x740000 0x40000>;
565 };
566
567 partition@800000 {
568 label = "ospi.rootfs";
569 reg = <0x800000 0x37c0000>;
570 };
571
572 partition@3fc0000 {
573 label = "ospi.phypattern";
574 reg = <0x3fc0000 0x40000>;
575 };
576 };
Tom Rinif8276452021-09-10 17:37:43 -0400577 };
578};
579
580&mailbox0_cluster2 {
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300581 status = "okay";
582
Tom Rinif8276452021-09-10 17:37:43 -0400583 mbox_main_r5fss0_core0: mbox-main-r5fss0-core0 {
584 ti,mbox-rx = <0 0 2>;
585 ti,mbox-tx = <1 0 2>;
586 };
587
588 mbox_main_r5fss0_core1: mbox-main-r5fss0-core1 {
589 ti,mbox-rx = <2 0 2>;
590 ti,mbox-tx = <3 0 2>;
591 };
592};
593
Tom Rinif8276452021-09-10 17:37:43 -0400594&mailbox0_cluster4 {
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300595 status = "okay";
596
Tom Rinif8276452021-09-10 17:37:43 -0400597 mbox_main_r5fss1_core0: mbox-main-r5fss1-core0 {
598 ti,mbox-rx = <0 0 2>;
599 ti,mbox-tx = <1 0 2>;
600 };
601
602 mbox_main_r5fss1_core1: mbox-main-r5fss1-core1 {
603 ti,mbox-rx = <2 0 2>;
604 ti,mbox-tx = <3 0 2>;
605 };
606};
607
Tom Rinif8276452021-09-10 17:37:43 -0400608&mailbox0_cluster6 {
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300609 status = "okay";
610
Tom Rinif8276452021-09-10 17:37:43 -0400611 mbox_m4_0: mbox-m4-0 {
612 ti,mbox-rx = <0 0 2>;
613 ti,mbox-tx = <1 0 2>;
614 };
615};
616
Tom Rinif8276452021-09-10 17:37:43 -0400617&main_r5fss0_core0 {
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300618 mboxes = <&mailbox0_cluster2>, <&mbox_main_r5fss0_core0>;
Tom Rinif8276452021-09-10 17:37:43 -0400619 memory-region = <&main_r5fss0_core0_dma_memory_region>,
620 <&main_r5fss0_core0_memory_region>;
621};
622
623&main_r5fss0_core1 {
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300624 mboxes = <&mailbox0_cluster2>, <&mbox_main_r5fss0_core1>;
Tom Rinif8276452021-09-10 17:37:43 -0400625 memory-region = <&main_r5fss0_core1_dma_memory_region>,
626 <&main_r5fss0_core1_memory_region>;
627};
628
629&main_r5fss1_core0 {
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300630 mboxes = <&mailbox0_cluster4>, <&mbox_main_r5fss1_core0>;
Tom Rinif8276452021-09-10 17:37:43 -0400631 memory-region = <&main_r5fss1_core0_dma_memory_region>,
632 <&main_r5fss1_core0_memory_region>;
633};
634
635&main_r5fss1_core1 {
Roger Quadrosaf6e2a72023-08-05 11:14:40 +0300636 mboxes = <&mailbox0_cluster4>, <&mbox_main_r5fss1_core1>;
Tom Rinif8276452021-09-10 17:37:43 -0400637 memory-region = <&main_r5fss1_core1_dma_memory_region>,
638 <&main_r5fss1_core1_memory_region>;
639};
640
641&serdes_ln_ctrl {
642 idle-states = <AM64_SERDES0_LANE0_PCIE0>;
643};
644
645&serdes0 {
646 serdes0_pcie_link: phy@0 {
647 reg = <0>;
648 cdns,num-lanes = <1>;
649 #phy-cells = <0>;
650 cdns,phy-type = <PHY_TYPE_PCIE>;
651 resets = <&serdes_wiz0 1>;
652 };
653};
654
655&pcie0_rc {
Roger Quadros8bacb0f2023-01-24 11:43:25 +0200656 status = "okay";
Tom Rinif8276452021-09-10 17:37:43 -0400657 reset-gpios = <&exp1 5 GPIO_ACTIVE_HIGH>;
658 phys = <&serdes0_pcie_link>;
659 phy-names = "pcie-phy";
660 num-lanes = <1>;
661};
662
663&pcie0_ep {
664 phys = <&serdes0_pcie_link>;
665 phy-names = "pcie-phy";
666 num-lanes = <1>;
Roger Quadros8bacb0f2023-01-24 11:43:25 +0200667};
668
669&ecap0 {
670 status = "okay";
671 /* PWM is available on Pin 1 of header J12 */
672 pinctrl-names = "default";
673 pinctrl-0 = <&main_ecap0_pins_default>;
674};
675
676&main_mcan0 {
677 status = "okay";
678 pinctrl-names = "default";
679 pinctrl-0 = <&main_mcan0_pins_default>;
680 phys = <&transceiver1>;
681};
682
683&main_mcan1 {
684 status = "okay";
685 pinctrl-names = "default";
686 pinctrl-0 = <&main_mcan1_pins_default>;
687 phys = <&transceiver2>;
Tom Rinif8276452021-09-10 17:37:43 -0400688};