xref: /linux/arch/arm64/boot/dts/ti/k3-am642-hummingboard-t.dts (revision a1ff5a7d78a036d6c2178ee5acd6ba4946243800)
1*d60483faSJosua Mayer// SPDX-License-Identifier: GPL-2.0+
2*d60483faSJosua Mayer/*
3*d60483faSJosua Mayer * Copyright (C) 2023 Josua Mayer <josua@solid-run.com>
4*d60483faSJosua Mayer *
5*d60483faSJosua Mayer * DTS for SolidRun AM642 HummingBoard-T,
6*d60483faSJosua Mayer * running on Cortex A53.
7*d60483faSJosua Mayer *
8*d60483faSJosua Mayer */
9*d60483faSJosua Mayer
10*d60483faSJosua Mayer/dts-v1/;
11*d60483faSJosua Mayer
12*d60483faSJosua Mayer#include <dt-bindings/leds/common.h>
13*d60483faSJosua Mayer#include <dt-bindings/phy/phy.h>
14*d60483faSJosua Mayer
15*d60483faSJosua Mayer#include "k3-am642.dtsi"
16*d60483faSJosua Mayer#include "k3-am642-sr-som.dtsi"
17*d60483faSJosua Mayer
18*d60483faSJosua Mayer/ {
19*d60483faSJosua Mayer	model = "SolidRun AM642 HummingBoard-T";
20*d60483faSJosua Mayer	compatible = "solidrun,am642-hummingboard-t", "solidrun,am642-sr-som", "ti,am642";
21*d60483faSJosua Mayer
22*d60483faSJosua Mayer	aliases {
23*d60483faSJosua Mayer		serial5 = &main_uart3;
24*d60483faSJosua Mayer	};
25*d60483faSJosua Mayer
26*d60483faSJosua Mayer	leds {
27*d60483faSJosua Mayer		compatible = "gpio-leds";
28*d60483faSJosua Mayer		pinctrl-names = "default";
29*d60483faSJosua Mayer		pinctrl-0 = <&leds_default_pins>;
30*d60483faSJosua Mayer
31*d60483faSJosua Mayer		/* D24 */
32*d60483faSJosua Mayer		led1: led-1 {
33*d60483faSJosua Mayer			label = "led1";
34*d60483faSJosua Mayer			gpios = <&main_gpio0 29 GPIO_ACTIVE_HIGH>;
35*d60483faSJosua Mayer			color = <LED_COLOR_ID_GREEN>;
36*d60483faSJosua Mayer		};
37*d60483faSJosua Mayer
38*d60483faSJosua Mayer		/* D25 */
39*d60483faSJosua Mayer		led2: led-2 {
40*d60483faSJosua Mayer			label = "led2";
41*d60483faSJosua Mayer			gpios = <&main_gpio0 30 GPIO_ACTIVE_HIGH>;
42*d60483faSJosua Mayer			color = <LED_COLOR_ID_GREEN>;
43*d60483faSJosua Mayer		};
44*d60483faSJosua Mayer
45*d60483faSJosua Mayer		/* D26 */
46*d60483faSJosua Mayer		led3: led-3 {
47*d60483faSJosua Mayer			label = "led3";
48*d60483faSJosua Mayer			gpios = <&main_gpio0 33 GPIO_ACTIVE_HIGH>;
49*d60483faSJosua Mayer			color = <LED_COLOR_ID_GREEN>;
50*d60483faSJosua Mayer		};
51*d60483faSJosua Mayer	};
52*d60483faSJosua Mayer
53*d60483faSJosua Mayer	regulator-m2-3v3 {
54*d60483faSJosua Mayer		compatible = "regulator-fixed";
55*d60483faSJosua Mayer		pinctrl-names = "default";
56*d60483faSJosua Mayer		pinctrl-0 = <&regulator_pcie_3v3_default_pins>;
57*d60483faSJosua Mayer		regulator-name = "m2-3v3";
58*d60483faSJosua Mayer		regulator-min-microvolt = <3300000>;
59*d60483faSJosua Mayer		regulator-max-microvolt = <3300000>;
60*d60483faSJosua Mayer		gpio = <&main_gpio1 17 GPIO_ACTIVE_HIGH>;
61*d60483faSJosua Mayer		enable-active-high;
62*d60483faSJosua Mayer		regulator-always-on;
63*d60483faSJosua Mayer	};
64*d60483faSJosua Mayer
65*d60483faSJosua Mayer	regulator-vpp-1v8 {
66*d60483faSJosua Mayer		compatible = "regulator-fixed";
67*d60483faSJosua Mayer		pinctrl-names = "default";
68*d60483faSJosua Mayer		pinctrl-0 = <&regulator_vpp_1v8_default_pins>;
69*d60483faSJosua Mayer		regulator-name = "vpp-1v8";
70*d60483faSJosua Mayer		regulator-min-microvolt = <1800000>;
71*d60483faSJosua Mayer		regulator-max-microvolt = <1800000>;
72*d60483faSJosua Mayer		gpio = <&main_gpio1 78 GPIO_ACTIVE_HIGH>;
73*d60483faSJosua Mayer		enable-active-high;
74*d60483faSJosua Mayer	};
75*d60483faSJosua Mayer
76*d60483faSJosua Mayer	serdes_mux: mux-controller {
77*d60483faSJosua Mayer		compatible = "gpio-mux";
78*d60483faSJosua Mayer		pinctrl-names = "default";
79*d60483faSJosua Mayer		pinctrl-0 = <&serdes_mux_default_pins>;
80*d60483faSJosua Mayer		#mux-control-cells = <0>;
81*d60483faSJosua Mayer		/*
82*d60483faSJosua Mayer		 * Mux has 2 IOs:
83*d60483faSJosua Mayer		 * - select: 0 = USB-3 (M2); 1 = PCIE (M1)
84*d60483faSJosua Mayer		 * - shutdown: 0 = active; 1 = disabled (high impedance)
85*d60483faSJosua Mayer		 */
86*d60483faSJosua Mayer		mux-gpios = <&main_gpio1 40 GPIO_ACTIVE_HIGH>, <&main_gpio1 41 GPIO_ACTIVE_HIGH>;
87*d60483faSJosua Mayer		/* default disabled */
88*d60483faSJosua Mayer		idle-state = <2>;
89*d60483faSJosua Mayer	};
90*d60483faSJosua Mayer};
91*d60483faSJosua Mayer
92*d60483faSJosua Mayer&main_gpio0 {
93*d60483faSJosua Mayer	m2-reset-hog {
94*d60483faSJosua Mayer		gpio-hog;
95*d60483faSJosua Mayer		gpios = <12 GPIO_ACTIVE_LOW>;
96*d60483faSJosua Mayer		output-low; /* deasserted */
97*d60483faSJosua Mayer		line-name = "m2-reset";
98*d60483faSJosua Mayer	};
99*d60483faSJosua Mayer
100*d60483faSJosua Mayer	m1-m2-w-disable1-hog {
101*d60483faSJosua Mayer		gpio-hog;
102*d60483faSJosua Mayer		gpios = <32 GPIO_ACTIVE_LOW>;
103*d60483faSJosua Mayer		output-low; /* deasserted */
104*d60483faSJosua Mayer		line-name = "m1-m2-pcie-w-disable1";
105*d60483faSJosua Mayer	};
106*d60483faSJosua Mayer
107*d60483faSJosua Mayer	m1-m2-w-disable2-hog {
108*d60483faSJosua Mayer		gpio-hog;
109*d60483faSJosua Mayer		gpios = <34 GPIO_ACTIVE_LOW>;
110*d60483faSJosua Mayer		output-low; /* deasserted */
111*d60483faSJosua Mayer		line-name = "m1-m2-pcie-w-disable2";
112*d60483faSJosua Mayer	};
113*d60483faSJosua Mayer};
114*d60483faSJosua Mayer
115*d60483faSJosua Mayer&main_gpio1 {
116*d60483faSJosua Mayer	m1-pcie-clkreq0-hog {
117*d60483faSJosua Mayer		gpio-hog;
118*d60483faSJosua Mayer		gpios = <11 GPIO_ACTIVE_LOW>;
119*d60483faSJosua Mayer		input;
120*d60483faSJosua Mayer		line-name = "m1-pcie-clkreq0";
121*d60483faSJosua Mayer	};
122*d60483faSJosua Mayer
123*d60483faSJosua Mayer	m2-pcie-clkreq-hog {
124*d60483faSJosua Mayer		gpio-hog;
125*d60483faSJosua Mayer		gpios = <35 GPIO_ACTIVE_LOW>;
126*d60483faSJosua Mayer		input;
127*d60483faSJosua Mayer		line-name = "m2-pcie-clkreq";
128*d60483faSJosua Mayer	};
129*d60483faSJosua Mayer};
130*d60483faSJosua Mayer
131*d60483faSJosua Mayer&main_i2c0 {
132*d60483faSJosua Mayer	pinctrl-0 = <&main_i2c0_default_pins>, <&main_i2c0_int_default_pins>;
133*d60483faSJosua Mayer
134*d60483faSJosua Mayer	humidity-sensor@41 {
135*d60483faSJosua Mayer		compatible = "ti,hdc2010";
136*d60483faSJosua Mayer		reg = <0x41>;
137*d60483faSJosua Mayer		interrupt-parent = <&main_gpio0>;
138*d60483faSJosua Mayer		interrupts = <37 IRQ_TYPE_EDGE_FALLING>;
139*d60483faSJosua Mayer	};
140*d60483faSJosua Mayer
141*d60483faSJosua Mayer	light-sensor@44 {
142*d60483faSJosua Mayer		compatible = "ti,opt3001";
143*d60483faSJosua Mayer		reg = <0x44>;
144*d60483faSJosua Mayer		interrupt-parent = <&main_gpio0>;
145*d60483faSJosua Mayer		interrupts = <37 IRQ_TYPE_EDGE_FALLING>;
146*d60483faSJosua Mayer	};
147*d60483faSJosua Mayer
148*d60483faSJosua Mayer	/* charger@6a */
149*d60483faSJosua Mayer};
150*d60483faSJosua Mayer
151*d60483faSJosua Mayer&main_i2c1 {
152*d60483faSJosua Mayer	pinctrl-names = "default";
153*d60483faSJosua Mayer	pinctrl-0 = <&main_i2c1_default_pins>;
154*d60483faSJosua Mayer	status = "okay";
155*d60483faSJosua Mayer
156*d60483faSJosua Mayer	rtc@69 {
157*d60483faSJosua Mayer		compatible = "abracon,abx80x";
158*d60483faSJosua Mayer		reg = <0x69>;
159*d60483faSJosua Mayer		pinctrl-names = "default";
160*d60483faSJosua Mayer		pinctrl-0 = <&rtc_int_default_pins>;
161*d60483faSJosua Mayer		abracon,tc-diode = "schottky";
162*d60483faSJosua Mayer		abracon,tc-resistor = <3>;
163*d60483faSJosua Mayer		interrupt-parent = <&main_gpio0>;
164*d60483faSJosua Mayer		interrupts = <44 IRQ_TYPE_EDGE_FALLING>;
165*d60483faSJosua Mayer	};
166*d60483faSJosua Mayer};
167*d60483faSJosua Mayer
168*d60483faSJosua Mayer&main_mcan0 {
169*d60483faSJosua Mayer	pinctrl-names = "default";
170*d60483faSJosua Mayer	pinctrl-0 = <&main_mcan0_default_pins>;
171*d60483faSJosua Mayer	status = "okay";
172*d60483faSJosua Mayer
173*d60483faSJosua Mayer	can-transceiver {
174*d60483faSJosua Mayer		max-bitrate = <8000000>;
175*d60483faSJosua Mayer	};
176*d60483faSJosua Mayer};
177*d60483faSJosua Mayer
178*d60483faSJosua Mayer&main_mcan1 {
179*d60483faSJosua Mayer	pinctrl-names = "default";
180*d60483faSJosua Mayer	pinctrl-0 = <&main_mcan1_default_pins>;
181*d60483faSJosua Mayer	status = "okay";
182*d60483faSJosua Mayer
183*d60483faSJosua Mayer	can-transceiver {
184*d60483faSJosua Mayer		max-bitrate = <8000000>;
185*d60483faSJosua Mayer	};
186*d60483faSJosua Mayer};
187*d60483faSJosua Mayer
188*d60483faSJosua Mayer&main_pmx0 {
189*d60483faSJosua Mayer	leds_default_pins: leds-default-pins {
190*d60483faSJosua Mayer		pinctrl-single,pins = <
191*d60483faSJosua Mayer			AM64X_IOPAD(0x0074, PIN_OUTPUT, 7) /* GPMC0_AD14.GPIO0_29 */
192*d60483faSJosua Mayer			AM64X_IOPAD(0x0078, PIN_OUTPUT, 7) /* GPMC0_AD15.GPIO0_30 */
193*d60483faSJosua Mayer			AM64X_IOPAD(0x0088, PIN_OUTPUT, 7) /* GPMC0_OEn_REn.GPIO0_33 */
194*d60483faSJosua Mayer		>;
195*d60483faSJosua Mayer	};
196*d60483faSJosua Mayer
197*d60483faSJosua Mayer	main_i2c0_int_default_pins: main-i2c0-int-default-pins {
198*d60483faSJosua Mayer		pinctrl-single,pins = <
199*d60483faSJosua Mayer			/* external pull-up on Carrier */
200*d60483faSJosua Mayer			AM64X_IOPAD(0x0098, PIN_INPUT, 7) /* GPMC0_WAIT0.GPIO0_37 */
201*d60483faSJosua Mayer		>;
202*d60483faSJosua Mayer	};
203*d60483faSJosua Mayer
204*d60483faSJosua Mayer	main_i2c1_default_pins: main-i2c1-default-pins {
205*d60483faSJosua Mayer		pinctrl-single,pins = <
206*d60483faSJosua Mayer			/* external pull-up on SoM */
207*d60483faSJosua Mayer			AM64X_IOPAD(0x0268, PIN_INPUT, 0) /* I2C1_SCL.I2C1_SCL */
208*d60483faSJosua Mayer			AM64X_IOPAD(0x026c, PIN_INPUT, 0) /* I2C1_SDA.I2C1_SDA */
209*d60483faSJosua Mayer		>;
210*d60483faSJosua Mayer	};
211*d60483faSJosua Mayer
212*d60483faSJosua Mayer	main_mcan0_default_pins: main-mcan0-default-pins {
213*d60483faSJosua Mayer		pinctrl-single,pins = <
214*d60483faSJosua Mayer			AM64X_IOPAD(0x0254, PIN_INPUT, 0) /* MCAN0_RX.MCAN0_RX */
215*d60483faSJosua Mayer			AM64X_IOPAD(0x0250, PIN_OUTPUT, 0) /* MCAN0_TX.MCAN0_TX */
216*d60483faSJosua Mayer		>;
217*d60483faSJosua Mayer	};
218*d60483faSJosua Mayer
219*d60483faSJosua Mayer	main_mcan1_default_pins: main-mcan1-default-pins {
220*d60483faSJosua Mayer		pinctrl-single,pins = <
221*d60483faSJosua Mayer			AM64X_IOPAD(0x025c, PIN_INPUT, 0) /* MCAN1_RX.MCAN1_RX */
222*d60483faSJosua Mayer			AM64X_IOPAD(0x0258, PIN_OUTPUT, 0) /* MCAN1_TX.MCAN1_TX */
223*d60483faSJosua Mayer		>;
224*d60483faSJosua Mayer	};
225*d60483faSJosua Mayer
226*d60483faSJosua Mayer	main_uart3_default_pins: main-uart3-default-pins {
227*d60483faSJosua Mayer		pinctrl-single,pins = <
228*d60483faSJosua Mayer			AM64X_IOPAD(0x016c, PIN_INPUT, 10) /* PRG0_PRU0_GPO3.UART3_CTSn */
229*d60483faSJosua Mayer			AM64X_IOPAD(0x0170, PIN_OUTPUT, 10) /* PRG0_PRU0_GPO4.UART3_TXD */
230*d60483faSJosua Mayer			AM64X_IOPAD(0x0174, PIN_OUTPUT, 10) /* PRG0_PRU0_GPO5.UART3_RTSn */
231*d60483faSJosua Mayer			AM64X_IOPAD(0x01ac, PIN_INPUT, 10) /* PRG0_PRU0_GPO19.UART3_RXD */
232*d60483faSJosua Mayer		>;
233*d60483faSJosua Mayer	};
234*d60483faSJosua Mayer
235*d60483faSJosua Mayer	pcie0_default_pins: pcie0-default-pins {
236*d60483faSJosua Mayer		pinctrl-single,pins = <
237*d60483faSJosua Mayer			/* connector M2 RESET */
238*d60483faSJosua Mayer			AM64X_IOPAD(0x0030, PIN_OUTPUT, 7) /* OSPI0_CSn1.GPIO0_12 */
239*d60483faSJosua Mayer			/* connectors M1 & M2 W_DISABLE1 */
240*d60483faSJosua Mayer			AM64X_IOPAD(0x0084, PIN_OUTPUT, 7) /* GPMC0_ADVN_ALE.GPIO0_32 */
241*d60483faSJosua Mayer			/* connectors M1 & M2 W_DISABLE2 */
242*d60483faSJosua Mayer			AM64X_IOPAD(0x008c, PIN_OUTPUT, 7) /* GPMC0_WEN.GPIO0_34 */
243*d60483faSJosua Mayer			/* connectors M1 & M2 PERST0 (PCI Reset) */
244*d60483faSJosua Mayer			AM64X_IOPAD(0x019c, PIN_OUTPUT, 7) /* PRG0_PRU0_GPO15.GPIO1_15 */
245*d60483faSJosua Mayer			/* connector M1 CLKREQ0 */
246*d60483faSJosua Mayer			AM64X_IOPAD(0x018c, PIN_INPUT, 7) /* PRG0_PRU0_GPO11.GPIO1_11 */
247*d60483faSJosua Mayer			/* connector M2 CLKREQ0 */
248*d60483faSJosua Mayer			AM64X_IOPAD(0x01ec, PIN_INPUT, 7) /* PRG0_PRU1_GPO15.GPIO1_35 */
249*d60483faSJosua Mayer		>;
250*d60483faSJosua Mayer	};
251*d60483faSJosua Mayer
252*d60483faSJosua Mayer	regulator_pcie_3v3_default_pins: regulator-pcie-3v3-default-pins {
253*d60483faSJosua Mayer		pinctrl-single,pins = <
254*d60483faSJosua Mayer			AM64X_IOPAD(0x01a4, PIN_OUTPUT, 7) /* PRG0_PRU0_GPO17.GPIO1_17 */
255*d60483faSJosua Mayer		>;
256*d60483faSJosua Mayer	};
257*d60483faSJosua Mayer
258*d60483faSJosua Mayer	regulator_vpp_1v8_default_pins: regulator-vpp-1v8-default-pins {
259*d60483faSJosua Mayer		pinctrl-single,pins = <
260*d60483faSJosua Mayer			AM64X_IOPAD(0x029c, PIN_OUTPUT, 7) /* MMC1_SDWP.GPIO1_78 */
261*d60483faSJosua Mayer		>;
262*d60483faSJosua Mayer	};
263*d60483faSJosua Mayer
264*d60483faSJosua Mayer	rtc_int_default_pins: rtc-int-default-pins {
265*d60483faSJosua Mayer		pinctrl-single,pins = <
266*d60483faSJosua Mayer			/* external pull-up on Carrier */
267*d60483faSJosua Mayer			AM64X_IOPAD(0x00b4, PIN_INPUT, 7) /* GPMC0_CSn3.GPIO0_44 */
268*d60483faSJosua Mayer		>;
269*d60483faSJosua Mayer	};
270*d60483faSJosua Mayer
271*d60483faSJosua Mayer	serdes_mux_default_pins: serdes-mux-default-pins {
272*d60483faSJosua Mayer		pinctrl-single,pins = <
273*d60483faSJosua Mayer			/* SEL, 10k pull-down on carrier, 2.2k pullup on SoM */
274*d60483faSJosua Mayer			AM64X_IOPAD(0x0200, PIN_OUTPUT, 7) /* PRG0_MDIO0_MDIO.GPIO1_40 */
275*d60483faSJosua Mayer			/* EN */
276*d60483faSJosua Mayer			AM64X_IOPAD(0x0204, PIN_OUTPUT, 7) /* PRG0_MDIO0_MDC.GPIO1_41 */
277*d60483faSJosua Mayer		>;
278*d60483faSJosua Mayer	};
279*d60483faSJosua Mayer};
280*d60483faSJosua Mayer
281*d60483faSJosua Mayer&main_uart3 {
282*d60483faSJosua Mayer	pinctrl-names = "default";
283*d60483faSJosua Mayer	pinctrl-0 = <&main_uart3_default_pins>;
284*d60483faSJosua Mayer	uart-has-rtscts;
285*d60483faSJosua Mayer	linux,rs485-enabled-at-boot-time;
286*d60483faSJosua Mayer	status = "okay";
287*d60483faSJosua Mayer};
288*d60483faSJosua Mayer
289*d60483faSJosua Mayer&usb0 {
290*d60483faSJosua Mayer	dr_mode = "host";
291*d60483faSJosua Mayer};
292