1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (C) 2022-2023 Texas Instruments Incorporated - https://www.ti.com/
4 *
5 * Design Files: https://www.ti.com/lit/zip/SPRR466
6 * TRM: https://www.ti.com/lit/zip/spruj52
7 */
8
9/dts-v1/;
10
11#include <dt-bindings/net/ti-dp83867.h>
12#include <dt-bindings/gpio/gpio.h>
13#include "k3-j784s4.dtsi"
14
15/ {
16	compatible = "ti,am69-sk", "ti,j784s4";
17	model = "Texas Instruments AM69 SK";
18
19	chosen {
20		stdout-path = "serial2:115200n8";
21	};
22
23	aliases {
24		serial2 = &main_uart8;
25		mmc1 = &main_sdhci1;
26		i2c0 = &main_i2c0;
27	};
28
29	memory@80000000 {
30		device_type = "memory";
31		/* 32G RAM */
32		reg = <0x00 0x80000000 0x00 0x80000000>,
33		      <0x08 0x80000000 0x07 0x80000000>;
34	};
35
36	reserved_memory: reserved-memory {
37		#address-cells = <2>;
38		#size-cells = <2>;
39		ranges;
40
41		secure_ddr: optee@9e800000 {
42			reg = <0x00 0x9e800000 0x00 0x01800000>;
43			no-map;
44		};
45	};
46
47	vusb_main: regulator-vusb-main5v0 {
48		/* USB MAIN INPUT 5V DC */
49		compatible = "regulator-fixed";
50		regulator-name = "vusb-main5v0";
51		regulator-min-microvolt = <5000000>;
52		regulator-max-microvolt = <5000000>;
53		regulator-always-on;
54		regulator-boot-on;
55	};
56
57	vsys_5v0: regulator-vsys5v0 {
58		/* Output of LM61460 */
59		compatible = "regulator-fixed";
60		regulator-name = "vsys_5v0";
61		regulator-min-microvolt = <5000000>;
62		regulator-max-microvolt = <5000000>;
63		vin-supply = <&vusb_main>;
64		regulator-always-on;
65		regulator-boot-on;
66	};
67
68	vsys_3v3: regulator-vsys3v3 {
69		/* Output of LM5143 */
70		compatible = "regulator-fixed";
71		regulator-name = "vsys_3v3";
72		regulator-min-microvolt = <3300000>;
73		regulator-max-microvolt = <3300000>;
74		vin-supply = <&vusb_main>;
75		regulator-always-on;
76		regulator-boot-on;
77	};
78
79	vdd_mmc1: regulator-sd {
80		/* Output of TPS22918 */
81		compatible = "regulator-fixed";
82		regulator-name = "vdd_mmc1";
83		regulator-min-microvolt = <3300000>;
84		regulator-max-microvolt = <3300000>;
85		regulator-boot-on;
86		enable-active-high;
87		vin-supply = <&vsys_3v3>;
88		gpio = <&exp1 2 GPIO_ACTIVE_HIGH>;
89	};
90
91	vdd_sd_dv: regulator-tlv71033 {
92		/* Output of TLV71033 */
93		compatible = "regulator-gpio";
94		regulator-name = "tlv71033";
95		pinctrl-names = "default";
96		pinctrl-0 = <&vdd_sd_dv_pins_default>;
97		regulator-min-microvolt = <1800000>;
98		regulator-max-microvolt = <3300000>;
99		regulator-boot-on;
100		vin-supply = <&vsys_5v0>;
101		gpios = <&main_gpio0 49 GPIO_ACTIVE_HIGH>;
102		states = <1800000 0x0>,
103			 <3300000 0x1>;
104	};
105};
106
107&main_pmx0 {
108	main_uart8_pins_default: main-uart8-pins-default {
109		pinctrl-single,pins = <
110			J784S4_IOPAD(0x0d0, PIN_INPUT, 11) /* (AP38) SPI0_CS1.UART8_RXD */
111			J784S4_IOPAD(0x0d4, PIN_OUTPUT, 11) /* (AN38) SPI0_CLK.UART8_TXD */
112		>;
113	};
114
115	main_i2c0_pins_default: main-i2c0-pins-default {
116		pinctrl-single,pins = <
117			J784S4_IOPAD(0x0e0, PIN_INPUT_PULLUP, 0) /* (AN36) I2C0_SCL */
118			J784S4_IOPAD(0x0e4, PIN_INPUT_PULLUP, 0) /* (AP37) I2C0_SDA */
119		>;
120	};
121
122	main_mmc1_pins_default: main-mmc1-pins-default {
123		pinctrl-single,pins = <
124			J784S4_IOPAD(0x104, PIN_INPUT, 0) /* (AB38) MMC1_CLK */
125			J784S4_IOPAD(0x108, PIN_INPUT, 0) /* (AB36) MMC1_CMD */
126			J784S4_IOPAD(0x100, PIN_INPUT, 0) /* (No Pin) MMC1_CLKLB */
127			J784S4_IOPAD(0x0fc, PIN_INPUT, 0) /* (AA33) MMC1_DAT0 */
128			J784S4_IOPAD(0x0f8, PIN_INPUT, 0) /* (AB34) MMC1_DAT1 */
129			J784S4_IOPAD(0x0f4, PIN_INPUT, 0) /* (AA32) MMC1_DAT2 */
130			J784S4_IOPAD(0x0f0, PIN_INPUT, 0) /* (AC38) MMC1_DAT3 */
131			J784S4_IOPAD(0x0e8, PIN_INPUT, 8) /* (AR38) TIMER_IO0.MMC1_SDCD */
132		>;
133	};
134
135	vdd_sd_dv_pins_default: vdd-sd-dv-pins-default {
136		pinctrl-single,pins = <
137			J784S4_IOPAD(0x0C4, PIN_INPUT, 7) /* (AD36) ECAP0_IN_APWM_OUT.GPIO0_49 */
138		>;
139	};
140};
141
142&main_uart8 {
143	status = "okay";
144	pinctrl-names = "default";
145	pinctrl-0 = <&main_uart8_pins_default>;
146};
147
148&main_i2c0 {
149	status = "okay";
150	pinctrl-names = "default";
151	pinctrl-0 = <&main_i2c0_pins_default>;
152	clock-frequency = <400000>;
153
154	exp1: gpio@21 {
155		compatible = "ti,tca6416";
156		reg = <0x21>;
157		gpio-controller;
158		#gpio-cells = <2>;
159		gpio-line-names	= "BOARDID_EEPROM_WP", "CAN_STB", "GPIO_uSD_PWR_EN",
160				"IO_EXP_MCU_RGMII_RST#", "IO_EXP_PCIe0_4L_PERST#",
161				"IO_EXP_PCIe1_M.2_RTSz", "IO_EXP_PCIe3_M.2_RTSz",
162				"PM_INA_BUS_EN", "ENET1_EXP_PWRDN", "EXP1_ENET_RSTz",
163				"ENET1_I2CMUX_SEL", "PCIe0_CLKREQ#", "PCIe1_M.2_CLKREQ#",
164				"PCIe3_M2_CLKREQ#", "PCIe0_PRSNT2#_1", "PCIe0_PRSNT2#_2";
165	};
166};
167
168&main_sdhci1 {
169	/* SD card */
170	status = "okay";
171	pinctrl-0 = <&main_mmc1_pins_default>;
172	pinctrl-names = "default";
173	disable-wp;
174	vmmc-supply = <&vdd_mmc1>;
175	vqmmc-supply = <&vdd_sd_dv>;
176};
177
178&main_gpio0 {
179	status = "okay";
180};
181