xref: /linux/arch/arm64/boot/dts/ti/k3-am62a7-sk.dts (revision 7f71507851fc7764b36a3221839607d3a45c2025)
1// SPDX-License-Identifier: GPL-2.0-only OR MIT
2/*
3 * AM62A SK: https://www.ti.com/lit/zip/sprr459
4 *
5 * Copyright (C) 2022-2024 Texas Instruments Incorporated - https://www.ti.com/
6 */
7
8/dts-v1/;
9
10#include <dt-bindings/leds/common.h>
11#include <dt-bindings/gpio/gpio.h>
12#include <dt-bindings/net/ti-dp83867.h>
13#include "k3-am62a7.dtsi"
14
15/ {
16	compatible = "ti,am62a7-sk", "ti,am62a7";
17	model = "Texas Instruments AM62A7 SK";
18
19	aliases {
20		serial0 = &wkup_uart0;
21		serial2 = &main_uart0;
22		serial3 = &main_uart1;
23		mmc0 = &sdhci0;
24		mmc1 = &sdhci1;
25	};
26
27	chosen {
28		stdout-path = "serial2:115200n8";
29	};
30
31	memory@80000000 {
32		device_type = "memory";
33		/* 4G RAM */
34		reg = <0x00000000 0x80000000 0x00000000 0x80000000>,
35		      <0x00000008 0x80000000 0x00000000 0x80000000>;
36	};
37
38	reserved-memory {
39		#address-cells = <2>;
40		#size-cells = <2>;
41		ranges;
42
43		/* global cma region */
44		linux,cma {
45			compatible = "shared-dma-pool";
46			reusable;
47			size = <0x00 0x24000000>;
48			alloc-ranges = <0x00 0xc0000000 0x00 0x24000000>;
49			linux,cma-default;
50		};
51
52		secure_tfa_ddr: tfa@9e780000 {
53			reg = <0x00 0x9e780000 0x00 0x80000>;
54			alignment = <0x1000>;
55			no-map;
56		};
57
58		secure_ddr: optee@9e800000 {
59			reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
60			alignment = <0x1000>;
61			no-map;
62		};
63
64		wkup_r5fss0_core0_memory_region: r5f-dma-memory@9c900000 {
65			compatible = "shared-dma-pool";
66			reg = <0x00 0x9c900000 0x00 0x01e00000>;
67			no-map;
68		};
69	};
70
71	opp-table {
72		/* Requires VDD_CORE at 0v85 */
73		opp-1400000000 {
74			opp-hz = /bits/ 64 <1400000000>;
75			opp-supported-hw = <0x01 0x0004>;
76			clock-latency-ns = <6000000>;
77		};
78	};
79
80	vmain_pd: regulator-0 {
81		/* TPS25750 PD CONTROLLER OUTPUT */
82		compatible = "regulator-fixed";
83		regulator-name = "vmain_pd";
84		regulator-min-microvolt = <5000000>;
85		regulator-max-microvolt = <5000000>;
86		regulator-always-on;
87		regulator-boot-on;
88	};
89
90	vcc_5v0: regulator-1 {
91		/* Output of TPS63070 */
92		compatible = "regulator-fixed";
93		regulator-name = "vcc_5v0";
94		regulator-min-microvolt = <5000000>;
95		regulator-max-microvolt = <5000000>;
96		vin-supply = <&vmain_pd>;
97		regulator-always-on;
98		regulator-boot-on;
99	};
100
101	vcc_3v3_main: regulator-2 {
102		/* output of LM5141-Q1 */
103		compatible = "regulator-fixed";
104		regulator-name = "vcc_3v3_main";
105		regulator-min-microvolt = <3300000>;
106		regulator-max-microvolt = <3300000>;
107		vin-supply = <&vmain_pd>;
108		regulator-always-on;
109		regulator-boot-on;
110	};
111
112	vdd_mmc1: regulator-3 {
113		/* TPS22918DBVR */
114		compatible = "regulator-fixed";
115		regulator-name = "vdd_mmc1";
116		regulator-min-microvolt = <3300000>;
117		regulator-max-microvolt = <3300000>;
118		regulator-boot-on;
119		enable-active-high;
120		gpio = <&exp1 3 GPIO_ACTIVE_HIGH>;
121	};
122
123	vcc_3v3_sys: regulator-4 {
124		/* output of TPS222965DSGT */
125		compatible = "regulator-fixed";
126		regulator-name = "vcc_3v3_sys";
127		regulator-min-microvolt = <3300000>;
128		regulator-max-microvolt = <3300000>;
129		vin-supply = <&vcc_3v3_main>;
130		regulator-always-on;
131		regulator-boot-on;
132	};
133
134	vddshv_sdio: regulator-5 {
135		compatible = "regulator-gpio";
136		regulator-name = "vddshv_sdio";
137		pinctrl-names = "default";
138		pinctrl-0 = <&vddshv_sdio_pins_default>;
139		regulator-min-microvolt = <1800000>;
140		regulator-max-microvolt = <3300000>;
141		regulator-boot-on;
142		vin-supply = <&ldo1>;
143		gpios = <&main_gpio0 31 GPIO_ACTIVE_HIGH>;
144		states = <1800000 0x0>,
145			 <3300000 0x1>;
146	};
147
148	leds {
149		compatible = "gpio-leds";
150		pinctrl-names = "default";
151		pinctrl-0 = <&usr_led_pins_default>;
152
153		led-0 {
154			label = "am62a-sk:green:heartbeat";
155			gpios = <&main_gpio1 49 GPIO_ACTIVE_HIGH>;
156			linux,default-trigger = "heartbeat";
157			function = LED_FUNCTION_HEARTBEAT;
158			default-state = "off";
159		};
160	};
161
162	tlv320_mclk: clk-0 {
163		#clock-cells = <0>;
164		compatible = "fixed-clock";
165		clock-frequency = <12288000>;
166	};
167
168	hdmi0: connector-hdmi {
169		compatible = "hdmi-connector";
170		label = "hdmi";
171		type = "a";
172
173		port {
174			hdmi_connector_in: endpoint {
175				remote-endpoint = <&sii9022_out>;
176			};
177		};
178	};
179
180	codec_audio: sound {
181		compatible = "simple-audio-card";
182		simple-audio-card,name = "AM62Ax-SKEVM";
183		simple-audio-card,widgets =
184			"Headphone",	"Headphone Jack",
185			"Line",		"Line In",
186			"Microphone",	"Microphone Jack";
187		simple-audio-card,routing =
188			"Headphone Jack",	"HPLOUT",
189			"Headphone Jack",	"HPROUT",
190			"LINE1L",		"Line In",
191			"LINE1R",		"Line In",
192			"MIC3R",		"Microphone Jack",
193			"Microphone Jack",	"Mic Bias";
194		simple-audio-card,format = "dsp_b";
195		simple-audio-card,bitclock-master = <&sound_master>;
196		simple-audio-card,frame-master = <&sound_master>;
197		simple-audio-card,bitclock-inversion;
198
199		simple-audio-card,cpu {
200			sound-dai = <&mcasp1>;
201		};
202
203		sound_master: simple-audio-card,codec {
204			sound-dai = <&tlv320aic3106>;
205			clocks = <&tlv320_mclk>;
206		};
207	};
208};
209
210&mcu_pmx0 {
211	wkup_uart0_pins_default: wkup-uart0-default-pins {
212		pinctrl-single,pins = <
213			AM62AX_MCU_IOPAD(0x0024, PIN_INPUT, 0) /* (C9) WKUP_UART0_RXD */
214			AM62AX_MCU_IOPAD(0x0028, PIN_OUTPUT, 0) /* (E9) WKUP_UART0_TXD */
215			AM62AX_MCU_IOPAD(0x002c, PIN_INPUT, 0) /* (C10) WKUP_UART0_CTSn */
216			AM62AX_MCU_IOPAD(0x0030, PIN_OUTPUT, 0) /* (C8) WKUP_UART0_RTSn */
217		>;
218	};
219};
220
221/* WKUP UART0 is used for DM firmware logs */
222&wkup_uart0 {
223	pinctrl-names = "default";
224	pinctrl-0 = <&wkup_uart0_pins_default>;
225	status = "reserved";
226};
227
228&main_pmx0 {
229	main_dss0_pins_default: main-dss0-default-pins {
230		pinctrl-single,pins = <
231			AM62AX_IOPAD(0x100, PIN_OUTPUT, 0) /* (V17) VOUT0_VSYNC */
232			AM62AX_IOPAD(0x0f8, PIN_OUTPUT, 0) /* (T18) VOUT0_HSYNC */
233			AM62AX_IOPAD(0x104, PIN_OUTPUT, 0) /* (AA22) VOUT0_PCLK */
234			AM62AX_IOPAD(0x0fc, PIN_OUTPUT, 0) /* (U17) VOUT0_DE */
235			AM62AX_IOPAD(0x0b8, PIN_OUTPUT, 0) /* (U22) VOUT0_DATA0 */
236			AM62AX_IOPAD(0x0bc, PIN_OUTPUT, 0) /* (U21) VOUT0_DATA1 */
237			AM62AX_IOPAD(0x0c0, PIN_OUTPUT, 0) /* (U20) VOUT0_DATA2 */
238			AM62AX_IOPAD(0x0c4, PIN_OUTPUT, 0) /* (U19) VOUT0_DATA3 */
239			AM62AX_IOPAD(0x0c8, PIN_OUTPUT, 0) /* (T19) VOUT0_DATA4 */
240			AM62AX_IOPAD(0x0cc, PIN_OUTPUT, 0) /* (U18) VOUT0_DATA5 */
241			AM62AX_IOPAD(0x0d0, PIN_OUTPUT, 0) /* (V22) VOUT0_DATA6 */
242			AM62AX_IOPAD(0x0d4, PIN_OUTPUT, 0) /* (V21) VOUT0_DATA7 */
243			AM62AX_IOPAD(0x0d8, PIN_OUTPUT, 0) /* (V19) VOUT0_DATA8 */
244			AM62AX_IOPAD(0x0dc, PIN_OUTPUT, 0) /* (V18) VOUT0_DATA9 */
245			AM62AX_IOPAD(0x0e0, PIN_OUTPUT, 0) /* (W22) VOUT0_DATA10 */
246			AM62AX_IOPAD(0x0e4, PIN_OUTPUT, 0) /* (W21) VOUT0_DATA11 */
247			AM62AX_IOPAD(0x0e8, PIN_OUTPUT, 0) /* (W20) VOUT0_DATA12 */
248			AM62AX_IOPAD(0x0ec, PIN_OUTPUT, 0) /* (W19) VOUT0_DATA13 */
249			AM62AX_IOPAD(0x0f0, PIN_OUTPUT, 0) /* (Y21) VOUT0_DATA14 */
250			AM62AX_IOPAD(0x0f4, PIN_OUTPUT, 0) /* (Y22) VOUT0_DATA15 */
251			AM62AX_IOPAD(0x05c, PIN_OUTPUT, 1) /* (P22) GPMC0_AD8.VOUT0_DATA16 */
252			AM62AX_IOPAD(0x060, PIN_OUTPUT, 1) /* (R19) GPMC0_AD9.VOUT0_DATA17 */
253			AM62AX_IOPAD(0x064, PIN_OUTPUT, 1) /* (R20) GPMC0_AD10.VOUT0_DATA18 */
254			AM62AX_IOPAD(0x068, PIN_OUTPUT, 1) /* (R22) GPMC0_AD11.VOUT0_DATA19 */
255			AM62AX_IOPAD(0x06c, PIN_OUTPUT, 1) /* (T22) GPMC0_AD12.VOUT0_DATA20 */
256			AM62AX_IOPAD(0x070, PIN_OUTPUT, 1) /* (R21) GPMC0_AD13.VOUT0_DATA21 */
257			AM62AX_IOPAD(0x074, PIN_OUTPUT, 1) /* (T20) GPMC0_AD14.VOUT0_DATA22 */
258			AM62AX_IOPAD(0x078, PIN_OUTPUT, 1) /* (T21) GPMC0_AD15.VOUT0_DATA23 */
259		>;
260	};
261
262	main_uart0_pins_default: main-uart0-default-pins {
263		pinctrl-single,pins = <
264			AM62AX_IOPAD(0x1c8, PIN_INPUT, 0) /* (E14) UART0_RXD */
265			AM62AX_IOPAD(0x1cc, PIN_OUTPUT, 0) /* (D15) UART0_TXD */
266		>;
267	};
268
269	main_uart1_pins_default: main-uart1-default-pins {
270		pinctrl-single,pins = <
271			AM62AX_IOPAD(0x01e8, PIN_INPUT, 1) /* (C17) I2C1_SCL.UART1_RXD */
272			AM62AX_IOPAD(0x01ec, PIN_OUTPUT, 1) /* (E17) I2C1_SDA.UART1_TXD */
273			AM62AX_IOPAD(0x0194, PIN_INPUT, 2) /* (C19) MCASP0_AXR3.UART1_CTSn */
274			AM62AX_IOPAD(0x0198, PIN_OUTPUT, 2) /* (B19) MCASP0_AXR2.UART1_RTSn */
275		>;
276	};
277
278	main_i2c0_pins_default: main-i2c0-default-pins {
279		pinctrl-single,pins = <
280			AM62AX_IOPAD(0x1e0, PIN_INPUT_PULLUP, 0) /* (B16) I2C0_SCL */
281			AM62AX_IOPAD(0x1e4, PIN_INPUT_PULLUP, 0) /* (A16) I2C0_SDA */
282		>;
283	};
284
285	main_i2c1_pins_default: main-i2c1-default-pins {
286		pinctrl-single,pins = <
287			AM62AX_IOPAD(0x1e8, PIN_INPUT_PULLUP, 0) /* (B17) I2C1_SCL */
288			AM62AX_IOPAD(0x1ec, PIN_INPUT_PULLUP, 0) /* (A17) I2C1_SDA */
289		>;
290	};
291
292	main_i2c2_pins_default: main-i2c2-default-pins {
293		pinctrl-single,pins = <
294			AM62AX_IOPAD(0x0b0, PIN_INPUT_PULLUP, 1) /* (K22) GPMC0_CSn2.I2C2_SCL */
295			AM62AX_IOPAD(0x0b4, PIN_INPUT_PULLUP, 1) /* (K24) GPMC0_CSn3.I2C2_SDA */
296		>;
297	};
298
299	main_mmc0_pins_default: main-mmc0-default-pins {
300		pinctrl-single,pins = <
301			AM62AX_IOPAD(0x220, PIN_INPUT, 0) /* (Y3) MMC0_CMD */
302			AM62AX_IOPAD(0x218, PIN_INPUT, 0) /* (AB1) MMC0_CLKLB */
303			AM62AX_IOPAD(0x21c, PIN_INPUT, 0) /* (AB1) MMC0_CLK */
304			AM62AX_IOPAD(0x214, PIN_INPUT, 0) /* (AA2) MMC0_DAT0 */
305			AM62AX_IOPAD(0x210, PIN_INPUT_PULLUP, 0) /* (AA1) MMC0_DAT1 */
306			AM62AX_IOPAD(0x20c, PIN_INPUT_PULLUP, 0) /* (AA3) MMC0_DAT2 */
307			AM62AX_IOPAD(0x208, PIN_INPUT_PULLUP, 0) /* (Y4) MMC0_DAT3 */
308			AM62AX_IOPAD(0x204, PIN_INPUT_PULLUP, 0) /* (AB2) MMC0_DAT4 */
309			AM62AX_IOPAD(0x200, PIN_INPUT_PULLUP, 0) /* (AC1) MMC0_DAT5 */
310			AM62AX_IOPAD(0x1fc, PIN_INPUT_PULLUP, 0) /* (AD2) MMC0_DAT6 */
311			AM62AX_IOPAD(0x1f8, PIN_INPUT_PULLUP, 0) /* (AC2) MMC0_DAT7 */
312		>;
313	};
314
315	main_mmc1_pins_default: main-mmc1-default-pins {
316		pinctrl-single,pins = <
317			AM62AX_IOPAD(0x23c, PIN_INPUT, 0) /* (A21) MMC1_CMD */
318			AM62AX_IOPAD(0x234, PIN_INPUT, 0) /* (B22) MMC1_CLK */
319			AM62AX_IOPAD(0x230, PIN_INPUT, 0) /* (A22) MMC1_DAT0 */
320			AM62AX_IOPAD(0x22c, PIN_INPUT, 0) /* (B21) MMC1_DAT1 */
321			AM62AX_IOPAD(0x228, PIN_INPUT, 0) /* (C21) MMC1_DAT2 */
322			AM62AX_IOPAD(0x224, PIN_INPUT, 0) /* (D22) MMC1_DAT3 */
323			AM62AX_IOPAD(0x240, PIN_INPUT, 0) /* (D17) MMC1_SDCD */
324		>;
325	};
326
327	usr_led_pins_default: usr-led-default-pins {
328		pinctrl-single,pins = <
329			AM62AX_IOPAD(0x244, PIN_OUTPUT, 7) /* (D18) MMC1_SDWP.GPIO1_49 */
330		>;
331	};
332
333	main_usb1_pins_default: main-usb1-default-pins {
334		pinctrl-single,pins = <
335			AM62AX_IOPAD(0x0258, PIN_OUTPUT, 0) /* (F18) USB1_DRVVBUS */
336		>;
337	};
338
339	main_mdio1_pins_default: main-mdio1-default-pins {
340		pinctrl-single,pins = <
341			AM62AX_IOPAD(0x160, PIN_OUTPUT, 0) /* (V12) MDIO0_MDC */
342			AM62AX_IOPAD(0x15c, PIN_INPUT, 0) /* (V13) MDIO0_MDIO */
343		>;
344	};
345
346	main_rgmii1_pins_default: main-rgmii1-default-pins {
347		pinctrl-single,pins = <
348			AM62AX_IOPAD(0x14c, PIN_INPUT, 0) /* (AB16) RGMII1_RD0 */
349			AM62AX_IOPAD(0x150, PIN_INPUT, 0) /* (V15) RGMII1_RD1 */
350			AM62AX_IOPAD(0x154, PIN_INPUT, 0) /* (W15) RGMII1_RD2 */
351			AM62AX_IOPAD(0x158, PIN_INPUT, 0) /* (V14) RGMII1_RD3 */
352			AM62AX_IOPAD(0x148, PIN_INPUT, 0) /* (AA16) RGMII1_RXC */
353			AM62AX_IOPAD(0x144, PIN_INPUT, 0) /* (AA15) RGMII1_RX_CTL */
354			AM62AX_IOPAD(0x134, PIN_INPUT, 0) /* (Y17) RGMII1_TD0 */
355			AM62AX_IOPAD(0x138, PIN_INPUT, 0) /* (V16) RGMII1_TD1 */
356			AM62AX_IOPAD(0x13c, PIN_INPUT, 0) /* (Y16) RGMII1_TD2 */
357			AM62AX_IOPAD(0x140, PIN_INPUT, 0) /* (AA17) RGMII1_TD3 */
358			AM62AX_IOPAD(0x130, PIN_INPUT, 0) /* (AB17) RGMII1_TXC */
359			AM62AX_IOPAD(0x12c, PIN_INPUT, 0) /* (W16) RGMII1_TX_CTL */
360		>;
361	};
362
363	main_mcasp1_pins_default: main-mcasp1-default-pins {
364		pinctrl-single,pins = <
365			AM62AX_IOPAD(0x090, PIN_INPUT, 2) /* (L19) GPMC0_BE0n_CLE.MCASP1_ACLKX */
366			AM62AX_IOPAD(0x098, PIN_INPUT, 2) /* (R18) GPMC0_WAIT0.MCASP1_AFSX */
367			AM62AX_IOPAD(0x08c, PIN_OUTPUT, 2) /* (K19) GPMC0_WEn.MCASP1_AXR0 */
368			AM62AX_IOPAD(0x084, PIN_INPUT, 2) /* (L18) GPMC0_ADVn_ALE.MCASP1_AXR2 */
369		>;
370	};
371
372	main_gpio1_ioexp_intr_pins_default: main-gpio1-ioexp-intr-default-pins {
373		pinctrl-single,pins = <
374			AM62AX_IOPAD(0x01d4, PIN_INPUT, 7) /* (C15) UART0_RTSn.GPIO1_23 */
375		>;
376	};
377
378	vddshv_sdio_pins_default: vddshv-sdio-default-pins {
379		pinctrl-single,pins = <
380			AM62AX_IOPAD(0x07c, PIN_OUTPUT, 7) /* (M19) GPMC0_CLK.GPIO0_31 */
381		>;
382	};
383};
384
385&mcu_pmx0 {
386	status = "okay";
387
388	pmic_irq_pins_default: pmic-irq-default-pins {
389		pinctrl-single,pins = <
390			AM62AX_MCU_IOPAD(0x000, PIN_INPUT, 7) /* (E11) MCU_GPIO0_0 */
391		>;
392	};
393};
394
395&mcu_gpio0 {
396	status = "okay";
397};
398
399&main_i2c0 {
400	status = "okay";
401	pinctrl-names = "default";
402	pinctrl-0 = <&main_i2c0_pins_default>;
403	clock-frequency = <400000>;
404
405	typec_pd0: usb-power-controller@3f {
406		compatible = "ti,tps6598x";
407		reg = <0x3f>;
408
409		connector {
410			compatible = "usb-c-connector";
411			label = "USB-C";
412			self-powered;
413			data-role = "dual";
414			power-role = "sink";
415			port {
416				usb_con_hs: endpoint {
417					remote-endpoint = <&usb0_hs_ep>;
418				};
419			};
420		};
421	};
422
423	tps659312: pmic@48 {
424		compatible = "ti,tps6593-q1";
425		reg = <0x48>;
426		ti,primary-pmic;
427		system-power-controller;
428
429		gpio-controller;
430		#gpio-cells = <2>;
431
432		pinctrl-names = "default";
433		pinctrl-0 = <&pmic_irq_pins_default>;
434		interrupt-parent = <&mcu_gpio0>;
435		interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
436
437		buck123-supply = <&vcc_3v3_sys>;
438		buck4-supply = <&vcc_3v3_sys>;
439		buck5-supply = <&vcc_3v3_sys>;
440		ldo1-supply = <&vcc_3v3_sys>;
441		ldo2-supply = <&vcc_3v3_sys>;
442		ldo3-supply = <&buck5>;
443		ldo4-supply = <&vcc_3v3_sys>;
444
445		regulators {
446			buck123: buck123 {
447				regulator-name = "vcc_core";
448				regulator-min-microvolt = <715000>;
449				regulator-max-microvolt = <895000>;
450				regulator-boot-on;
451				regulator-always-on;
452			};
453
454			buck4: buck4 {
455				regulator-name = "vcc_1v1";
456				regulator-min-microvolt = <1100000>;
457				regulator-max-microvolt = <1100000>;
458				regulator-boot-on;
459				regulator-always-on;
460			};
461
462			buck5: buck5 {
463				regulator-name = "vcc_1v8_sys";
464				regulator-min-microvolt = <1800000>;
465				regulator-max-microvolt = <1800000>;
466				regulator-boot-on;
467				regulator-always-on;
468			};
469
470			ldo1: ldo1 {
471				regulator-name = "vddshv5_sdio";
472				regulator-min-microvolt = <3300000>;
473				regulator-max-microvolt = <3300000>;
474				regulator-boot-on;
475				regulator-always-on;
476			};
477
478			ldo2: ldo2 {
479				regulator-name = "vpp_1v8";
480				regulator-min-microvolt = <1800000>;
481				regulator-max-microvolt = <1800000>;
482				regulator-boot-on;
483				regulator-always-on;
484			};
485
486			ldo3: ldo3 {
487				regulator-name = "vcc_0v85";
488				regulator-min-microvolt = <850000>;
489				regulator-max-microvolt = <850000>;
490				regulator-boot-on;
491				regulator-always-on;
492			};
493
494			ldo4: ldo4 {
495				regulator-name = "vdda_1v8";
496				regulator-min-microvolt = <1800000>;
497				regulator-max-microvolt = <1800000>;
498				regulator-boot-on;
499				regulator-always-on;
500			};
501		};
502	};
503};
504
505&main_i2c1 {
506	status = "okay";
507	pinctrl-names = "default";
508	pinctrl-0 = <&main_i2c1_pins_default>;
509	clock-frequency = <100000>;
510
511	exp1: gpio@22 {
512		compatible = "ti,tca6424";
513		reg = <0x22>;
514		gpio-controller;
515		#gpio-cells = <2>;
516		interrupt-parent = <&main_gpio1>;
517		interrupts = <23 IRQ_TYPE_EDGE_FALLING>;
518		interrupt-controller;
519		#interrupt-cells = <2>;
520		pinctrl-names = "default";
521		pinctrl-0 = <&main_gpio1_ioexp_intr_pins_default>;
522
523		gpio-line-names = "GPIO_CPSW2_RST", "GPIO_CPSW1_RST",
524				   "BT_EN_SOC", "MMC1_SD_EN",
525				   "VPP_EN", "EXP_PS_3V3_En",
526				   "EXP_PS_5V0_En", "EXP_HAT_DETECT",
527				   "GPIO_AUD_RSTn", "GPIO_eMMC_RSTn",
528				   "UART1_FET_BUF_EN", "BT_UART_WAKE_SOC",
529				   "GPIO_HDMI_RSTn", "CSI_GPIO0",
530				   "CSI_GPIO1", "WLAN_ALERTn",
531				   "HDMI_INTn", "TEST_GPIO2",
532				   "MCASP1_FET_EN", "MCASP1_BUF_BT_EN",
533				   "MCASP1_FET_SEL", "UART1_FET_SEL",
534				   "PD_I2C_IRQ", "IO_EXP_TEST_LED";
535	};
536
537	tlv320aic3106: audio-codec@1b {
538		#sound-dai-cells = <0>;
539		compatible = "ti,tlv320aic3106";
540		reg = <0x1b>;
541		ai3x-micbias-vg = <1>;	/* 2.0V */
542
543		/* Regulators */
544		AVDD-supply = <&vcc_3v3_sys>;
545		IOVDD-supply = <&vcc_3v3_sys>;
546		DRVDD-supply = <&vcc_3v3_sys>;
547		DVDD-supply = <&buck5>;
548	};
549
550	exp2: gpio@23 {
551		compatible = "ti,tca6424";
552		reg = <0x23>;
553		gpio-controller;
554		#gpio-cells = <2>;
555
556		gpio-line-names = "", "",
557				  "", "",
558				  "", "",
559				  "", "",
560				  "WL_LT_EN", "CSI_RSTz",
561				  "", "",
562				  "", "",
563				  "", "",
564				  "SPI0_FET_SEL", "SPI0_FET_OE",
565				  "RGMII2_BRD_CONN_DET", "CSI_SEL2",
566				  "CSI_EN", "AUTO_100M_1000M_CONFIG",
567				  "CSI_VLDO_SEL", "SoC_WLAN_SDIO_RST";
568	};
569
570	sii9022: bridge-hdmi@3b {
571		compatible = "sil,sii9022";
572		reg = <0x3b>;
573		interrupt-parent = <&exp1>;
574		interrupts = <16 IRQ_TYPE_EDGE_FALLING>;
575		#sound-dai-cells = <0>;
576		sil,i2s-data-lanes = < 0 >;
577
578		ports {
579			#address-cells = <1>;
580			#size-cells = <0>;
581
582			port@0 {
583				reg = <0>;
584
585				sii9022_in: endpoint {
586					remote-endpoint = <&dpi1_out>;
587				};
588			};
589
590			port@1 {
591				reg = <1>;
592
593				sii9022_out: endpoint {
594					remote-endpoint = <&hdmi_connector_in>;
595				};
596			};
597		};
598	};
599};
600
601&main_i2c2 {
602	status = "okay";
603	pinctrl-names = "default";
604	pinctrl-0 = <&main_i2c2_pins_default>;
605	clock-frequency = <400000>;
606};
607
608&sdhci0 {
609	/* eMMC */
610	status = "okay";
611	non-removable;
612	pinctrl-names = "default";
613	pinctrl-0 = <&main_mmc0_pins_default>;
614	disable-wp;
615};
616
617&sdhci1 {
618	/* SD/MMC */
619	status = "okay";
620	vmmc-supply = <&vdd_mmc1>;
621	vqmmc-supply = <&vddshv_sdio>;
622	pinctrl-names = "default";
623	pinctrl-0 = <&main_mmc1_pins_default>;
624	disable-wp;
625};
626
627&main_gpio0 {
628	status = "okay";
629};
630
631&main_gpio1 {
632	status = "okay";
633};
634
635&main_gpio_intr {
636	status = "okay";
637};
638
639&main_uart0 {
640	status = "okay";
641	pinctrl-names = "default";
642	pinctrl-0 = <&main_uart0_pins_default>;
643};
644
645/* Main UART1 is used for TIFS firmware logs */
646&main_uart1 {
647	pinctrl-names = "default";
648	pinctrl-0 = <&main_uart1_pins_default>;
649	status = "reserved";
650};
651
652&usbss0 {
653	status = "okay";
654	ti,vbus-divider;
655};
656
657&usb0 {
658	usb-role-switch;
659
660	port {
661		usb0_hs_ep: endpoint {
662			remote-endpoint = <&usb_con_hs>;
663		};
664	};
665};
666
667&usbss1 {
668	status = "okay";
669};
670
671&usb1 {
672	dr_mode = "host";
673	pinctrl-names = "default";
674	pinctrl-0 = <&main_usb1_pins_default>;
675};
676
677&cpsw3g {
678	status = "okay";
679	pinctrl-names = "default";
680	pinctrl-0 = <&main_rgmii1_pins_default>;
681};
682
683&cpsw_port1 {
684	status = "okay";
685	phy-mode = "rgmii-rxid";
686	phy-handle = <&cpsw3g_phy0>;
687};
688
689&cpsw_port2 {
690	status = "disabled";
691};
692
693&cpsw3g_mdio {
694	status = "okay";
695	pinctrl-names = "default";
696	pinctrl-0 = <&main_mdio1_pins_default>;
697
698	cpsw3g_phy0: ethernet-phy@0 {
699		reg = <0>;
700		ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_00_NS>;
701		ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_4_B_NIB>;
702		ti,min-output-impedance;
703	};
704};
705
706&mcasp1 {
707	status = "okay";
708	#sound-dai-cells = <0>;
709
710	pinctrl-names = "default";
711	pinctrl-0 = <&main_mcasp1_pins_default>;
712
713	op-mode = <0>;          /* MCASP_IIS_MODE */
714	tdm-slots = <2>;
715
716	serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
717	       1 0 2 0
718	       0 0 0 0
719	       0 0 0 0
720	       0 0 0 0
721	>;
722};
723
724&dss {
725	status = "okay";
726	pinctrl-names = "default";
727	pinctrl-0 = <&main_dss0_pins_default>;
728};
729
730&dss_ports {
731	/* VP2: DPI Output */
732	port@1 {
733		reg = <1>;
734
735		dpi1_out: endpoint {
736			remote-endpoint = <&sii9022_in>;
737		};
738	};
739};
740