xref: /linux/scripts/dtc/include-prefixes/arm64/freescale/imx8mp-tqma8mpqs-mb-smarc-2.dts (revision 67f8bc848ee31831336bd478e57d2f993551902e)
1// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2/*
3 * Copyright 2025-2026 TQ-Systems GmbH <linux@ew.tq-group.com>,
4 * D-82229 Seefeld, Germany.
5 * Author: Paul Gerber
6 */
7
8/dts-v1/;
9
10#include <dt-bindings/leds/common.h>
11#include "imx8mp-tqma8mpqs.dtsi"
12
13/ {
14	model = "TQ-Systems i.MX8MPlus TQMa8MPxS on MB-SMARC-2";
15	compatible = "tq,imx8mp-tqma8mpqs-mb-smarc-2", "tq,imx8mp-tqma8mpqs", "fsl,imx8mp";
16	chassis-type = "embedded";
17
18	chosen {
19		stdout-path = &uart3;
20	};
21
22	aliases {
23		ethernet0 = &eqos;
24		ethernet1 = &fec;
25		mmc0 = &usdhc3;
26		mmc1 = &usdhc2;
27		rtc0 = &pcf85063;
28		rtc1 = &snvs_rtc;
29		spi0 = &flexspi;
30		spi1 = &ecspi1;
31		spi2 = &ecspi2;
32		spi3 = &ecspi3;
33	};
34
35	backlight_lvds0: backlight-lvds0 {
36		compatible = "pwm-backlight";
37		pwms = <&pwm3 0 100000 0>;
38		brightness-levels = <0 4 8 16 32 64 128 255>;
39		default-brightness-level = <7>;
40		enable-gpios = <&expander0 0 GPIO_ACTIVE_HIGH>;
41		power-supply = <&reg_12v0>;
42		status = "disabled";
43	};
44
45	backlight_lvds1: backlight-lvds1 {
46		compatible = "pwm-backlight";
47		pwms = <&pwm2 0 100000 0>;
48		brightness-levels = <0 4 8 16 32 64 128 255>;
49		default-brightness-level = <7>;
50		enable-gpios = <&expander0 2 GPIO_ACTIVE_HIGH>;
51		power-supply = <&reg_12v0>;
52		status = "disabled";
53	};
54
55	hdmi-connector {
56		compatible = "hdmi-connector";
57		label = "X6";
58		type = "a";
59
60		port {
61			hdmi_connector_in: endpoint {
62				remote-endpoint = <&hdmi_tx_out>;
63			};
64		};
65	};
66
67	panel_lvds0: panel-lvds0 {
68		/*
69		 * Display is not fixed, so compatible has to be added from
70		 * DT overlay
71		 */
72		backlight = <&backlight_lvds0>;
73		power-supply = <&reg_lvds0>;
74		status = "disabled";
75
76		port {
77			panel_in_lvds0: endpoint {
78				remote-endpoint = <&ldb_lvds_ch0>;
79			};
80		};
81	};
82
83	panel_lvds1: panel-lvds1 {
84		/*
85		 * Display is not fixed, so compatible has to be added from
86		 * DT overlay
87		 */
88		backlight = <&backlight_lvds1>;
89		power-supply = <&reg_lvds1>;
90		status = "disabled";
91
92		port {
93			panel_in_lvds1: endpoint {
94				remote-endpoint = <&ldb_lvds_ch1>;
95			};
96		};
97	};
98
99	reg_1v8: regulator-1v8 {
100		compatible = "regulator-fixed";
101		regulator-name = "1V8";
102		regulator-min-microvolt = <1800000>;
103		regulator-max-microvolt = <1800000>;
104		regulator-always-on;
105	};
106
107	reg_3v3: regulator-3v3 {
108		compatible = "regulator-fixed";
109		regulator-name = "3V3";
110		regulator-min-microvolt = <3300000>;
111		regulator-max-microvolt = <3300000>;
112		regulator-always-on;
113	};
114
115	reg_12v0: regulator-12v0 {
116		compatible = "regulator-fixed";
117		regulator-name = "12V0";
118		regulator-min-microvolt = <12000000>;
119		regulator-max-microvolt = <12000000>;
120		regulator-always-on;
121	};
122
123	reg_lvds0: regulator-lvds0 {
124		compatible = "regulator-fixed";
125		regulator-name = "LCD0_VDD_EN";
126		regulator-min-microvolt = <3300000>;
127		regulator-max-microvolt = <3300000>;
128		gpio = <&expander0 1 GPIO_ACTIVE_HIGH>;
129		enable-active-high;
130	};
131
132	reg_lvds1: regulator-lvds1 {
133		compatible = "regulator-fixed";
134		regulator-name = "LCD1_VDD_EN";
135		regulator-min-microvolt = <3300000>;
136		regulator-max-microvolt = <3300000>;
137		gpio = <&expander0 3 GPIO_ACTIVE_HIGH>;
138		enable-active-high;
139	};
140
141	reserved-memory {
142		#address-cells = <2>;
143		#size-cells = <2>;
144		ranges;
145
146		/* global autoconfigured region for contiguous allocations */
147		linux,cma {
148			compatible = "shared-dma-pool";
149			reusable;
150			size = <0 0x38000000>;
151			alloc-ranges = <0 0x40000000 0 0x78000000>;
152			linux,cma-default;
153		};
154	};
155
156	sound {
157		compatible = "fsl,imx-audio-tlv320aic32x4";
158		model = "tqm-tlv320aic32";
159		audio-asrc = <&easrc>;
160		audio-cpu = <&sai5>;
161		audio-codec = <&tlv320aic3x04>;
162		audio-routing =
163			"IN3_L", "Mic Jack",
164			"Mic Jack", "Mic Bias",
165			"IN1_L", "Line In Jack",
166			"IN1_R", "Line In Jack",
167			"Line Out Jack", "LOL",
168			"Line Out Jack", "LOR";
169	};
170
171	usb-connector {
172		compatible = "gpio-usb-b-connector", "usb-b-connector";
173		type = "micro";
174		label = "X4";
175		pinctrl-names = "default";
176		pinctrl-0 = <&pinctrl_usbcon0>;
177		id-gpios = <&gpio1 10 GPIO_ACTIVE_HIGH>;
178
179		port {
180			usb_dr_connector: endpoint {
181				remote-endpoint = <&usb3_dwc>;
182			};
183		};
184	};
185};
186
187&easrc {
188	status = "okay";
189};
190
191&ecspi1 {
192	status = "okay";
193};
194
195&eqos {
196	status = "okay";
197};
198
199&ethphy0 {
200	leds {
201		#address-cells = <1>;
202		#size-cells = <0>;
203
204		led@1 {
205			reg = <1>;
206			color = <LED_COLOR_ID_GREEN>;
207			function = LED_FUNCTION_LAN;
208			function-enumerator = <0>;
209			default-state = "keep";
210		};
211
212		led@2 {
213			reg = <2>;
214			color = <LED_COLOR_ID_AMBER>;
215			function = LED_FUNCTION_LAN;
216			function-enumerator = <0>;
217			default-state = "keep";
218		};
219	};
220};
221
222&ethphy3 {
223	leds {
224		#address-cells = <1>;
225		#size-cells = <0>;
226
227		led@1 {
228			reg = <1>;
229			color = <LED_COLOR_ID_GREEN>;
230			function = LED_FUNCTION_LAN;
231			function-enumerator = <0>;
232			default-state = "keep";
233		};
234
235		led@2 {
236			reg = <2>;
237			color = <LED_COLOR_ID_AMBER>;
238			function = LED_FUNCTION_LAN;
239			function-enumerator = <0>;
240			default-state = "keep";
241		};
242	};
243};
244
245&fec {
246	status = "okay";
247};
248
249&flexcan1 {
250	xceiver-supply = <&reg_3v3>;
251	status = "okay";
252};
253
254&flexcan2 {
255	xceiver-supply = <&reg_3v3>;
256	status = "okay";
257};
258
259&hdmi_pvi {
260	status = "okay";
261};
262
263&hdmi_tx {
264	status = "okay";
265
266	ports {
267		port@1 {
268			hdmi_tx_out: endpoint {
269				remote-endpoint = <&hdmi_connector_in>;
270			};
271		};
272	};
273};
274
275&hdmi_tx_phy {
276	status = "okay";
277};
278
279&i2c1 {
280	tlv320aic3x04: audio-codec@18 {
281		compatible = "ti,tlv320aic32x4";
282		reg = <0x18>;
283		clock-names = "mclk";
284		clocks = <&audio_blk_ctrl IMX8MP_CLK_AUDIOMIX_SAI5_MCLK1>;
285		iov-supply = <&reg_1v8>;
286		ldoin-supply = <&reg_3v3>;
287		assigned-clocks = <&clk IMX8MP_CLK_SAI5>;
288		assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
289		assigned-clock-rates = <12288000>;
290	};
291
292	eeprom2: eeprom@57 {
293		compatible = "atmel,24c32";
294		reg = <0x57>;
295		pagesize = <32>;
296		vcc-supply = <&reg_3v3>;
297	};
298};
299
300&ldb_lvds_ch0 {
301	remote-endpoint = <&panel_in_lvds0>;
302};
303
304&ldb_lvds_ch1 {
305	remote-endpoint = <&panel_in_lvds1>;
306};
307
308&lcdif1 {
309	status = "okay";
310};
311
312&lcdif3 {
313	status = "okay";
314};
315
316&pcie_phy {
317	fsl,clkreq-unsupported;
318	status = "okay";
319};
320
321&pcie {
322	status = "okay";
323};
324
325&reg_usdhc2_vmmc {
326	startup-delay-us = <100>;
327	off-on-delay-us = <200000>;
328	status = "okay";
329};
330
331&reg_usdhc2_vqmmc {
332	status = "okay";
333};
334
335&sai3 {
336	status = "okay";
337};
338
339&sai5 {
340	status = "okay";
341};
342
343&snvs_pwrkey {
344	status = "okay";
345};
346
347&uart1 {
348	status = "okay";
349};
350
351&uart2 {
352	status = "okay";
353};
354
355&uart4 {
356	status = "okay";
357};
358
359&usb3_0 {
360	status = "okay";
361};
362
363&usb_dwc3_0 {
364	status = "okay";
365
366	port {
367		usb3_dwc: endpoint {
368			remote-endpoint = <&usb_dr_connector>;
369		};
370	};
371};
372
373&usdhc2 {
374	cd-gpios = <&gpio2 12 GPIO_ACTIVE_LOW>;
375	wp-gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>;
376	vmmc-supply = <&reg_usdhc2_vmmc>;
377	no-mmc;
378	no-sdio;
379	status = "okay";
380};
381