xref: /linux/arch/arm/boot/dts/nxp/imx/imx6ull-engicam-microgea-rmm.dts (revision 115e74a29b530d121891238e9551c4bcdf7b04b5)
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};
361