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