Skip to content

Commit ffea3ca

Browse files
passgatShawn Guo
authored andcommitted
ARM: dts: imx6ul: support Engicam MicroGEA RMM board
Support Engicam MicroGEA RMM board with: - 256 Mbytes NAND Flash - 512 Mbytes DRAM DDR2 - CAN - LEDs - Micro SD card connector - USB 2.0 high-speed/full-speed - Ethernet MAC Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com> Reviewed-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Frank Li <Frank.Li@nxp.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
1 parent 02e0bab commit ffea3ca

2 files changed

Lines changed: 361 additions & 0 deletions

File tree

arch/arm/boot/dts/nxp/imx/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -357,6 +357,7 @@ dtb-$(CONFIG_SOC_IMX6UL) += \
357357
imx6ull-dhcom-picoitx.dtb \
358358
imx6ull-dhcor-maveo-box.dtb \
359359
imx6ull-engicam-microgea-bmm.dtb \
360+
imx6ull-engicam-microgea-rmm.dtb \
360361
imx6ull-jozacp.dtb \
361362
imx6ull-kontron-bl.dtb \
362363
imx6ull-myir-mys-6ulx-eval.dtb \
Lines changed: 360 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,360 @@
1+
// SPDX-License-Identifier: GPL-2.0
2+
/*
3+
* Copyright (C) 2025 Amarula Solutions, Dario Binacchi <dario.binacchi@amarulasolutions.com>
4+
* Copyright (C) 2025 Engicam srl
5+
*/
6+
7+
/dts-v1/;
8+
9+
#include "imx6ull-engicam-microgea.dtsi"
10+
11+
/ {
12+
compatible = "engicam,microgea-imx6ull-rmm",
13+
"engicam,microgea-imx6ull", "fsl,imx6ull";
14+
model = "Engicam MicroGEA i.MX6ULL BMM Board";
15+
16+
backlight {
17+
compatible = "pwm-backlight";
18+
brightness-levels = <0 100>;
19+
num-interpolated-steps = <100>;
20+
default-brightness-level = <85>;
21+
pwms = <&pwm8 0 100000 0>;
22+
};
23+
24+
buzzer {
25+
compatible = "pwm-beeper";
26+
pwms = <&pwm4 0 1000000 0>;
27+
};
28+
29+
reg_1v8: regulator-1v8 {
30+
compatible = "regulator-fixed";
31+
regulator-name = "1v8";
32+
regulator-min-microvolt = <1800000>;
33+
regulator-max-microvolt = <1800000>;
34+
};
35+
36+
reg_3v3: regulator-3v3 {
37+
compatible = "regulator-fixed";
38+
regulator-name = "3v3";
39+
regulator-min-microvolt = <3300000>;
40+
regulator-max-microvolt = <3300000>;
41+
};
42+
43+
reg_usb1_vbus: regulator-usb1-vbus {
44+
compatible = "regulator-fixed";
45+
pinctrl-names = "default";
46+
pinctrl-0 = <&pinctrl_reg_usb1>;
47+
regulator-name = "usb1_vbus";
48+
regulator-min-microvolt = <5000000>;
49+
regulator-max-microvolt = <5000000>;
50+
gpio = <&gpio5 0 GPIO_ACTIVE_HIGH>;
51+
enable-active-high;
52+
};
53+
54+
reg_usb2_vbus: regulator-usb2-vbus {
55+
compatible = "regulator-fixed";
56+
pinctrl-names = "default";
57+
pinctrl-0 = <&pinctrl_reg_usb2>;
58+
regulator-name = "usbotg_vbus";
59+
regulator-min-microvolt = <5000000>;
60+
regulator-max-microvolt = <5000000>;
61+
gpio = <&gpio5 3 GPIO_ACTIVE_HIGH>;
62+
enable-active-high;
63+
};
64+
65+
reg_ext_pwr: regulator-ext-pwr {
66+
compatible = "regulator-fixed";
67+
pinctrl-names = "default";
68+
pinctrl-0 = <&pinctrl_reg_ext_pwr>;
69+
regulator-name = "ext-pwr";
70+
regulator-min-microvolt = <5000000>;
71+
regulator-max-microvolt = <5000000>;
72+
gpio = <&gpio5 6 GPIO_ACTIVE_HIGH>;
73+
enable-active-high;
74+
regulator-always-on;
75+
};
76+
77+
sound {
78+
compatible = "simple-audio-card";
79+
simple-audio-card,name = "imx6ull-microgea-rmm-sgtl5000";
80+
simple-audio-card,format = "i2s";
81+
simple-audio-card,bitclock-master = <&codec_dai>;
82+
simple-audio-card,frame-master = <&codec_dai>;
83+
simple-audio-card,widgets =
84+
"Microphone", "Mic Jack",
85+
"Headphone", "Headphone Jack";
86+
simple-audio-card,routing =
87+
"MIC_IN", "Mic Jack",
88+
"Mic Jack", "Mic Bias",
89+
"Headphone Jack", "HP_OUT";
90+
91+
cpu_dai: simple-audio-card,cpu {
92+
sound-dai = <&sai2>;
93+
};
94+
95+
codec_dai: simple-audio-card,codec {
96+
sound-dai = <&codec>;
97+
};
98+
};
99+
100+
leds {
101+
compatible = "gpio-leds";
102+
pinctrl-names = "default";
103+
pinctrl-0 = <&pinctrl_leds>;
104+
105+
led-0 {
106+
gpios = <&gpio2 10 GPIO_ACTIVE_HIGH>;
107+
default-state = "off";
108+
status = "okay";
109+
};
110+
111+
led-1 {
112+
gpios = <&gpio2 11 GPIO_ACTIVE_HIGH>;
113+
default-state = "off";
114+
status = "okay";
115+
};
116+
};
117+
};
118+
119+
&can1 {
120+
pinctrl-names = "default";
121+
pinctrl-0 = <&pinctrl_can>;
122+
status = "okay";
123+
};
124+
125+
&i2c1 {
126+
pinctrl-names = "default";
127+
pinctrl-0 = <&pinctrl_i2c1>;
128+
clock-frequency = <100000>;
129+
status = "okay";
130+
131+
touchscreen: touchscreen@38 {
132+
compatible ="edt,edt-ft5306";
133+
reg = <0x38>;
134+
pinctrl-names = "default";
135+
pinctrl-0 = <&pinctrl_touchscreen>;
136+
interrupt-parent = <&gpio2>;
137+
interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
138+
reset-gpios = <&gpio2 14 GPIO_ACTIVE_LOW>;
139+
report-rate-hz = <6>;
140+
/* settings valid only for Hycon touchscreen */
141+
touchscreen-size-x = <1280>;
142+
touchscreen-size-y = <800>;
143+
};
144+
};
145+
146+
&i2c2 {
147+
pinctrl-names = "default";
148+
pinctrl-0 = <&pinctrl_i2c2>;
149+
clock-frequency = <100000>;
150+
status = "okay";
151+
152+
codec: audio-codec@a {
153+
compatible = "fsl,sgtl5000";
154+
reg = <0x0a>;
155+
pinctrl-names = "default";
156+
pinctrl-0 = <&pinctrl_mclk>;
157+
#sound-dai-cells = <0>;
158+
clocks = <&clks IMX6UL_CLK_CKO>;
159+
assigned-clocks = <&clks IMX6UL_CLK_CKO2_SEL>,
160+
<&clks IMX6UL_CLK_CKO2_PODF>,
161+
<&clks IMX6UL_CLK_CKO2>,
162+
<&clks IMX6UL_CLK_CKO>;
163+
assigned-clock-parents = <&clks IMX6UL_CLK_OSC>,
164+
<&clks IMX6UL_CLK_CKO2_SEL>,
165+
<&clks IMX6UL_CLK_CKO2_PODF>,
166+
<&clks IMX6UL_CLK_CKO2>;
167+
VDDA-supply = <&reg_3v3>;
168+
VDDIO-supply = <&reg_3v3>;
169+
VDDD-supply = <&reg_1v8>;
170+
};
171+
};
172+
173+
&pwm4 {
174+
pinctrl-names = "default";
175+
pinctrl-0 = <&pinctrl_pwm4>;
176+
status = "okay";
177+
};
178+
179+
&pwm8 {
180+
pinctrl-names = "default";
181+
pinctrl-0 = <&pinctrl_pwm8>;
182+
status = "okay";
183+
};
184+
185+
&sai2 {
186+
pinctrl-names = "default";
187+
pinctrl-0 = <&pinctrl_sai2>;
188+
status = "okay";
189+
};
190+
191+
&uart1 {
192+
pinctrl-names = "default";
193+
pinctrl-0 = <&pinctrl_uart1>;
194+
status = "okay";
195+
};
196+
197+
&uart4 {
198+
pinctrl-names = "default";
199+
pinctrl-0 = <&pinctrl_uart4>;
200+
status = "okay";
201+
};
202+
203+
&usbotg1 {
204+
dr_mode = "host";
205+
vbus-supply = <&reg_usb1_vbus>;
206+
disable-over-current;
207+
status = "okay";
208+
};
209+
210+
&usbotg2 {
211+
dr_mode = "host";
212+
vbus-supply = <&reg_usb2_vbus>;
213+
disable-over-current;
214+
status = "okay";
215+
};
216+
217+
/* MicroSD */
218+
&usdhc1 {
219+
pinctrl-names = "default", "state_100mhz", "state_200mhz";
220+
pinctrl-0 = <&pinctrl_usdhc1>;
221+
pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
222+
pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
223+
vmmc-supply = <&reg_3v3>;
224+
bus-width = <4>;
225+
keep-power-in-suspend;
226+
non-removable;
227+
wakeup-source;
228+
status = "okay";
229+
};
230+
231+
&iomuxc {
232+
pinctrl_can: can-grp {
233+
fsl,pins = <
234+
MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX 0x1b020
235+
MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX 0x1b020
236+
>;
237+
};
238+
239+
pinctrl_i2c1: i2c1grp {
240+
fsl,pins = <
241+
MX6UL_PAD_CSI_PIXCLK__I2C1_SCL 0x4001b8b0
242+
MX6UL_PAD_CSI_MCLK__I2C1_SDA 0x4001b8b0
243+
>;
244+
};
245+
246+
pinctrl_i2c2: i2c2grp {
247+
fsl,pins = <
248+
MX6UL_PAD_GPIO1_IO00__I2C2_SCL 0x4001b8b0
249+
MX6UL_PAD_GPIO1_IO01__I2C2_SDA 0x4001b8b0
250+
>;
251+
};
252+
253+
pinctrl_leds: ledsgrp {
254+
fsl,pins = <
255+
MX6UL_PAD_ENET2_RX_EN__GPIO2_IO10 0x130b0
256+
MX6UL_PAD_ENET2_TX_DATA0__GPIO2_IO11 0x130b0
257+
>;
258+
};
259+
260+
pinctrl_mclk: mclkgrp {
261+
fsl,pins = <
262+
MX6UL_PAD_JTAG_TMS__CCM_CLKO1 0x13009
263+
>;
264+
};
265+
266+
pinctrl_pwm4: pwm4grp {
267+
fsl,pins = <
268+
MX6UL_PAD_GPIO1_IO05__PWM4_OUT 0x110b0
269+
>;
270+
};
271+
272+
pinctrl_pwm8: pwm8grp {
273+
fsl,pins = <
274+
MX6UL_PAD_ENET1_RX_ER__PWM8_OUT 0x110b0
275+
>;
276+
};
277+
278+
pinctrl_sai2: sai2grp {
279+
fsl,pins = <
280+
MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA 0x130b0
281+
MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK 0x17088
282+
MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC 0x17088
283+
MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA 0x120b0
284+
>;
285+
};
286+
287+
pinctrl_touchscreen: touchgrp {
288+
fsl,pins = <
289+
MX6UL_PAD_ENET2_TX_CLK__GPIO2_IO14 0x17059
290+
MX6UL_PAD_ENET2_RX_DATA0__GPIO2_IO08 0x17059
291+
>;
292+
};
293+
294+
pinctrl_uart1: uart1grp {
295+
fsl,pins = <
296+
MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1
297+
MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1
298+
>;
299+
};
300+
301+
pinctrl_uart4: uart4grp {
302+
fsl,pins = <
303+
MX6UL_PAD_UART4_TX_DATA__UART4_DCE_TX 0x0b0b0
304+
MX6UL_PAD_UART4_RX_DATA__UART4_DCE_RX 0x0b0b0
305+
>;
306+
};
307+
308+
pinctrl_usdhc1: usdhc1grp {
309+
fsl,pins = <
310+
MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x17059
311+
MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10059
312+
MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x17059
313+
MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059
314+
MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059
315+
MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059
316+
>;
317+
};
318+
319+
pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
320+
fsl,pins = <
321+
MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170b9
322+
MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100b9
323+
MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170b9
324+
MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170b9
325+
MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170b9
326+
MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170b9
327+
>;
328+
};
329+
330+
pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
331+
fsl,pins = <
332+
MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170f9
333+
MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100f9
334+
MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170f9
335+
MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170f9
336+
MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170f9
337+
MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170f9
338+
>;
339+
};
340+
};
341+
342+
&iomuxc_snvs {
343+
pinctrl_reg_usb1: regusb1grp {
344+
fsl,pins = <
345+
MX6ULL_PAD_SNVS_TAMPER0__GPIO5_IO00 0x17059
346+
>;
347+
};
348+
349+
pinctrl_reg_usb2: regusb2grp {
350+
fsl,pins = <
351+
MX6ULL_PAD_SNVS_TAMPER3__GPIO5_IO03 0x17059
352+
>;
353+
};
354+
355+
pinctrl_reg_ext_pwr: reg-ext-pwrgrp {
356+
fsl,pins = <
357+
MX6ULL_PAD_SNVS_TAMPER6__GPIO5_IO06 0x17059
358+
>;
359+
};
360+
};

0 commit comments

Comments
 (0)