xref: /linux/arch/arm64/boot/dts/freescale/imx8mp-cubox-m.dts (revision 4f38da1f027ea2c9f01bb71daa7a299c191b6940)
1*a009c0c6SJosua Mayer// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*a009c0c6SJosua Mayer/*
3*a009c0c6SJosua Mayer * Copyright 2025 Josua Mayer <josua@solid-run.com>
4*a009c0c6SJosua Mayer */
5*a009c0c6SJosua Mayer
6*a009c0c6SJosua Mayer/dts-v1/;
7*a009c0c6SJosua Mayer
8*a009c0c6SJosua Mayer#include <dt-bindings/leds/common.h>
9*a009c0c6SJosua Mayer
10*a009c0c6SJosua Mayer#include "imx8mp-sr-som.dtsi"
11*a009c0c6SJosua Mayer
12*a009c0c6SJosua Mayer/ {
13*a009c0c6SJosua Mayer	model = "SolidRun i.MX8MP CuBox-M";
14*a009c0c6SJosua Mayer	compatible = "solidrun,imx8mp-cubox-m",
15*a009c0c6SJosua Mayer		     "solidrun,imx8mp-sr-som", "fsl,imx8mp";
16*a009c0c6SJosua Mayer
17*a009c0c6SJosua Mayer	aliases {
18*a009c0c6SJosua Mayer		ethernet0 = &eqos;
19*a009c0c6SJosua Mayer		/delete-property/ ethernet1;
20*a009c0c6SJosua Mayer		rtc0 = &carrier_rtc;
21*a009c0c6SJosua Mayer		rtc1 = &snvs_rtc;
22*a009c0c6SJosua Mayer	};
23*a009c0c6SJosua Mayer
24*a009c0c6SJosua Mayer	ir-receiver {
25*a009c0c6SJosua Mayer		compatible = "gpio-ir-receiver";
26*a009c0c6SJosua Mayer		gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
27*a009c0c6SJosua Mayer		pinctrl-names = "default";
28*a009c0c6SJosua Mayer		pinctrl-0 = <&ir_pins>;
29*a009c0c6SJosua Mayer		linux,autosuspend-period = <125>;
30*a009c0c6SJosua Mayer		wakeup-source;
31*a009c0c6SJosua Mayer	};
32*a009c0c6SJosua Mayer
33*a009c0c6SJosua Mayer	leds {
34*a009c0c6SJosua Mayer		compatible = "gpio-leds";
35*a009c0c6SJosua Mayer		pinctrl-names = "default";
36*a009c0c6SJosua Mayer		pinctrl-0 = <&led_pins>;
37*a009c0c6SJosua Mayer
38*a009c0c6SJosua Mayer		status {
39*a009c0c6SJosua Mayer			label = "status";
40*a009c0c6SJosua Mayer			color = <LED_COLOR_ID_RED>;
41*a009c0c6SJosua Mayer			gpios = <&gpio1 12 GPIO_ACTIVE_LOW>;
42*a009c0c6SJosua Mayer			function = LED_FUNCTION_HEARTBEAT;
43*a009c0c6SJosua Mayer		};
44*a009c0c6SJosua Mayer	};
45*a009c0c6SJosua Mayer
46*a009c0c6SJosua Mayer	sound-hdmi {
47*a009c0c6SJosua Mayer		compatible = "fsl,imx-audio-hdmi";
48*a009c0c6SJosua Mayer		model = "audio-hdmi";
49*a009c0c6SJosua Mayer		audio-cpu = <&aud2htx>;
50*a009c0c6SJosua Mayer		hdmi-out;
51*a009c0c6SJosua Mayer	};
52*a009c0c6SJosua Mayer
53*a009c0c6SJosua Mayer	vbus: regulator-vbus {
54*a009c0c6SJosua Mayer		compatible = "regulator-fixed";
55*a009c0c6SJosua Mayer		regulator-name = "vbus";
56*a009c0c6SJosua Mayer		gpio = <&gpio1 7 GPIO_ACTIVE_HIGH>;
57*a009c0c6SJosua Mayer		enable-active-high;
58*a009c0c6SJosua Mayer		pinctrl-names = "default";
59*a009c0c6SJosua Mayer		pinctrl-0 = <&vbus_pins>;
60*a009c0c6SJosua Mayer		regulator-min-microvolt = <5000000>;
61*a009c0c6SJosua Mayer		regulator-max-microvolt = <5000000>;
62*a009c0c6SJosua Mayer	};
63*a009c0c6SJosua Mayer
64*a009c0c6SJosua Mayer	vmmc: regulator-mmc {
65*a009c0c6SJosua Mayer		compatible = "regulator-fixed";
66*a009c0c6SJosua Mayer		pinctrl-names = "default";
67*a009c0c6SJosua Mayer		pinctrl-0 = <&vmmc_pins>;
68*a009c0c6SJosua Mayer		regulator-name = "vmmc";
69*a009c0c6SJosua Mayer		regulator-min-microvolt = <3300000>;
70*a009c0c6SJosua Mayer		regulator-max-microvolt = <3300000>;
71*a009c0c6SJosua Mayer		gpio = <&gpio2 19 GPIO_ACTIVE_HIGH>;
72*a009c0c6SJosua Mayer		startup-delay-us = <250>;
73*a009c0c6SJosua Mayer	};
74*a009c0c6SJosua Mayer};
75*a009c0c6SJosua Mayer
76*a009c0c6SJosua Mayer&aud2htx {
77*a009c0c6SJosua Mayer	status = "okay";
78*a009c0c6SJosua Mayer};
79*a009c0c6SJosua Mayer
80*a009c0c6SJosua Mayer&fec {
81*a009c0c6SJosua Mayer	/* this board does not use second phy / ethernet on SoM */
82*a009c0c6SJosua Mayer	status = "disabled";
83*a009c0c6SJosua Mayer};
84*a009c0c6SJosua Mayer
85*a009c0c6SJosua Mayer&hdmi_pvi {
86*a009c0c6SJosua Mayer	status = "okay";
87*a009c0c6SJosua Mayer};
88*a009c0c6SJosua Mayer
89*a009c0c6SJosua Mayer&hdmi_tx {
90*a009c0c6SJosua Mayer	status = "okay";
91*a009c0c6SJosua Mayer};
92*a009c0c6SJosua Mayer
93*a009c0c6SJosua Mayer&hdmi_tx_phy {
94*a009c0c6SJosua Mayer	status = "okay";
95*a009c0c6SJosua Mayer};
96*a009c0c6SJosua Mayer
97*a009c0c6SJosua Mayer&i2c3 {
98*a009c0c6SJosua Mayer	carrier_rtc: rtc@32 {
99*a009c0c6SJosua Mayer		compatible = "epson,rx8130";
100*a009c0c6SJosua Mayer		reg = <0x32>;
101*a009c0c6SJosua Mayer	};
102*a009c0c6SJosua Mayer};
103*a009c0c6SJosua Mayer
104*a009c0c6SJosua Mayer&iomuxc {
105*a009c0c6SJosua Mayer	pinctrl-names = "default";
106*a009c0c6SJosua Mayer	pinctrl-0 = <&hdmi_pins>;
107*a009c0c6SJosua Mayer
108*a009c0c6SJosua Mayer	hdmi_pins: pinctrl-hdmi-grp {
109*a009c0c6SJosua Mayer		fsl,pins = <
110*a009c0c6SJosua Mayer			MX8MP_IOMUXC_HDMI_DDC_SCL__HDMIMIX_HDMI_SCL	0x400001c3
111*a009c0c6SJosua Mayer			MX8MP_IOMUXC_HDMI_DDC_SDA__HDMIMIX_HDMI_SDA	0x400001c3
112*a009c0c6SJosua Mayer			MX8MP_IOMUXC_HDMI_CEC__HDMIMIX_HDMI_CEC		0x154
113*a009c0c6SJosua Mayer			MX8MP_IOMUXC_HDMI_HPD__HDMIMIX_HDMI_HPD		0x154
114*a009c0c6SJosua Mayer		>;
115*a009c0c6SJosua Mayer	};
116*a009c0c6SJosua Mayer
117*a009c0c6SJosua Mayer	ir_pins: pinctrl-ir-grp {
118*a009c0c6SJosua Mayer		fsl,pins = <
119*a009c0c6SJosua Mayer			MX8MP_IOMUXC_GPIO1_IO10__GPIO1_IO10		0x4f
120*a009c0c6SJosua Mayer		>;
121*a009c0c6SJosua Mayer	};
122*a009c0c6SJosua Mayer
123*a009c0c6SJosua Mayer	led_pins: pinctrl-led-grp {
124*a009c0c6SJosua Mayer		fsl,pins = <
125*a009c0c6SJosua Mayer			MX8MP_IOMUXC_GPIO1_IO12__GPIO1_IO12		0x0
126*a009c0c6SJosua Mayer		>;
127*a009c0c6SJosua Mayer	};
128*a009c0c6SJosua Mayer
129*a009c0c6SJosua Mayer	usdhc2_pins: pinctrl-usdhc2-grp {
130*a009c0c6SJosua Mayer		fsl,pins = <
131*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK		0x190
132*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD		0x1d0
133*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0		0x1d0
134*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1		0x1d0
135*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2		0x1d0
136*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3		0x1d0
137*a009c0c6SJosua Mayer			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT		0x140
138*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD2_CD_B__USDHC2_CD_B		0x140
139*a009c0c6SJosua Mayer		>;
140*a009c0c6SJosua Mayer	};
141*a009c0c6SJosua Mayer
142*a009c0c6SJosua Mayer	usdhc2_100mhz_pins: pinctrl-usdhc2-100mhz-grp {
143*a009c0c6SJosua Mayer		fsl,pins = <
144*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK		0x194
145*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD		0x1d4
146*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0		0x1d4
147*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1		0x1d4
148*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2		0x1d4
149*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3		0x1d4
150*a009c0c6SJosua Mayer			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT		0x140
151*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD2_CD_B__USDHC2_CD_B		0x140
152*a009c0c6SJosua Mayer		>;
153*a009c0c6SJosua Mayer	};
154*a009c0c6SJosua Mayer
155*a009c0c6SJosua Mayer	usdhc2_200mhz_pins: pinctrl-usdhc2-200mhz-grp {
156*a009c0c6SJosua Mayer		fsl,pins = <
157*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD2_CLK__USDHC2_CLK		0x196
158*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD2_CMD__USDHC2_CMD		0x1d6
159*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD2_DATA0__USDHC2_DATA0		0x1d6
160*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD2_DATA1__USDHC2_DATA1		0x1d6
161*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD2_DATA2__USDHC2_DATA2		0x1d6
162*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD2_DATA3__USDHC2_DATA3		0x1d6
163*a009c0c6SJosua Mayer			MX8MP_IOMUXC_GPIO1_IO04__USDHC2_VSELECT		0x140
164*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD2_CD_B__USDHC2_CD_B		0x140
165*a009c0c6SJosua Mayer		>;
166*a009c0c6SJosua Mayer	};
167*a009c0c6SJosua Mayer
168*a009c0c6SJosua Mayer	vbus_pins: pinctrl-vbus-grp {
169*a009c0c6SJosua Mayer		fsl,pins = <
170*a009c0c6SJosua Mayer			MX8MP_IOMUXC_GPIO1_IO07__GPIO1_IO07		0x100
171*a009c0c6SJosua Mayer		>;
172*a009c0c6SJosua Mayer	};
173*a009c0c6SJosua Mayer
174*a009c0c6SJosua Mayer	vmmc_pins: pinctrl-vmmc-grp {
175*a009c0c6SJosua Mayer		fsl,pins = <
176*a009c0c6SJosua Mayer			MX8MP_IOMUXC_SD2_RESET_B__GPIO2_IO19		0x0
177*a009c0c6SJosua Mayer		>;
178*a009c0c6SJosua Mayer	};
179*a009c0c6SJosua Mayer};
180*a009c0c6SJosua Mayer
181*a009c0c6SJosua Mayer&lcdif3 {
182*a009c0c6SJosua Mayer	status = "okay";
183*a009c0c6SJosua Mayer};
184*a009c0c6SJosua Mayer
185*a009c0c6SJosua Mayer&usb3_phy0 {
186*a009c0c6SJosua Mayer	fsl,phy-tx-preemp-amp-tune-microamp = <1200>;
187*a009c0c6SJosua Mayer	vbus-supply = <&vbus>;
188*a009c0c6SJosua Mayer	status = "okay";
189*a009c0c6SJosua Mayer};
190*a009c0c6SJosua Mayer
191*a009c0c6SJosua Mayer&usb3_0 {
192*a009c0c6SJosua Mayer	status = "okay";
193*a009c0c6SJosua Mayer};
194*a009c0c6SJosua Mayer
195*a009c0c6SJosua Mayer&usb3_phy1 {
196*a009c0c6SJosua Mayer	fsl,phy-tx-preemp-amp-tune-microamp = <1200>;
197*a009c0c6SJosua Mayer	vbus-supply = <&vbus>;
198*a009c0c6SJosua Mayer	status = "okay";
199*a009c0c6SJosua Mayer};
200*a009c0c6SJosua Mayer
201*a009c0c6SJosua Mayer&usb3_1 {
202*a009c0c6SJosua Mayer	status = "okay";
203*a009c0c6SJosua Mayer};
204*a009c0c6SJosua Mayer
205*a009c0c6SJosua Mayer&usb_dwc3_0 {
206*a009c0c6SJosua Mayer	dr_mode = "host";
207*a009c0c6SJosua Mayer};
208*a009c0c6SJosua Mayer
209*a009c0c6SJosua Mayer&usb_dwc3_1 {
210*a009c0c6SJosua Mayer	dr_mode = "host";
211*a009c0c6SJosua Mayer};
212*a009c0c6SJosua Mayer
213*a009c0c6SJosua Mayer&usdhc2 {
214*a009c0c6SJosua Mayer	pinctrl-names = "default", "state_100mhz", "state_200mhz";
215*a009c0c6SJosua Mayer	pinctrl-0 = <&usdhc2_pins>;
216*a009c0c6SJosua Mayer	pinctrl-1 = <&usdhc2_100mhz_pins>;
217*a009c0c6SJosua Mayer	pinctrl-2 = <&usdhc2_200mhz_pins>;
218*a009c0c6SJosua Mayer	vmmc-supply = <&vmmc>;
219*a009c0c6SJosua Mayer	bus-width = <4>;
220*a009c0c6SJosua Mayer	cap-power-off-card;
221*a009c0c6SJosua Mayer	full-pwr-cycle;
222*a009c0c6SJosua Mayer	status = "okay";
223*a009c0c6SJosua Mayer};
224