xref: /linux/scripts/dtc/include-prefixes/arm64/ti/k3-am625-var-som.dtsi (revision 67f8bc848ee31831336bd478e57d2f993551902e)
1*887d9e03SStefano Radaelli// SPDX-License-Identifier: GPL-2.0
2*887d9e03SStefano Radaelli/*
3*887d9e03SStefano Radaelli * Common dtsi for Variscite VAR-SOM-AM62
4*887d9e03SStefano Radaelli *
5*887d9e03SStefano Radaelli * Link: https://variscite.com/system-on-module-som/ti-sitara-am62x/var-som-am62/
6*887d9e03SStefano Radaelli *
7*887d9e03SStefano Radaelli * Copyright (C) 2026 Variscite Ltd. - https://www.variscite.com/
8*887d9e03SStefano Radaelli * Copyright (C) 2026 Stefano Radaelli <stefano.r@variscite.com>
9*887d9e03SStefano Radaelli *
10*887d9e03SStefano Radaelli */
11*887d9e03SStefano Radaelli
12*887d9e03SStefano Radaelli/dts-v1/;
13*887d9e03SStefano Radaelli
14*887d9e03SStefano Radaelli#include <dt-bindings/gpio/gpio.h>
15*887d9e03SStefano Radaelli#include <dt-bindings/input/input.h>
16*887d9e03SStefano Radaelli#include <dt-bindings/interrupt-controller/arm-gic.h>
17*887d9e03SStefano Radaelli#include <dt-bindings/leds/common.h>
18*887d9e03SStefano Radaelli#include <dt-bindings/pwm/pwm.h>
19*887d9e03SStefano Radaelli#include "k3-am625.dtsi"
20*887d9e03SStefano Radaelli
21*887d9e03SStefano Radaelli/ {
22*887d9e03SStefano Radaelli	compatible = "variscite,var-som-am62", "ti,am625";
23*887d9e03SStefano Radaelli
24*887d9e03SStefano Radaelli	memory@80000000 {
25*887d9e03SStefano Radaelli		/* 2G RAM */
26*887d9e03SStefano Radaelli		reg = <0x00000000 0x80000000 0x00000000 0x80000000>;
27*887d9e03SStefano Radaelli		device_type = "memory";
28*887d9e03SStefano Radaelli		bootph-pre-ram;
29*887d9e03SStefano Radaelli	};
30*887d9e03SStefano Radaelli
31*887d9e03SStefano Radaelli	mmc_pwrseq: mmc-pwrseq {
32*887d9e03SStefano Radaelli		compatible = "mmc-pwrseq-emmc";
33*887d9e03SStefano Radaelli		pinctrl-names = "default";
34*887d9e03SStefano Radaelli		pinctrl-0 = <&pinctrl_mmc_pwrseq>;
35*887d9e03SStefano Radaelli		reset-gpios = <&main_gpio0 49 GPIO_ACTIVE_LOW>;
36*887d9e03SStefano Radaelli	};
37*887d9e03SStefano Radaelli
38*887d9e03SStefano Radaelli	opp-table {
39*887d9e03SStefano Radaelli		/* Add 1.4GHz OPP. Requires VDD_CORE to be at 0.85V */
40*887d9e03SStefano Radaelli		opp-1400000000 {
41*887d9e03SStefano Radaelli			opp-hz = /bits/ 64 <1400000000>;
42*887d9e03SStefano Radaelli			opp-supported-hw = <0x01 0x0004>;
43*887d9e03SStefano Radaelli			clock-latency-ns = <6000000>;
44*887d9e03SStefano Radaelli		};
45*887d9e03SStefano Radaelli	};
46*887d9e03SStefano Radaelli
47*887d9e03SStefano Radaelli	reserved_memory: reserved-memory {
48*887d9e03SStefano Radaelli		#address-cells = <2>;
49*887d9e03SStefano Radaelli		#size-cells = <2>;
50*887d9e03SStefano Radaelli		ranges;
51*887d9e03SStefano Radaelli
52*887d9e03SStefano Radaelli		ramoops@9ca00000 {
53*887d9e03SStefano Radaelli			compatible = "ramoops";
54*887d9e03SStefano Radaelli			reg = <0x00 0x9ca00000 0x00 0x00100000>;
55*887d9e03SStefano Radaelli			record-size = <0x8000>;
56*887d9e03SStefano Radaelli			console-size = <0x8000>;
57*887d9e03SStefano Radaelli			ftrace-size = <0x00>;
58*887d9e03SStefano Radaelli			pmsg-size = <0x8000>;
59*887d9e03SStefano Radaelli		};
60*887d9e03SStefano Radaelli
61*887d9e03SStefano Radaelli		/* global cma region */
62*887d9e03SStefano Radaelli		linux,cma {
63*887d9e03SStefano Radaelli			compatible = "shared-dma-pool";
64*887d9e03SStefano Radaelli			reusable;
65*887d9e03SStefano Radaelli			size = <0x00 0x8000000>;
66*887d9e03SStefano Radaelli			linux,cma-default;
67*887d9e03SStefano Radaelli		};
68*887d9e03SStefano Radaelli
69*887d9e03SStefano Radaelli		rtos_ipc_memory_region: rtos-ipc-memory@9b500000 {
70*887d9e03SStefano Radaelli			compatible = "shared-dma-pool";
71*887d9e03SStefano Radaelli			reg = <0x00 0x9b500000 0x00 0x00300000>;
72*887d9e03SStefano Radaelli			no-map;
73*887d9e03SStefano Radaelli		};
74*887d9e03SStefano Radaelli
75*887d9e03SStefano Radaelli		wkup_r5fss0_core0_dma_memory_region: memory@9da00000 {
76*887d9e03SStefano Radaelli			compatible = "shared-dma-pool";
77*887d9e03SStefano Radaelli			reg = <0x00 0x9da00000 0x00 0x100000>;
78*887d9e03SStefano Radaelli			no-map;
79*887d9e03SStefano Radaelli		};
80*887d9e03SStefano Radaelli
81*887d9e03SStefano Radaelli		wkup_r5fss0_core0_memory_region: memory@9db00000 {
82*887d9e03SStefano Radaelli			compatible = "shared-dma-pool";
83*887d9e03SStefano Radaelli			reg = <0x00 0x9db00000 0x00 0xc00000>;
84*887d9e03SStefano Radaelli			no-map;
85*887d9e03SStefano Radaelli		};
86*887d9e03SStefano Radaelli
87*887d9e03SStefano Radaelli		secure_tfa_ddr: tfa@9e780000 {
88*887d9e03SStefano Radaelli			reg = <0x00 0x9e780000 0x00 0x80000>;
89*887d9e03SStefano Radaelli			alignment = <0x1000>;
90*887d9e03SStefano Radaelli			no-map;
91*887d9e03SStefano Radaelli		};
92*887d9e03SStefano Radaelli
93*887d9e03SStefano Radaelli		secure_ddr: optee@9e800000 {
94*887d9e03SStefano Radaelli			reg = <0x00 0x9e800000 0x00 0x01800000>; /* for OP-TEE */
95*887d9e03SStefano Radaelli			alignment = <0x1000>;
96*887d9e03SStefano Radaelli			no-map;
97*887d9e03SStefano Radaelli		};
98*887d9e03SStefano Radaelli	};
99*887d9e03SStefano Radaelli
100*887d9e03SStefano Radaelli	reg_1v8: regulator-1v8 {
101*887d9e03SStefano Radaelli		compatible = "regulator-fixed";
102*887d9e03SStefano Radaelli		regulator-name = "On-module +V1.8";
103*887d9e03SStefano Radaelli		regulator-min-microvolt = <1800000>;
104*887d9e03SStefano Radaelli		regulator-max-microvolt = <1800000>;
105*887d9e03SStefano Radaelli		vin-supply = <&reg_3v3>;
106*887d9e03SStefano Radaelli		regulator-always-on;
107*887d9e03SStefano Radaelli		regulator-boot-on;
108*887d9e03SStefano Radaelli	};
109*887d9e03SStefano Radaelli
110*887d9e03SStefano Radaelli	reg_3v3: regulator-3v3 {
111*887d9e03SStefano Radaelli		compatible = "regulator-fixed";
112*887d9e03SStefano Radaelli		regulator-name = "On-module +V3.3";
113*887d9e03SStefano Radaelli		regulator-min-microvolt = <3300000>;
114*887d9e03SStefano Radaelli		regulator-max-microvolt = <3300000>;
115*887d9e03SStefano Radaelli		regulator-always-on;
116*887d9e03SStefano Radaelli		regulator-boot-on;
117*887d9e03SStefano Radaelli	};
118*887d9e03SStefano Radaelli
119*887d9e03SStefano Radaelli	reg_3v3_phy: regulator-3v3-phy {
120*887d9e03SStefano Radaelli		compatible = "regulator-fixed";
121*887d9e03SStefano Radaelli		regulator-name = "On-module +V3.3_PHY";
122*887d9e03SStefano Radaelli		pinctrl-names = "default";
123*887d9e03SStefano Radaelli		pinctrl-0 = <&pinctrl_eth_phy>;
124*887d9e03SStefano Radaelli		gpios = <&main_gpio0 45 GPIO_ACTIVE_HIGH>;
125*887d9e03SStefano Radaelli		enable-active-high;
126*887d9e03SStefano Radaelli		regulator-always-on;
127*887d9e03SStefano Radaelli	};
128*887d9e03SStefano Radaelli
129*887d9e03SStefano Radaelli	sound {
130*887d9e03SStefano Radaelli		compatible = "simple-audio-card";
131*887d9e03SStefano Radaelli		simple-audio-card,bitclock-master = <&codec_dai>;
132*887d9e03SStefano Radaelli		simple-audio-card,format = "dsp_b";
133*887d9e03SStefano Radaelli		simple-audio-card,frame-master = <&codec_dai>;
134*887d9e03SStefano Radaelli		simple-audio-card,name = "wm8904-audio";
135*887d9e03SStefano Radaelli		simple-audio-card,mclk-fs = <256>;
136*887d9e03SStefano Radaelli		simple-audio-card,routing =
137*887d9e03SStefano Radaelli			"Headphone Jack", "HPOUTL",
138*887d9e03SStefano Radaelli			"Headphone Jack", "HPOUTR",
139*887d9e03SStefano Radaelli			"IN2L", "Line In Jack",
140*887d9e03SStefano Radaelli			"IN2R", "Line In Jack",
141*887d9e03SStefano Radaelli			"IN1L", "Microphone Jack",
142*887d9e03SStefano Radaelli			"IN1R", "Microphone Jack";
143*887d9e03SStefano Radaelli		simple-audio-card,widgets =
144*887d9e03SStefano Radaelli			"Microphone", "Microphone Jack",
145*887d9e03SStefano Radaelli			"Headphone", "Headphone Jack",
146*887d9e03SStefano Radaelli			"Line", "Line In Jack";
147*887d9e03SStefano Radaelli
148*887d9e03SStefano Radaelli		codec_dai: simple-audio-card,codec {
149*887d9e03SStefano Radaelli			sound-dai = <&wm8904>;
150*887d9e03SStefano Radaelli		};
151*887d9e03SStefano Radaelli
152*887d9e03SStefano Radaelli		simple-audio-card,cpu {
153*887d9e03SStefano Radaelli			sound-dai = <&mcasp1>;
154*887d9e03SStefano Radaelli		};
155*887d9e03SStefano Radaelli	};
156*887d9e03SStefano Radaelli};
157*887d9e03SStefano Radaelli
158*887d9e03SStefano Radaelli&audio_refclk1 {
159*887d9e03SStefano Radaelli	assigned-clock-rates = <12000000>;
160*887d9e03SStefano Radaelli};
161*887d9e03SStefano Radaelli
162*887d9e03SStefano Radaelli&cpsw3g {
163*887d9e03SStefano Radaelli	pinctrl-names = "default";
164*887d9e03SStefano Radaelli	pinctrl-0 = <&pinctrl_rgmii1>;
165*887d9e03SStefano Radaelli	status = "okay";
166*887d9e03SStefano Radaelli};
167*887d9e03SStefano Radaelli
168*887d9e03SStefano Radaelli&cpsw3g_mdio {
169*887d9e03SStefano Radaelli	pinctrl-names = "default";
170*887d9e03SStefano Radaelli	pinctrl-0 = <&pinctrl_mdio1>;
171*887d9e03SStefano Radaelli	status = "okay";
172*887d9e03SStefano Radaelli
173*887d9e03SStefano Radaelli	cpsw3g_phy0: ethernet-phy@4 {
174*887d9e03SStefano Radaelli		compatible = "ethernet-phy-id0283.bc30";
175*887d9e03SStefano Radaelli		reg = <4>;
176*887d9e03SStefano Radaelli		bootph-all;
177*887d9e03SStefano Radaelli		reset-gpios = <&main_gpio0 46 GPIO_ACTIVE_LOW>;
178*887d9e03SStefano Radaelli		reset-assert-us = <10000>;
179*887d9e03SStefano Radaelli		reset-deassert-us = <20000>;
180*887d9e03SStefano Radaelli	};
181*887d9e03SStefano Radaelli};
182*887d9e03SStefano Radaelli
183*887d9e03SStefano Radaelli&cpsw_port1 {
184*887d9e03SStefano Radaelli	/*
185*887d9e03SStefano Radaelli	 * The required RGMII TX and RX 2ns delays are implemented directly
186*887d9e03SStefano Radaelli	 * in hardware via passive delay elements on the SOM PCB.
187*887d9e03SStefano Radaelli	 * No delay configuration is needed in software via PHY driver.
188*887d9e03SStefano Radaelli	 */
189*887d9e03SStefano Radaelli	phy-mode = "rgmii";
190*887d9e03SStefano Radaelli	phy-handle = <&cpsw3g_phy0>;
191*887d9e03SStefano Radaelli	status = "okay";
192*887d9e03SStefano Radaelli};
193*887d9e03SStefano Radaelli
194*887d9e03SStefano Radaelli&main_i2c2 {
195*887d9e03SStefano Radaelli	pinctrl-names = "default";
196*887d9e03SStefano Radaelli	pinctrl-0 = <&pinctrl_i2c2>;
197*887d9e03SStefano Radaelli	clock-frequency = <400000>;
198*887d9e03SStefano Radaelli	status = "okay";
199*887d9e03SStefano Radaelli
200*887d9e03SStefano Radaelli	wm8904: audio-codec@1a {
201*887d9e03SStefano Radaelli		compatible = "wlf,wm8904";
202*887d9e03SStefano Radaelli		reg = <0x1a>;
203*887d9e03SStefano Radaelli		#sound-dai-cells = <0>;
204*887d9e03SStefano Radaelli		clocks = <&audio_refclk1>;
205*887d9e03SStefano Radaelli		clock-names = "mclk";
206*887d9e03SStefano Radaelli		AVDD-supply = <&reg_1v8>;
207*887d9e03SStefano Radaelli		CPVDD-supply = <&reg_1v8>;
208*887d9e03SStefano Radaelli		DBVDD-supply = <&reg_3v3>;
209*887d9e03SStefano Radaelli		DCVDD-supply = <&reg_1v8>;
210*887d9e03SStefano Radaelli		MICVDD-supply = <&reg_1v8>;
211*887d9e03SStefano Radaelli		wlf,drc-cfg-names = "default", "peaklimiter", "tradition",
212*887d9e03SStefano Radaelli				    "soft", "music";
213*887d9e03SStefano Radaelli		/*
214*887d9e03SStefano Radaelli		 * Config registers per name, respectively:
215*887d9e03SStefano Radaelli		 * KNEE_IP = 0,   KNEE_OP = 0,     HI_COMP = 1,   LO_COMP = 1
216*887d9e03SStefano Radaelli		 * KNEE_IP = -24, KNEE_OP = -6,    HI_COMP = 1/4, LO_COMP = 1
217*887d9e03SStefano Radaelli		 * KNEE_IP = -42, KNEE_OP = -3,    HI_COMP = 0,   LO_COMP = 1
218*887d9e03SStefano Radaelli		 * KNEE_IP = -45, KNEE_OP = -9,    HI_COMP = 1/8, LO_COMP = 1
219*887d9e03SStefano Radaelli		 * KNEE_IP = -30, KNEE_OP = -10.5, HI_COMP = 1/4, LO_COMP = 1
220*887d9e03SStefano Radaelli		 */
221*887d9e03SStefano Radaelli		wlf,drc-cfg-regs = /bits/ 16 <0x01af 0x3248 0x0000 0x0000>,
222*887d9e03SStefano Radaelli				   /bits/ 16 <0x04af 0x324b 0x0010 0x0408>,
223*887d9e03SStefano Radaelli				   /bits/ 16 <0x04af 0x324b 0x0028 0x0704>,
224*887d9e03SStefano Radaelli				   /bits/ 16 <0x04af 0x324b 0x0018 0x078c>,
225*887d9e03SStefano Radaelli				   /bits/ 16 <0x04af 0x324b 0x0010 0x050e>;
226*887d9e03SStefano Radaelli		/* GPIO1 = DMIC_CLK, don't touch others */
227*887d9e03SStefano Radaelli		wlf,gpio-cfg = <0x0018>, <0xffff>, <0xffff>, <0xffff>;
228*887d9e03SStefano Radaelli	};
229*887d9e03SStefano Radaelli};
230*887d9e03SStefano Radaelli
231*887d9e03SStefano Radaelli&main_i2c3 {
232*887d9e03SStefano Radaelli	pinctrl-names = "default";
233*887d9e03SStefano Radaelli	pinctrl-0 = <&pinctrl_i2c3>;
234*887d9e03SStefano Radaelli	clock-frequency = <400000>;
235*887d9e03SStefano Radaelli	status = "okay";
236*887d9e03SStefano Radaelli};
237*887d9e03SStefano Radaelli
238*887d9e03SStefano Radaelli&main_pmx0 {
239*887d9e03SStefano Radaelli	pinctrl_i2c2: main-i2c2-default-pins {
240*887d9e03SStefano Radaelli		pinctrl-single,pins = <
241*887d9e03SStefano Radaelli			AM62X_IOPAD(0x0b0, PIN_INPUT_PULLUP, 1) /* (K22) GPMC0_CSn2.I2C2_SCL */
242*887d9e03SStefano Radaelli			AM62X_IOPAD(0x0b4, PIN_INPUT_PULLUP, 1) /* (K24) GPMC0_CSn3.I2C2_SDA */
243*887d9e03SStefano Radaelli		>;
244*887d9e03SStefano Radaelli	};
245*887d9e03SStefano Radaelli
246*887d9e03SStefano Radaelli	pinctrl_i2c3: main-i2c3-default-pins {
247*887d9e03SStefano Radaelli		pinctrl-single,pins = <
248*887d9e03SStefano Radaelli			AM62X_IOPAD(0x01d0, PIN_INPUT, 2) /* (A15) UART0_CTSn.I2C3_SCL */
249*887d9e03SStefano Radaelli			AM62X_IOPAD(0x01d4, PIN_INPUT, 2) /* (B15) UART0_RTSn.I2C3_SDA */
250*887d9e03SStefano Radaelli		>;
251*887d9e03SStefano Radaelli	};
252*887d9e03SStefano Radaelli
253*887d9e03SStefano Radaelli	pinctrl_mcasp1: main-mcasp1-default-pins {
254*887d9e03SStefano Radaelli		pinctrl-single,pins = <
255*887d9e03SStefano Radaelli			AM62X_IOPAD(0x0090, PIN_INPUT, 2) /* (M24) GPMC0_BE0N_CLE.MCASP1_ACLKX */
256*887d9e03SStefano Radaelli			AM62X_IOPAD(0x0098, PIN_INPUT, 2) /* (U23) GPMC0_WAIT0.MCASP1_AFSX */
257*887d9e03SStefano Radaelli			AM62X_IOPAD(0x008c, PIN_OUTPUT, 2) /* (L25) GPMC0_WEN.MCASP1_AXR0 */
258*887d9e03SStefano Radaelli			AM62X_IOPAD(0x0084, PIN_INPUT, 2) /* (L23) GPMC0_ADVN_ALE.MCASP1_AXR2 */
259*887d9e03SStefano Radaelli			AM62X_IOPAD(0x00a0, PIN_OUTPUT, 1) /* (K25) GPMC0_WPn.AUDIO_EXT_REFCLK1 */
260*887d9e03SStefano Radaelli		>;
261*887d9e03SStefano Radaelli	};
262*887d9e03SStefano Radaelli
263*887d9e03SStefano Radaelli	pinctrl_mdio1: main-mdio1-default-pins {
264*887d9e03SStefano Radaelli		pinctrl-single,pins = <
265*887d9e03SStefano Radaelli			AM62X_IOPAD(0x160, PIN_INPUT, 0) /* (AD24) MDIO0_MDC */
266*887d9e03SStefano Radaelli			AM62X_IOPAD(0x15c, PIN_INPUT, 0) /* (AB22) MDIO0_MDIO */
267*887d9e03SStefano Radaelli		>;
268*887d9e03SStefano Radaelli	};
269*887d9e03SStefano Radaelli
270*887d9e03SStefano Radaelli	pinctrl_mmc_pwrseq: pinmux-mmc-pwrseq-pins {
271*887d9e03SStefano Radaelli		pinctrl-single,pins = <
272*887d9e03SStefano Radaelli			AM62X_IOPAD(0x00c8, PIN_OUTPUT, 7) /* (Y25) VOUT0_DATA4.GPIO0_49 */
273*887d9e03SStefano Radaelli		>;
274*887d9e03SStefano Radaelli	};
275*887d9e03SStefano Radaelli
276*887d9e03SStefano Radaelli	pinctrl_mmc0: main-mmc0-default-pins {
277*887d9e03SStefano Radaelli		bootph-all;
278*887d9e03SStefano Radaelli		pinctrl-single,pins = <
279*887d9e03SStefano Radaelli			AM62X_IOPAD(0x220, PIN_INPUT, 0) /* (Y3) MMC0_CMD */
280*887d9e03SStefano Radaelli			AM62X_IOPAD(0x218, PIN_INPUT, 0) /* (AB1) MMC0_CLK */
281*887d9e03SStefano Radaelli			AM62X_IOPAD(0x214, PIN_INPUT, 0) /* (AA2) MMC0_DAT0 */
282*887d9e03SStefano Radaelli			AM62X_IOPAD(0x210, PIN_INPUT, 0) /* (AA1) MMC0_DAT1 */
283*887d9e03SStefano Radaelli			AM62X_IOPAD(0x20c, PIN_INPUT, 0) /* (AA3) MMC0_DAT2 */
284*887d9e03SStefano Radaelli			AM62X_IOPAD(0x208, PIN_INPUT, 0) /* (Y4) MMC0_DAT3 */
285*887d9e03SStefano Radaelli			AM62X_IOPAD(0x204, PIN_INPUT, 0) /* (AB2) MMC0_DAT4 */
286*887d9e03SStefano Radaelli			AM62X_IOPAD(0x200, PIN_INPUT, 0) /* (AC1) MMC0_DAT5 */
287*887d9e03SStefano Radaelli			AM62X_IOPAD(0x1fc, PIN_INPUT, 0) /* (AD2) MMC0_DAT6 */
288*887d9e03SStefano Radaelli			AM62X_IOPAD(0x1f8, PIN_INPUT, 0) /* (AC2) MMC0_DAT7 */
289*887d9e03SStefano Radaelli		>;
290*887d9e03SStefano Radaelli	};
291*887d9e03SStefano Radaelli
292*887d9e03SStefano Radaelli	pinctrl_mmc2: main-mmc2-default-pins {
293*887d9e03SStefano Radaelli		pinctrl-single,pins = <
294*887d9e03SStefano Radaelli			AM62X_IOPAD(0x120, PIN_INPUT_PULLUP, 0) /* (C24) MMC2_CMD */
295*887d9e03SStefano Radaelli			AM62X_IOPAD(0x118, PIN_INPUT_PULLDOWN, 0) /* (D25) MMC2_CLK */
296*887d9e03SStefano Radaelli			AM62X_IOPAD(0x114, PIN_INPUT_PULLUP, 0) /* (B24) MMC2_DAT0 */
297*887d9e03SStefano Radaelli			AM62X_IOPAD(0x110, PIN_INPUT_PULLUP, 0) /* (C25) MMC2_DAT1 */
298*887d9e03SStefano Radaelli			AM62X_IOPAD(0x10c, PIN_INPUT_PULLUP, 0) /* (E23) MMC2_DAT2 */
299*887d9e03SStefano Radaelli			AM62X_IOPAD(0x108, PIN_INPUT_PULLUP, 0) /* (D24) MMC2_DAT3 */
300*887d9e03SStefano Radaelli			AM62X_IOPAD(0x11c, PIN_INPUT_PULLUP, 0) /* (#N/A) MMC2_CLKB */
301*887d9e03SStefano Radaelli		>;
302*887d9e03SStefano Radaelli	};
303*887d9e03SStefano Radaelli
304*887d9e03SStefano Radaelli	pinctrl_restouch: main-restouch-pins {
305*887d9e03SStefano Radaelli		pinctrl-single,pins = <
306*887d9e03SStefano Radaelli			AM62X_IOPAD(0x00c4, PIN_INPUT_PULLUP, 7) /* (W24) VOUT0_DATA3.GPIO0_48 */
307*887d9e03SStefano Radaelli		>;
308*887d9e03SStefano Radaelli	};
309*887d9e03SStefano Radaelli
310*887d9e03SStefano Radaelli	pinctrl_rgmii1: main-rgmii1-default-pins {
311*887d9e03SStefano Radaelli		bootph-all;
312*887d9e03SStefano Radaelli		pinctrl-single,pins = <
313*887d9e03SStefano Radaelli			AM62X_IOPAD(0x14c, PIN_INPUT, 0) /* (AB17) RGMII1_RD0 */
314*887d9e03SStefano Radaelli			AM62X_IOPAD(0x150, PIN_INPUT, 0) /* (AC17) RGMII1_RD1 */
315*887d9e03SStefano Radaelli			AM62X_IOPAD(0x154, PIN_INPUT, 0) /* (AB16) RGMII1_RD2 */
316*887d9e03SStefano Radaelli			AM62X_IOPAD(0x158, PIN_INPUT, 0) /* (AA15) RGMII1_RD3 */
317*887d9e03SStefano Radaelli			AM62X_IOPAD(0x148, PIN_INPUT, 0) /* (AD17) RGMII1_RXC */
318*887d9e03SStefano Radaelli			AM62X_IOPAD(0x144, PIN_INPUT, 0) /* (AE17) RGMII1_RX_CTL */
319*887d9e03SStefano Radaelli			AM62X_IOPAD(0x134, PIN_INPUT, 0) /* (AE20) RGMII1_TD0 */
320*887d9e03SStefano Radaelli			AM62X_IOPAD(0x138, PIN_INPUT, 0) /* (AD20) RGMII1_TD1 */
321*887d9e03SStefano Radaelli			AM62X_IOPAD(0x13c, PIN_INPUT, 0) /* (AE18) RGMII1_TD2 */
322*887d9e03SStefano Radaelli			AM62X_IOPAD(0x140, PIN_INPUT, 0) /* (AD18) RGMII1_TD3 */
323*887d9e03SStefano Radaelli			AM62X_IOPAD(0x130, PIN_INPUT, 0) /* (AE19) RGMII1_TXC */
324*887d9e03SStefano Radaelli			AM62X_IOPAD(0x12c, PIN_INPUT, 0) /* (AD19) RGMII1_TX_CTL */
325*887d9e03SStefano Radaelli			AM62X_IOPAD(0x00bc, PIN_INPUT, 7) /* (V24) VOUT0_DATA1.GPIO0_46 */
326*887d9e03SStefano Radaelli		>;
327*887d9e03SStefano Radaelli	};
328*887d9e03SStefano Radaelli
329*887d9e03SStefano Radaelli	pinctrl_eth_phy: main-eth-phy-default-pins {
330*887d9e03SStefano Radaelli		pinctrl-single,pins = <
331*887d9e03SStefano Radaelli			AM62X_IOPAD(0x00b8, PIN_INPUT, 7) /* (U22) VOUT0_DATA0.GPIO0_45 */
332*887d9e03SStefano Radaelli		>;
333*887d9e03SStefano Radaelli	};
334*887d9e03SStefano Radaelli
335*887d9e03SStefano Radaelli	pinctrl_spi0: main-spi0-default-pins {
336*887d9e03SStefano Radaelli		pinctrl-single,pins = <
337*887d9e03SStefano Radaelli			AM62X_IOPAD(0x01bc, PIN_OUTPUT, 0) /* (A14) SPI0_CLK */
338*887d9e03SStefano Radaelli			AM62X_IOPAD(0x01b4, PIN_OUTPUT, 0) /* (A13) SPI0_CS0 */
339*887d9e03SStefano Radaelli			AM62X_IOPAD(0x01c0, PIN_OUTPUT, 0) /* (B13) SPI0_D0 */
340*887d9e03SStefano Radaelli			AM62X_IOPAD(0x01c4, PIN_INPUT, 0) /* (B14) SPI0_D1 */
341*887d9e03SStefano Radaelli		>;
342*887d9e03SStefano Radaelli	};
343*887d9e03SStefano Radaelli
344*887d9e03SStefano Radaelli	pinctrl_uart5: main-uart5-default-pins {
345*887d9e03SStefano Radaelli		pinctrl-single,pins = <
346*887d9e03SStefano Radaelli			AM62X_IOPAD(0x00ec, PIN_INPUT, 4) /* (AA24) VOUT0_DATA13.UART5_CTSn */
347*887d9e03SStefano Radaelli			AM62X_IOPAD(0x00e8, PIN_OUTPUT, 4) /* (AB25) VOUT0_DATA12.UART5_RTSn */
348*887d9e03SStefano Radaelli			AM62X_IOPAD(0x00d0, PIN_INPUT, 4) /* (Y23) VOUT0_DATA6.UART5_RXD */
349*887d9e03SStefano Radaelli			AM62X_IOPAD(0x00d4, PIN_OUTPUT, 4) /* (AA25) VOUT0_DATA7.UART5_TXD */
350*887d9e03SStefano Radaelli		>;
351*887d9e03SStefano Radaelli	};
352*887d9e03SStefano Radaelli};
353*887d9e03SStefano Radaelli
354*887d9e03SStefano Radaelli&mcu_pmx0 {
355*887d9e03SStefano Radaelli	pinctrl_wkup_clkout0: wkup-clkout0-default-pins {
356*887d9e03SStefano Radaelli		pinctrl-single,pins = <
357*887d9e03SStefano Radaelli			AM62X_MCU_IOPAD(0x0084, PIN_OUTPUT, 0) /* (F13) WKUP_CLKOUT0 */
358*887d9e03SStefano Radaelli		>;
359*887d9e03SStefano Radaelli	};
360*887d9e03SStefano Radaelli};
361*887d9e03SStefano Radaelli
362*887d9e03SStefano Radaelli&main_spi0 {
363*887d9e03SStefano Radaelli	pinctrl-names = "default";
364*887d9e03SStefano Radaelli	pinctrl-0 = <&pinctrl_spi0>;
365*887d9e03SStefano Radaelli	ti,pindir-d0-out-d1-in;
366*887d9e03SStefano Radaelli	status = "okay";
367*887d9e03SStefano Radaelli
368*887d9e03SStefano Radaelli	/* Resistive touch controller */
369*887d9e03SStefano Radaelli	ads7846: touchscreen@0 {
370*887d9e03SStefano Radaelli		compatible = "ti,ads7846";
371*887d9e03SStefano Radaelli		reg = <0>;
372*887d9e03SStefano Radaelli		pinctrl-names = "default";
373*887d9e03SStefano Radaelli		pinctrl-0 = <&pinctrl_restouch>;
374*887d9e03SStefano Radaelli		interrupt-parent = <&main_gpio0>;
375*887d9e03SStefano Radaelli		interrupts = <48 IRQ_TYPE_EDGE_FALLING>;
376*887d9e03SStefano Radaelli		spi-max-frequency = <1500000>;
377*887d9e03SStefano Radaelli		pendown-gpio = <&main_gpio0 48 GPIO_ACTIVE_LOW>;
378*887d9e03SStefano Radaelli		ti,x-min = /bits/ 16 <125>;
379*887d9e03SStefano Radaelli		ti,x-max = /bits/ 16 <4008>;
380*887d9e03SStefano Radaelli		ti,y-min = /bits/ 16 <282>;
381*887d9e03SStefano Radaelli		ti,y-max = /bits/ 16 <3864>;
382*887d9e03SStefano Radaelli		ti,x-plate-ohms = /bits/ 16 <180>;
383*887d9e03SStefano Radaelli		ti,pressure-max = /bits/ 16 <255>;
384*887d9e03SStefano Radaelli		ti,debounce-max = /bits/ 16 <10>;
385*887d9e03SStefano Radaelli		ti,debounce-tol = /bits/ 16 <3>;
386*887d9e03SStefano Radaelli		ti,debounce-rep = /bits/ 16 <1>;
387*887d9e03SStefano Radaelli		ti,settle-delay-usec = /bits/ 16 <150>;
388*887d9e03SStefano Radaelli		ti,keep-vref-on;
389*887d9e03SStefano Radaelli		wakeup-source;
390*887d9e03SStefano Radaelli	};
391*887d9e03SStefano Radaelli};
392*887d9e03SStefano Radaelli
393*887d9e03SStefano Radaelli/* On-module Bluetooth */
394*887d9e03SStefano Radaelli&main_uart5 {
395*887d9e03SStefano Radaelli	pinctrl-names = "default";
396*887d9e03SStefano Radaelli	pinctrl-0 = <&pinctrl_uart5>;
397*887d9e03SStefano Radaelli	uart-has-rtscts;
398*887d9e03SStefano Radaelli	status = "okay";
399*887d9e03SStefano Radaelli};
400*887d9e03SStefano Radaelli
401*887d9e03SStefano Radaelli&mcasp1 {
402*887d9e03SStefano Radaelli	pinctrl-names = "default";
403*887d9e03SStefano Radaelli	pinctrl-0 = <&pinctrl_mcasp1>;
404*887d9e03SStefano Radaelli	op-mode = <0>;  /* MCASP_IIS_MODE */
405*887d9e03SStefano Radaelli	serial-dir = <  /* 0: INACTIVE, 1: TX, 2: RX */
406*887d9e03SStefano Radaelli		1 0 2 0
407*887d9e03SStefano Radaelli		0 0 0 0
408*887d9e03SStefano Radaelli		0 0 0 0
409*887d9e03SStefano Radaelli		0 0 0 0
410*887d9e03SStefano Radaelli	>;
411*887d9e03SStefano Radaelli	tdm-slots = <2>;
412*887d9e03SStefano Radaelli	#sound-dai-cells = <0>;
413*887d9e03SStefano Radaelli	status = "okay";
414*887d9e03SStefano Radaelli};
415*887d9e03SStefano Radaelli
416*887d9e03SStefano Radaelli/* On-module eMMC */
417*887d9e03SStefano Radaelli&sdhci0 {
418*887d9e03SStefano Radaelli	pinctrl-names = "default";
419*887d9e03SStefano Radaelli	pinctrl-0 = <&pinctrl_mmc0>;
420*887d9e03SStefano Radaelli	bootph-all;
421*887d9e03SStefano Radaelli	disable-wp;
422*887d9e03SStefano Radaelli	mmc-pwrseq = <&mmc_pwrseq>;
423*887d9e03SStefano Radaelli	non-removable;
424*887d9e03SStefano Radaelli	status="okay";
425*887d9e03SStefano Radaelli};
426*887d9e03SStefano Radaelli
427*887d9e03SStefano Radaelli/* On-module Wi-Fi */
428*887d9e03SStefano Radaelli&sdhci2 {
429*887d9e03SStefano Radaelli	pinctrl-names = "default";
430*887d9e03SStefano Radaelli	pinctrl-0 = <&pinctrl_mmc2>, <&pinctrl_wkup_clkout0>;
431*887d9e03SStefano Radaelli	#address-cells = <1>;
432*887d9e03SStefano Radaelli	#size-cells = <0>;
433*887d9e03SStefano Radaelli	assigned-clocks = <&k3_clks 157 158>; /* wkup_clkout_sel_out0 */
434*887d9e03SStefano Radaelli	assigned-clock-parents = <&k3_clks 157 164>; /* clk_32k_rc_sel_out0 */
435*887d9e03SStefano Radaelli	bus-width = <4>;
436*887d9e03SStefano Radaelli	disable-wp;
437*887d9e03SStefano Radaelli	non-removable;
438*887d9e03SStefano Radaelli	cap-power-off-card;
439*887d9e03SStefano Radaelli	status = "okay";
440*887d9e03SStefano Radaelli
441*887d9e03SStefano Radaelli	brcmf: wifi@1 {
442*887d9e03SStefano Radaelli		compatible = "brcm,bcm4329-fmac";
443*887d9e03SStefano Radaelli		reg = <1>;
444*887d9e03SStefano Radaelli	};
445*887d9e03SStefano Radaelli};
446*887d9e03SStefano Radaelli
447*887d9e03SStefano Radaelli&usbss0 {
448*887d9e03SStefano Radaelli	ti,vbus-divider;
449*887d9e03SStefano Radaelli};
450*887d9e03SStefano Radaelli
451*887d9e03SStefano Radaelli&usbss1 {
452*887d9e03SStefano Radaelli	ti,vbus-divider;
453*887d9e03SStefano Radaelli};
454*887d9e03SStefano Radaelli
455*887d9e03SStefano Radaelli/* mcu_gpio0 and mcu_gpio_intr are reserved for mcu firmware usage */
456*887d9e03SStefano Radaelli&mcu_gpio0 {
457*887d9e03SStefano Radaelli	status = "reserved";
458*887d9e03SStefano Radaelli};
459*887d9e03SStefano Radaelli
460*887d9e03SStefano Radaelli&mcu_gpio_intr {
461*887d9e03SStefano Radaelli	status = "reserved";
462*887d9e03SStefano Radaelli};
463*887d9e03SStefano Radaelli
464*887d9e03SStefano Radaelli&wkup_rtc0 {
465*887d9e03SStefano Radaelli	status = "disabled";
466*887d9e03SStefano Radaelli};
467*887d9e03SStefano Radaelli
468*887d9e03SStefano Radaelli&wkup_rti0 {
469*887d9e03SStefano Radaelli	/* WKUP RTI0 is used by DM firmware */
470*887d9e03SStefano Radaelli	status = "reserved";
471*887d9e03SStefano Radaelli};
472*887d9e03SStefano Radaelli
473*887d9e03SStefano Radaelli&wkup_uart0 {
474*887d9e03SStefano Radaelli	/* WKUP UART0 is used by DM firmware */
475*887d9e03SStefano Radaelli	status = "reserved";
476*887d9e03SStefano Radaelli};
477*887d9e03SStefano Radaelli
478*887d9e03SStefano Radaelli&main_uart1 {
479*887d9e03SStefano Radaelli	/* Main UART1 is used by TIFS firmware */
480*887d9e03SStefano Radaelli	status = "reserved";
481*887d9e03SStefano Radaelli};
482*887d9e03SStefano Radaelli
483*887d9e03SStefano Radaelli#include "k3-am62-ti-ipc-firmware.dtsi"
484