Skip to content

Commit 02e0bab

Browse files
passgatShawn Guo
authored andcommitted
ARM: dts: imx6ul: support Engicam MicroGEA BMM board
Support Engicam MicroGEA BMM board with: - 256 Mbytes NAND Flash - 512 Mbytes DRAM DDR2 - CAN - 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 a828161 commit 02e0bab

2 files changed

Lines changed: 304 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
@@ -356,6 +356,7 @@ dtb-$(CONFIG_SOC_IMX6UL) += \
356356
imx6ull-dhcom-pdk2.dtb \
357357
imx6ull-dhcom-picoitx.dtb \
358358
imx6ull-dhcor-maveo-box.dtb \
359+
imx6ull-engicam-microgea-bmm.dtb \
359360
imx6ull-jozacp.dtb \
360361
imx6ull-kontron-bl.dtb \
361362
imx6ull-myir-mys-6ulx-eval.dtb \
Lines changed: 303 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,303 @@
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-bmm",
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-bmm-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+
101+
&can1 {
102+
pinctrl-names = "default";
103+
pinctrl-0 = <&pinctrl_can>;
104+
status = "okay";
105+
};
106+
107+
&i2c2 {
108+
pinctrl-names = "default";
109+
pinctrl-0 = <&pinctrl_i2c2>;
110+
clock-frequency = <100000>;
111+
status = "okay";
112+
113+
codec: audio-codec@a {
114+
compatible = "fsl,sgtl5000";
115+
reg = <0x0a>;
116+
pinctrl-names = "default";
117+
pinctrl-0 = <&pinctrl_mclk>;
118+
#sound-dai-cells = <0>;
119+
clocks = <&clks IMX6UL_CLK_CKO>;
120+
assigned-clocks = <&clks IMX6UL_CLK_CKO2_SEL>,
121+
<&clks IMX6UL_CLK_CKO2_PODF>,
122+
<&clks IMX6UL_CLK_CKO2>,
123+
<&clks IMX6UL_CLK_CKO>;
124+
assigned-clock-parents = <&clks IMX6UL_CLK_OSC>,
125+
<&clks IMX6UL_CLK_CKO2_SEL>,
126+
<&clks IMX6UL_CLK_CKO2_PODF>,
127+
<&clks IMX6UL_CLK_CKO2>;
128+
VDDA-supply = <&reg_3v3>;
129+
VDDIO-supply = <&reg_3v3>;
130+
VDDD-supply = <&reg_1v8>;
131+
};
132+
};
133+
134+
&pwm4 {
135+
pinctrl-names = "default";
136+
pinctrl-0 = <&pinctrl_pwm4>;
137+
status = "okay";
138+
};
139+
140+
&pwm8 {
141+
pinctrl-names = "default";
142+
pinctrl-0 = <&pinctrl_pwm8>;
143+
status = "okay";
144+
};
145+
146+
&sai2 {
147+
pinctrl-names = "default";
148+
pinctrl-0 = <&pinctrl_sai2>;
149+
status = "okay";
150+
};
151+
152+
&tsc {
153+
pinctrl-names = "default";
154+
pinctrl-0 = <&pinctrl_tsc>;
155+
measure-delay-time = <0x9ffff>;
156+
pre-charge-time = <0xfff>;
157+
xnur-gpios = <&gpio1 3 GPIO_ACTIVE_LOW>;
158+
status = "okay";
159+
};
160+
161+
&uart1 {
162+
pinctrl-names = "default";
163+
pinctrl-0 = <&pinctrl_uart1>;
164+
status = "okay";
165+
};
166+
167+
&usbotg1 {
168+
dr_mode = "host";
169+
vbus-supply = <&reg_usb1_vbus>;
170+
status = "okay";
171+
};
172+
173+
&usbotg2 {
174+
dr_mode = "host";
175+
vbus-supply = <&reg_usb2_vbus>;
176+
status = "okay";
177+
};
178+
179+
/* MicroSD */
180+
&usdhc1 {
181+
pinctrl-names = "default", "state_100mhz", "state_200mhz";
182+
pinctrl-0 = <&pinctrl_usdhc1>;
183+
pinctrl-1 = <&pinctrl_usdhc1_100mhz>;
184+
pinctrl-2 = <&pinctrl_usdhc1_200mhz>;
185+
vmmc-supply = <&reg_3v3>;
186+
bus-width = <4>;
187+
keep-power-in-suspend;
188+
non-removable;
189+
wakeup-source;
190+
status = "okay";
191+
};
192+
193+
&iomuxc {
194+
pinctrl_can: can-grp {
195+
fsl,pins = <
196+
MX6UL_PAD_UART3_RTS_B__FLEXCAN1_RX 0x1b020
197+
MX6UL_PAD_UART3_CTS_B__FLEXCAN1_TX 0x1b020
198+
>;
199+
};
200+
201+
pinctrl_i2c2: i2c2grp {
202+
fsl,pins = <
203+
MX6UL_PAD_GPIO1_IO00__I2C2_SCL 0x4001b8b0
204+
MX6UL_PAD_UART5_RX_DATA__I2C2_SDA 0x4001b8b0
205+
>;
206+
};
207+
208+
pinctrl_mclk: mclkgrp {
209+
fsl,pins = <
210+
MX6UL_PAD_JTAG_TMS__CCM_CLKO1 0x13009
211+
>;
212+
};
213+
214+
pinctrl_pwm4: pwm4grp {
215+
fsl,pins = <
216+
MX6UL_PAD_GPIO1_IO05__PWM4_OUT 0x110b0
217+
>;
218+
};
219+
220+
pinctrl_pwm8: pwm8grp {
221+
fsl,pins = <
222+
MX6UL_PAD_ENET1_RX_ER__PWM8_OUT 0x11008
223+
>;
224+
};
225+
226+
pinctrl_sai2: sai2grp {
227+
fsl,pins = <
228+
MX6UL_PAD_JTAG_TCK__SAI2_RX_DATA 0x130b0
229+
MX6UL_PAD_JTAG_TDI__SAI2_TX_BCLK 0x17088
230+
MX6UL_PAD_JTAG_TDO__SAI2_TX_SYNC 0x17088
231+
MX6UL_PAD_JTAG_TRST_B__SAI2_TX_DATA 0x120b0
232+
>;
233+
};
234+
235+
pinctrl_tsc: tscgrp {
236+
fsl,pins = <
237+
MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0x000b0
238+
MX6UL_PAD_GPIO1_IO02__GPIO1_IO02 0x000b0
239+
MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0x000b0
240+
MX6UL_PAD_GPIO1_IO04__GPIO1_IO04 0x000b0
241+
>;
242+
};
243+
244+
pinctrl_uart1: uart1grp {
245+
fsl,pins = <
246+
MX6UL_PAD_UART1_TX_DATA__UART1_DCE_TX 0x1b0b1
247+
MX6UL_PAD_UART1_RX_DATA__UART1_DCE_RX 0x1b0b1
248+
>;
249+
};
250+
251+
pinctrl_usdhc1: usdhc1grp {
252+
fsl,pins = <
253+
MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x17059
254+
MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x10059
255+
MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x17059
256+
MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x17059
257+
MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x17059
258+
MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x17059
259+
>;
260+
};
261+
262+
pinctrl_usdhc1_100mhz: usdhc1-100mhzgrp {
263+
fsl,pins = <
264+
MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170b9
265+
MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100b9
266+
MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170b9
267+
MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170b9
268+
MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170b9
269+
MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170b9
270+
>;
271+
};
272+
273+
pinctrl_usdhc1_200mhz: usdhc1-200mhzgrp {
274+
fsl,pins = <
275+
MX6UL_PAD_SD1_CMD__USDHC1_CMD 0x170f9
276+
MX6UL_PAD_SD1_CLK__USDHC1_CLK 0x100f9
277+
MX6UL_PAD_SD1_DATA0__USDHC1_DATA0 0x170f9
278+
MX6UL_PAD_SD1_DATA1__USDHC1_DATA1 0x170f9
279+
MX6UL_PAD_SD1_DATA2__USDHC1_DATA2 0x170f9
280+
MX6UL_PAD_SD1_DATA3__USDHC1_DATA3 0x170f9
281+
>;
282+
};
283+
};
284+
285+
&iomuxc_snvs {
286+
pinctrl_reg_usb1: regusb1grp {
287+
fsl,pins = <
288+
MX6ULL_PAD_SNVS_TAMPER0__GPIO5_IO00 0x17059
289+
>;
290+
};
291+
292+
pinctrl_reg_usb2: regusb2grp {
293+
fsl,pins = <
294+
MX6ULL_PAD_SNVS_TAMPER3__GPIO5_IO03 0x17059
295+
>;
296+
};
297+
298+
pinctrl_reg_ext_pwr: reg-ext-pwrgrp {
299+
fsl,pins = <
300+
MX6ULL_PAD_SNVS_TAMPER6__GPIO5_IO06 0x17059
301+
>;
302+
};
303+
};

0 commit comments

Comments
 (0)