xref: /linux/arch/arm64/boot/dts/freescale/imx8mp-hummingboard-pulse-common.dtsi (revision 4f38da1f027ea2c9f01bb71daa7a299c191b6940)
1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright 2025 Josua Mayer <josua@solid-run.com>
4 */
5
6#include <dt-bindings/leds/common.h>
7
8/ {
9	aliases {
10		rtc0 = &carrier_rtc;
11		rtc1 = &snvs_rtc;
12	};
13
14	leds {
15		compatible = "gpio-leds";
16		pinctrl-names = "default";
17		pinctrl-0 = <&led_pins>;
18
19		led-0 {
20			label = "D30";
21			color = <LED_COLOR_ID_GREEN>;
22			gpios = <&gpio5 28 GPIO_ACTIVE_LOW>;
23			default-state = "on";
24		};
25
26		led-1 {
27			label = "D31";
28			color = <LED_COLOR_ID_GREEN>;
29			gpios = <&gpio4 24 GPIO_ACTIVE_LOW>;
30			default-state = "on";
31		};
32
33		led-2 {
34			label = "D32";
35			color = <LED_COLOR_ID_GREEN>;
36			gpios = <&gpio4 23 GPIO_ACTIVE_LOW>;
37			default-state = "on";
38		};
39
40		led-3 {
41			label = "D33";
42			color = <LED_COLOR_ID_GREEN>;
43			gpios = <&gpio4 21 GPIO_ACTIVE_LOW>;
44			default-state = "on";
45		};
46
47		led-4 {
48			label = "D34";
49			color = <LED_COLOR_ID_GREEN>;
50			gpios = <&gpio4 22 GPIO_ACTIVE_LOW>;
51			default-state = "on";
52		};
53	};
54
55	rfkill-mpcie-wifi {
56		/*
57		 * The mpcie connector only has USB,
58		 * therefore this rfkill is for cellular radios only.
59		 */
60		compatible = "rfkill-gpio";
61		pinctrl-names = "default";
62		pinctrl-0 = <&mpcie_rfkill_pins>;
63		label = "mpcie radio";
64		radio-type = "wwan";
65		/* rfkill-gpio inverts internally */
66		shutdown-gpios = <&gpio1 5 GPIO_ACTIVE_HIGH>;
67	};
68
69	vmmc: regulator-mmc {
70		compatible = "regulator-fixed";
71		pinctrl-names = "default";
72		pinctrl-0 = <&vmmc_pins>;
73		regulator-name = "vmmc";
74		regulator-min-microvolt = <3300000>;
75		regulator-max-microvolt = <3300000>;
76		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
77		startup-delay-us = <250>;
78	};
79
80	vbus1: regulator-vbus-1 {
81		compatible = "regulator-fixed";
82		regulator-name = "vbus1";
83		gpio = <&gpio1 14 GPIO_ACTIVE_HIGH>;
84		enable-active-high;
85		pinctrl-names = "default";
86		pinctrl-0 = <&vbus1_pins>;
87		regulator-min-microvolt = <5000000>;
88		regulator-max-microvolt = <5000000>;
89	};
90
91	vbus2: regulator-vbus-2 {
92		compatible = "regulator-fixed";
93		regulator-name = "vbus2";
94		gpio = <&gpio1 15 GPIO_ACTIVE_HIGH>;
95		enable-active-high;
96		pinctrl-names = "default";
97		pinctrl-0 = <&vbus2_pins>;
98		regulator-min-microvolt = <5000000>;
99		regulator-max-microvolt = <5000000>;
100	};
101
102	v_1_2: regulator-1-2 {
103		compatible = "regulator-fixed";
104		regulator-name = "1v2";
105		regulator-min-microvolt = <1200000>;
106		regulator-max-microvolt = <1200000>;
107	};
108
109	vmpcie {
110		/* supplies mpcie and m2 connectors */
111		compatible = "regulator-fixed";
112		regulator-name = "vmpcie";
113		gpio = <&gpio1 10 GPIO_ACTIVE_HIGH>;
114		enable-active-high;
115		pinctrl-names = "default";
116		pinctrl-0 = <&vmpcie_pins>;
117		regulator-min-microvolt = <3300000>;
118		regulator-max-microvolt = <3300000>;
119		regulator-always-on;
120	};
121};
122
123/* mikrobus spi */
124&ecspi2 {
125	num-cs = <1>;
126	pinctrl-names = "default";
127	pinctrl-0 = <&mikro_spi_pins>;
128	status = "okay";
129};
130
131&gpio1 {
132	pinctrl-0 = <&mpcie_reset_pins>;
133	pinctrl-names = "default";
134
135	mpcie-reset-hog {
136		gpio-hog;
137		gpios = <1 GPIO_ACTIVE_LOW>;
138		output-low;
139		line-name = "mpcie-reset";
140	};
141};
142
143&i2c3 {
144	carrier_eeprom: eeprom@57{
145		compatible = "st,24c02", "atmel,24c02";
146		reg = <0x57>;
147		pagesize = <16>;
148	};
149
150	carrier_rtc: rtc@69 {
151		compatible = "abracon,ab1805";
152		reg = <0x69>;
153		abracon,tc-diode = "schottky";
154		abracon,tc-resistor = <3>;
155	};
156};
157
158&iomuxc {
159	csi_pins: pinctrl-csi-grp {
160		fsl,pins = <
161			/* Pin 24: STROBE */
162			MX8MP_IOMUXC_NAND_DATA01__GPIO3_IO07		0x0
163		>;
164	};
165
166	led_pins: pinctrl-led-grp {
167		fsl,pins = <
168			MX8MP_IOMUXC_SAI2_RXC__GPIO4_IO22		0x0
169			MX8MP_IOMUXC_SAI2_RXFS__GPIO4_IO21		0x0
170			MX8MP_IOMUXC_SAI2_RXD0__GPIO4_IO23		0x0
171			MX8MP_IOMUXC_SAI2_TXFS__GPIO4_IO24		0x0
172			MX8MP_IOMUXC_UART4_RXD__GPIO5_IO28		0x0
173		>;
174	};
175
176	mikro_int_pins: pinctrl-mikro-int-grp {
177		fsl,pins = <
178			MX8MP_IOMUXC_ECSPI1_SS0__GPIO5_IO09		0x0
179		>;
180	};
181
182	mikro_pwm_pins: pinctrl-mikro-pwm-grp {
183		fsl,pins = <
184			MX8MP_IOMUXC_ECSPI1_MISO__GPIO5_IO08		0x0
185		>;
186	};
187
188	mikro_rst_pins: pinctrl-mikro-rst-grp {
189		fsl,pins = <
190			MX8MP_IOMUXC_SAI3_RXD__GPIO4_IO30		0x0
191		>;
192	};
193
194	mikro_spi_pins: pinctrl-mikro-spi-grp {
195		fsl,pins = <
196			MX8MP_IOMUXC_ECSPI2_SS0__ECSPI2_SS0		0x40000
197			MX8MP_IOMUXC_ECSPI2_SCLK__ECSPI2_SCLK		0x82
198			MX8MP_IOMUXC_ECSPI2_MISO__ECSPI2_MISO		0x82
199			MX8MP_IOMUXC_ECSPI2_MOSI__ECSPI2_MOSI		0x82
200		>;
201	};
202
203	mikro_uart_pins: pinctrl-mikro-uart-grp {
204		fsl,pins = <
205			MX8MP_IOMUXC_ECSPI1_SCLK__UART3_DCE_RX		0x140
206			MX8MP_IOMUXC_ECSPI1_MOSI__UART3_DCE_TX		0x140
207		>;
208	};
209
210	mpcie_reset_pins: pinctrl-mpcie-reset-grp {
211		fsl,pins = <
212			MX8MP_IOMUXC_GPIO1_IO01__GPIO1_IO01		0x0
213		>;
214	};
215
216	mpcie_rfkill_pins: pinctrl-pcie-rfkill-grp {
217		fsl,pins = <
218			/* weak i/o, open drain */
219			MX8MP_IOMUXC_GPIO1_IO05__GPIO1_IO05		0x20
220		>;
221	};
222
223	usb_hub_pins: pinctrl-usb-hub-grp {
224		fsl,pins = <
225			MX8MP_IOMUXC_GPIO1_IO11__GPIO1_IO11		0x0
226		>;
227	};
228
229	usdhc2_pins: pinctrl-usdhc2-grp {
230		fsl,pins = <
231			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK		0x190
232			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD		0x1d0
233			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0		0x1d0
234			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1		0x1d0
235			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2		0x1d0
236			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3		0x1d0
237			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT		0x140
238			MX8MP_IOMUXC_SD2_CD_B__USDHC2_CD_B		0x140
239		>;
240	};
241
242	usdhc2_100mhz_pins: pinctrl-usdhc2-100mhz-grp {
243		fsl,pins = <
244			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK		0x194
245			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD		0x1d4
246			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0		0x1d4
247			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1		0x1d4
248			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2		0x1d4
249			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3		0x1d4
250			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT		0x140
251			MX8MP_IOMUXC_SD2_CD_B__USDHC2_CD_B		0x140
252		>;
253	};
254
255	usdhc2_200mhz_pins: pinctrl-usdhc2-200mhz-grp {
256		fsl,pins = <
257			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK		0x196
258			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD		0x1d6
259			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0		0x1d6
260			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1		0x1d6
261			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2		0x1d6
262			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3		0x1d6
263			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT		0x140
264			MX8MP_IOMUXC_SD2_CD_B__USDHC2_CD_B		0x140
265		>;
266	};
267
268	vbus1_pins: pinctrl-vbus-1-grp {
269		fsl,pins = <
270			MX8MP_IOMUXC_GPIO1_IO14__GPIO1_IO14		0x20
271		>;
272	};
273
274	vbus2_pins: pinctrl-vbus-2-grp {
275		fsl,pins = <
276			MX8MP_IOMUXC_GPIO1_IO15__GPIO1_IO15		0x20
277		>;
278	};
279
280	vmmc_pins: pinctrl-vmmc-grp {
281		fsl,pins = <
282			MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19		0x41
283		>;
284	};
285
286	vmpcie_pins: pinctrl-vmpcie-grp {
287		fsl,pins = <
288			MX8MP_IOMUXC_GPIO1_IO10__GPIO1_IO10		0x0
289		>;
290	};
291};
292
293&phy0 {
294	leds {
295		#address-cells = <1>;
296		#size-cells = <0>;
297
298		/* ADIN1300 LED_0 pin */
299		led@0 {
300			reg = <0>;
301			color = <LED_COLOR_ID_ORANGE>;
302			function = LED_FUNCTION_LAN;
303			default-state = "keep";
304		};
305
306		/* ADIN1300 LINK_ST pin */
307		led@1 {
308			reg = <1>;
309			color = <LED_COLOR_ID_GREEN>;
310			function = LED_FUNCTION_LAN;
311			default-state = "keep";
312		};
313	};
314};
315
316&snvs_pwrkey {
317	status = "okay";
318};
319
320/* mikrobus uart */
321&uart3 {
322	status = "okay";
323};
324
325&usb3_phy0 {
326	fsl,phy-tx-preemp-amp-tune-microamp = <1200>;
327	vbus-supply = <&vbus2>;
328	status = "okay";
329};
330
331&usb3_0 {
332	status = "okay";
333};
334
335&usb3_phy1 {
336	vbus-supply = <&vbus1>;
337	status = "okay";
338};
339
340&usb3_1 {
341	status = "okay";
342};
343
344&usb_dwc3_0 {
345	dr_mode = "host";
346};
347
348&usb_dwc3_1 {
349	dr_mode = "host";
350	#address-cells = <1>;
351	#size-cells = <0>;
352	pinctrl-names = "default";
353	pinctrl-0 = <&usb_hub_pins>;
354
355	hub_2_0: hub@1 {
356		compatible = "usb4b4,6502", "usb4b4,6506";
357		reg = <1>;
358		peer-hub = <&hub_3_0>;
359		reset-gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
360		vdd-supply = <&v_1_2>;
361		vdd2-supply = <&v_3_3>;
362	};
363
364	hub_3_0: hub@2 {
365		compatible = "usb4b4,6500", "usb4b4,6504";
366		reg = <2>;
367		peer-hub = <&hub_2_0>;
368		reset-gpios = <&gpio1 11 GPIO_ACTIVE_LOW>;
369		vdd-supply = <&v_1_2>;
370		vdd2-supply = <&v_3_3>;
371	};
372};
373
374&usdhc2 {
375	pinctrl-names = "default", "state_100mhz", "state_200mhz";
376	pinctrl-0 = <&usdhc2_pins>;
377	pinctrl-1 = <&usdhc2_100mhz_pins>;
378	pinctrl-2 = <&usdhc2_200mhz_pins>;
379	vmmc-supply = <&vmmc>;
380	bus-width = <4>;
381	cap-power-off-card;
382	full-pwr-cycle;
383	status = "okay";
384};
385