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