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