1// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
2/*
3 * Copyright 2022 Toradex
4 */
5
6#include "imx8qm-apalis-v1.1.dtsi"
7
8/ {
9	model = "Toradex Apalis iMX8QM";
10	compatible = "toradex,apalis-imx8",
11		     "fsl,imx8qm";
12};
13
14&ethphy0 {
15	interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
16};
17
18/*
19 * Apalis iMX8QM V1.0 has PHY KSZ9031. the Micrel PHY driver
20 * doesn't support setting internal PHY delay for TXC line for
21 * this PHY model. Use delay on MAC side instead.
22 */
23&fec1 {
24	fsl,rgmii_txc_dly;
25	phy-mode = "rgmii-rxid";
26};
27
28/* TODO: Apalis HDMI1 */
29
30/* Apalis I2C2 (DDC) */
31&i2c0 {
32	pinctrl-names = "default";
33	pinctrl-0 = <&pinctrl_lpi2c0>;
34	#address-cells = <1>;
35	#size-cells = <0>;
36	clock-frequency = <100000>;
37};
38
39&lsio_gpio0 {
40	gpio-line-names = "MXM3_279",
41			  "MXM3_277",
42			  "MXM3_135",
43			  "MXM3_203",
44			  "MXM3_201",
45			  "MXM3_275",
46			  "MXM3_110",
47			  "MXM3_120",
48			  "MXM3_1/GPIO1",
49			  "MXM3_3/GPIO2",
50			  "MXM3_124",
51			  "MXM3_122",
52			  "MXM3_5/GPIO3",
53			  "MXM3_7/GPIO4",
54			  "",
55			  "",
56			  "MXM3_4",
57			  "MXM3_211",
58			  "MXM3_209",
59			  "MXM3_2",
60			  "MXM3_136",
61			  "MXM3_134",
62			  "MXM3_6",
63			  "MXM3_8",
64			  "MXM3_112",
65			  "MXM3_118",
66			  "MXM3_114",
67			  "MXM3_116";
68};
69
70&lsio_gpio1 {
71	gpio-line-names = "",
72			  "",
73			  "",
74			  "",
75			  "MXM3_286",
76			  "",
77			  "MXM3_87",
78			  "MXM3_99",
79			  "MXM3_138",
80			  "MXM3_140",
81			  "MXM3_239",
82			  "",
83			  "MXM3_281",
84			  "MXM3_283",
85			  "MXM3_126",
86			  "MXM3_132",
87			  "",
88			  "",
89			  "",
90			  "",
91			  "MXM3_173",
92			  "MXM3_175",
93			  "MXM3_123";
94};
95
96&lsio_gpio2 {
97	gpio-line-names = "",
98			  "",
99			  "",
100			  "",
101			  "",
102			  "",
103			  "",
104			  "MXM3_198",
105			  "MXM3_35",
106			  "MXM3_164",
107			  "",
108			  "",
109			  "",
110			  "",
111			  "MXM3_217",
112			  "MXM3_215",
113			  "",
114			  "",
115			  "MXM3_193",
116			  "MXM3_194",
117			  "MXM3_37",
118			  "",
119			  "MXM3_271",
120			  "MXM3_273",
121			  "MXM3_195",
122			  "MXM3_197",
123			  "MXM3_177",
124			  "MXM3_179",
125			  "MXM3_181",
126			  "MXM3_183",
127			  "MXM3_185",
128			  "MXM3_187";
129};
130
131&lsio_gpio3 {
132	gpio-line-names = "MXM3_191",
133			  "",
134			  "MXM3_221",
135			  "MXM3_225",
136			  "MXM3_223",
137			  "MXM3_227",
138			  "MXM3_200",
139			  "MXM3_235",
140			  "MXM3_231",
141			  "MXM3_229",
142			  "MXM3_233",
143			  "MXM3_204",
144			  "MXM3_196",
145			  "",
146			  "MXM3_202",
147			  "",
148			  "",
149			  "",
150			  "MXM3_305",
151			  "MXM3_307",
152			  "MXM3_309",
153			  "MXM3_311",
154			  "MXM3_315",
155			  "MXM3_317",
156			  "MXM3_319",
157			  "MXM3_321",
158			  "MXM3_15/GPIO7",
159			  "MXM3_63",
160			  "MXM3_17/GPIO8",
161			  "MXM3_12",
162			  "MXM3_14",
163			  "MXM3_16";
164};
165
166&lsio_gpio4 {
167	gpio-line-names = "MXM3_18",
168			  "MXM3_11/GPIO5",
169			  "MXM3_13/GPIO6",
170			  "MXM3_274",
171			  "MXM3_84",
172			  "MXM3_262",
173			  "MXM3_96",
174			  "",
175			  "",
176			  "",
177			  "",
178			  "",
179			  "MXM3_190",
180			  "",
181			  "",
182			  "",
183			  "MXM3_269",
184			  "MXM3_251",
185			  "MXM3_253",
186			  "MXM3_295",
187			  "MXM3_299",
188			  "MXM3_301",
189			  "MXM3_297",
190			  "MXM3_293",
191			  "MXM3_291",
192			  "MXM3_289",
193			  "MXM3_287";
194
195	/* Enable pcie root / sata ref clock unconditionally */
196	pcie-sata-hog {
197		gpios = <27 GPIO_ACTIVE_HIGH>;
198	};
199
200};
201
202&lsio_gpio5 {
203	gpio-line-names = "",
204			  "",
205			  "",
206			  "",
207			  "",
208			  "",
209			  "",
210			  "",
211			  "",
212			  "",
213			  "",
214			  "",
215			  "",
216			  "",
217			  "MXM3_150",
218			  "MXM3_160",
219			  "MXM3_162",
220			  "MXM3_144",
221			  "MXM3_146",
222			  "MXM3_148",
223			  "MXM3_152",
224			  "MXM3_156",
225			  "MXM3_158",
226			  "MXM3_159",
227			  "MXM3_184",
228			  "MXM3_180",
229			  "MXM3_186",
230			  "MXM3_188",
231			  "MXM3_176",
232			  "MXM3_178";
233};
234
235&lsio_gpio6 {
236	gpio-line-names = "",
237			  "",
238			  "",
239			  "",
240			  "",
241			  "",
242			  "",
243			  "",
244			  "",
245			  "",
246			  "MXM3_261",
247			  "MXM3_263",
248			  "MXM3_259",
249			  "MXM3_257",
250			  "MXM3_255",
251			  "MXM3_128",
252			  "MXM3_130",
253			  "MXM3_265",
254			  "MXM3_249",
255			  "MXM3_247",
256			  "MXM3_245",
257			  "MXM3_243";
258};
259
260&pinctrl_fec1 {
261	fsl,pins =
262		/* Use pads in 1.8V mode */
263		<IMX8QM_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB_PAD			0x000014a0>,
264		<IMX8QM_ENET0_MDC_CONN_ENET0_MDC				0x06000020>,
265		<IMX8QM_ENET0_MDIO_CONN_ENET0_MDIO				0x06000020>,
266		<IMX8QM_ENET0_RGMII_TX_CTL_CONN_ENET0_RGMII_TX_CTL		0x06000020>,
267		<IMX8QM_ENET0_RGMII_TXC_CONN_ENET0_RGMII_TXC			0x06000020>,
268		<IMX8QM_ENET0_RGMII_TXD0_CONN_ENET0_RGMII_TXD0			0x06000020>,
269		<IMX8QM_ENET0_RGMII_TXD1_CONN_ENET0_RGMII_TXD1			0x06000020>,
270		<IMX8QM_ENET0_RGMII_TXD2_CONN_ENET0_RGMII_TXD2			0x06000020>,
271		<IMX8QM_ENET0_RGMII_TXD3_CONN_ENET0_RGMII_TXD3			0x06000020>,
272		<IMX8QM_ENET0_RGMII_RXC_CONN_ENET0_RGMII_RXC			0x06000020>,
273		<IMX8QM_ENET0_RGMII_RX_CTL_CONN_ENET0_RGMII_RX_CTL		0x06000020>,
274		<IMX8QM_ENET0_RGMII_RXD0_CONN_ENET0_RGMII_RXD0			0x06000020>,
275		<IMX8QM_ENET0_RGMII_RXD1_CONN_ENET0_RGMII_RXD1			0x06000020>,
276		<IMX8QM_ENET0_RGMII_RXD2_CONN_ENET0_RGMII_RXD2			0x06000020>,
277		<IMX8QM_ENET0_RGMII_RXD3_CONN_ENET0_RGMII_RXD3			0x06000020>,
278		<IMX8QM_ENET0_REFCLK_125M_25M_CONN_ENET0_REFCLK_125M_25M	0x06000020>,
279		/* On-module ETH_RESET# */
280		<IMX8QM_LVDS1_GPIO01_LSIO_GPIO1_IO11				0x06000020>,
281		/* On-module ETH_INT# */
282		<IMX8QM_LVDS0_GPIO01_LSIO_GPIO1_IO05				0x04000060>;
283};
284
285&pinctrl_fec1_sleep {
286	fsl,pins =
287		<IMX8QM_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB_PAD			0x000014a0>,
288		<IMX8QM_ENET0_MDC_LSIO_GPIO4_IO14				0x04000040>,
289		<IMX8QM_ENET0_MDIO_LSIO_GPIO4_IO13				0x04000040>,
290		<IMX8QM_ENET0_RGMII_TX_CTL_LSIO_GPIO5_IO31			0x04000040>,
291		<IMX8QM_ENET0_RGMII_TXC_LSIO_GPIO5_IO30				0x04000040>,
292		<IMX8QM_ENET0_RGMII_TXD0_LSIO_GPIO6_IO00			0x04000040>,
293		<IMX8QM_ENET0_RGMII_TXD1_LSIO_GPIO6_IO01			0x04000040>,
294		<IMX8QM_ENET0_RGMII_TXD2_LSIO_GPIO6_IO02			0x04000040>,
295		<IMX8QM_ENET0_RGMII_TXD3_LSIO_GPIO6_IO03			0x04000040>,
296		<IMX8QM_ENET0_RGMII_RXC_LSIO_GPIO6_IO04				0x04000040>,
297		<IMX8QM_ENET0_RGMII_RX_CTL_LSIO_GPIO6_IO05			0x04000040>,
298		<IMX8QM_ENET0_RGMII_RXD0_LSIO_GPIO6_IO06			0x04000040>,
299		<IMX8QM_ENET0_RGMII_RXD1_LSIO_GPIO6_IO07			0x04000040>,
300		<IMX8QM_ENET0_RGMII_RXD2_LSIO_GPIO6_IO08			0x04000040>,
301		<IMX8QM_ENET0_RGMII_RXD3_LSIO_GPIO6_IO09			0x04000040>,
302		<IMX8QM_ENET0_REFCLK_125M_25M_LSIO_GPIO4_IO15			0x04000040>,
303		<IMX8QM_LVDS1_GPIO01_LSIO_GPIO1_IO11				0x04000040>,
304		<IMX8QM_LVDS0_GPIO01_LSIO_GPIO1_IO05				0x04000040>;
305};
306
307&iomuxc {
308	/* Apalis I2C2 (DDC) */
309	pinctrl_lpi2c0: lpi2c0grp {
310		fsl,pins =
311			<IMX8QM_HDMI_TX0_TS_SCL_DMA_I2C0_SCL			0x04000022>,
312			<IMX8QM_HDMI_TX0_TS_SDA_DMA_I2C0_SDA			0x04000022>;
313	};
314};
315
316/* On-module PCIe_CTRL0_CLKREQ */
317&pinctrl_pcie_sata_refclk {
318	fsl,pins =
319		<IMX8QM_PCIE_CTRL0_CLKREQ_B_LSIO_GPIO4_IO27			0x00000021>;
320};
321
322/* TODO: On-module Wi-Fi */
323
324/* Apalis MMC1 */
325&usdhc2 {
326	/*
327	 * The PMIC on V1.0A HW generates 1.6V instead of 1.8V which creates
328	 * issues with certain SD cards, disable 1.8V signaling for now.
329	 */
330	no-1-8-v;
331};
332
333/* Apalis SD1 */
334&usdhc3 {
335	/*
336	 * The PMIC on V1.0A HW generates 1.6V instead of 1.8V which creates
337	 * issues with certain SD cards, disable 1.8V signaling for now.
338	 */
339	no-1-8-v;
340};
341