162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright 2022 Toradex
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#include "imx8qm-apalis-v1.1.dtsi"
762306a36Sopenharmony_ci
862306a36Sopenharmony_ci/ {
962306a36Sopenharmony_ci	model = "Toradex Apalis iMX8QM";
1062306a36Sopenharmony_ci	compatible = "toradex,apalis-imx8",
1162306a36Sopenharmony_ci		     "fsl,imx8qm";
1262306a36Sopenharmony_ci};
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci&ethphy0 {
1562306a36Sopenharmony_ci	interrupts = <5 IRQ_TYPE_LEVEL_LOW>;
1662306a36Sopenharmony_ci};
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci/*
1962306a36Sopenharmony_ci * Apalis iMX8QM V1.0 has PHY KSZ9031. the Micrel PHY driver
2062306a36Sopenharmony_ci * doesn't support setting internal PHY delay for TXC line for
2162306a36Sopenharmony_ci * this PHY model. Use delay on MAC side instead.
2262306a36Sopenharmony_ci */
2362306a36Sopenharmony_ci&fec1 {
2462306a36Sopenharmony_ci	fsl,rgmii_txc_dly;
2562306a36Sopenharmony_ci	phy-mode = "rgmii-rxid";
2662306a36Sopenharmony_ci};
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci/* TODO: Apalis HDMI1 */
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ci/* Apalis I2C2 (DDC) */
3162306a36Sopenharmony_ci&i2c0 {
3262306a36Sopenharmony_ci	pinctrl-names = "default";
3362306a36Sopenharmony_ci	pinctrl-0 = <&pinctrl_lpi2c0>;
3462306a36Sopenharmony_ci	#address-cells = <1>;
3562306a36Sopenharmony_ci	#size-cells = <0>;
3662306a36Sopenharmony_ci	clock-frequency = <100000>;
3762306a36Sopenharmony_ci};
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci&lsio_gpio0 {
4062306a36Sopenharmony_ci	gpio-line-names = "MXM3_279",
4162306a36Sopenharmony_ci			  "MXM3_277",
4262306a36Sopenharmony_ci			  "MXM3_135",
4362306a36Sopenharmony_ci			  "MXM3_203",
4462306a36Sopenharmony_ci			  "MXM3_201",
4562306a36Sopenharmony_ci			  "MXM3_275",
4662306a36Sopenharmony_ci			  "MXM3_110",
4762306a36Sopenharmony_ci			  "MXM3_120",
4862306a36Sopenharmony_ci			  "MXM3_1/GPIO1",
4962306a36Sopenharmony_ci			  "MXM3_3/GPIO2",
5062306a36Sopenharmony_ci			  "MXM3_124",
5162306a36Sopenharmony_ci			  "MXM3_122",
5262306a36Sopenharmony_ci			  "MXM3_5/GPIO3",
5362306a36Sopenharmony_ci			  "MXM3_7/GPIO4",
5462306a36Sopenharmony_ci			  "",
5562306a36Sopenharmony_ci			  "",
5662306a36Sopenharmony_ci			  "MXM3_4",
5762306a36Sopenharmony_ci			  "MXM3_211",
5862306a36Sopenharmony_ci			  "MXM3_209",
5962306a36Sopenharmony_ci			  "MXM3_2",
6062306a36Sopenharmony_ci			  "MXM3_136",
6162306a36Sopenharmony_ci			  "MXM3_134",
6262306a36Sopenharmony_ci			  "MXM3_6",
6362306a36Sopenharmony_ci			  "MXM3_8",
6462306a36Sopenharmony_ci			  "MXM3_112",
6562306a36Sopenharmony_ci			  "MXM3_118",
6662306a36Sopenharmony_ci			  "MXM3_114",
6762306a36Sopenharmony_ci			  "MXM3_116";
6862306a36Sopenharmony_ci};
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci&lsio_gpio1 {
7162306a36Sopenharmony_ci	gpio-line-names = "",
7262306a36Sopenharmony_ci			  "",
7362306a36Sopenharmony_ci			  "",
7462306a36Sopenharmony_ci			  "",
7562306a36Sopenharmony_ci			  "MXM3_286",
7662306a36Sopenharmony_ci			  "",
7762306a36Sopenharmony_ci			  "MXM3_87",
7862306a36Sopenharmony_ci			  "MXM3_99",
7962306a36Sopenharmony_ci			  "MXM3_138",
8062306a36Sopenharmony_ci			  "MXM3_140",
8162306a36Sopenharmony_ci			  "MXM3_239",
8262306a36Sopenharmony_ci			  "",
8362306a36Sopenharmony_ci			  "MXM3_281",
8462306a36Sopenharmony_ci			  "MXM3_283",
8562306a36Sopenharmony_ci			  "MXM3_126",
8662306a36Sopenharmony_ci			  "MXM3_132",
8762306a36Sopenharmony_ci			  "",
8862306a36Sopenharmony_ci			  "",
8962306a36Sopenharmony_ci			  "",
9062306a36Sopenharmony_ci			  "",
9162306a36Sopenharmony_ci			  "MXM3_173",
9262306a36Sopenharmony_ci			  "MXM3_175",
9362306a36Sopenharmony_ci			  "MXM3_123";
9462306a36Sopenharmony_ci};
9562306a36Sopenharmony_ci
9662306a36Sopenharmony_ci&lsio_gpio2 {
9762306a36Sopenharmony_ci	gpio-line-names = "",
9862306a36Sopenharmony_ci			  "",
9962306a36Sopenharmony_ci			  "",
10062306a36Sopenharmony_ci			  "",
10162306a36Sopenharmony_ci			  "",
10262306a36Sopenharmony_ci			  "",
10362306a36Sopenharmony_ci			  "",
10462306a36Sopenharmony_ci			  "MXM3_198",
10562306a36Sopenharmony_ci			  "MXM3_35",
10662306a36Sopenharmony_ci			  "MXM3_164",
10762306a36Sopenharmony_ci			  "",
10862306a36Sopenharmony_ci			  "",
10962306a36Sopenharmony_ci			  "",
11062306a36Sopenharmony_ci			  "",
11162306a36Sopenharmony_ci			  "MXM3_217",
11262306a36Sopenharmony_ci			  "MXM3_215",
11362306a36Sopenharmony_ci			  "",
11462306a36Sopenharmony_ci			  "",
11562306a36Sopenharmony_ci			  "MXM3_193",
11662306a36Sopenharmony_ci			  "MXM3_194",
11762306a36Sopenharmony_ci			  "MXM3_37",
11862306a36Sopenharmony_ci			  "",
11962306a36Sopenharmony_ci			  "MXM3_271",
12062306a36Sopenharmony_ci			  "MXM3_273",
12162306a36Sopenharmony_ci			  "MXM3_195",
12262306a36Sopenharmony_ci			  "MXM3_197",
12362306a36Sopenharmony_ci			  "MXM3_177",
12462306a36Sopenharmony_ci			  "MXM3_179",
12562306a36Sopenharmony_ci			  "MXM3_181",
12662306a36Sopenharmony_ci			  "MXM3_183",
12762306a36Sopenharmony_ci			  "MXM3_185",
12862306a36Sopenharmony_ci			  "MXM3_187";
12962306a36Sopenharmony_ci};
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ci&lsio_gpio3 {
13262306a36Sopenharmony_ci	gpio-line-names = "MXM3_191",
13362306a36Sopenharmony_ci			  "",
13462306a36Sopenharmony_ci			  "MXM3_221",
13562306a36Sopenharmony_ci			  "MXM3_225",
13662306a36Sopenharmony_ci			  "MXM3_223",
13762306a36Sopenharmony_ci			  "MXM3_227",
13862306a36Sopenharmony_ci			  "MXM3_200",
13962306a36Sopenharmony_ci			  "MXM3_235",
14062306a36Sopenharmony_ci			  "MXM3_231",
14162306a36Sopenharmony_ci			  "MXM3_229",
14262306a36Sopenharmony_ci			  "MXM3_233",
14362306a36Sopenharmony_ci			  "MXM3_204",
14462306a36Sopenharmony_ci			  "MXM3_196",
14562306a36Sopenharmony_ci			  "",
14662306a36Sopenharmony_ci			  "MXM3_202",
14762306a36Sopenharmony_ci			  "",
14862306a36Sopenharmony_ci			  "",
14962306a36Sopenharmony_ci			  "",
15062306a36Sopenharmony_ci			  "MXM3_305",
15162306a36Sopenharmony_ci			  "MXM3_307",
15262306a36Sopenharmony_ci			  "MXM3_309",
15362306a36Sopenharmony_ci			  "MXM3_311",
15462306a36Sopenharmony_ci			  "MXM3_315",
15562306a36Sopenharmony_ci			  "MXM3_317",
15662306a36Sopenharmony_ci			  "MXM3_319",
15762306a36Sopenharmony_ci			  "MXM3_321",
15862306a36Sopenharmony_ci			  "MXM3_15/GPIO7",
15962306a36Sopenharmony_ci			  "MXM3_63",
16062306a36Sopenharmony_ci			  "MXM3_17/GPIO8",
16162306a36Sopenharmony_ci			  "MXM3_12",
16262306a36Sopenharmony_ci			  "MXM3_14",
16362306a36Sopenharmony_ci			  "MXM3_16";
16462306a36Sopenharmony_ci};
16562306a36Sopenharmony_ci
16662306a36Sopenharmony_ci&lsio_gpio4 {
16762306a36Sopenharmony_ci	gpio-line-names = "MXM3_18",
16862306a36Sopenharmony_ci			  "MXM3_11/GPIO5",
16962306a36Sopenharmony_ci			  "MXM3_13/GPIO6",
17062306a36Sopenharmony_ci			  "MXM3_274",
17162306a36Sopenharmony_ci			  "MXM3_84",
17262306a36Sopenharmony_ci			  "MXM3_262",
17362306a36Sopenharmony_ci			  "MXM3_96",
17462306a36Sopenharmony_ci			  "",
17562306a36Sopenharmony_ci			  "",
17662306a36Sopenharmony_ci			  "",
17762306a36Sopenharmony_ci			  "",
17862306a36Sopenharmony_ci			  "",
17962306a36Sopenharmony_ci			  "MXM3_190",
18062306a36Sopenharmony_ci			  "",
18162306a36Sopenharmony_ci			  "",
18262306a36Sopenharmony_ci			  "",
18362306a36Sopenharmony_ci			  "MXM3_269",
18462306a36Sopenharmony_ci			  "MXM3_251",
18562306a36Sopenharmony_ci			  "MXM3_253",
18662306a36Sopenharmony_ci			  "MXM3_295",
18762306a36Sopenharmony_ci			  "MXM3_299",
18862306a36Sopenharmony_ci			  "MXM3_301",
18962306a36Sopenharmony_ci			  "MXM3_297",
19062306a36Sopenharmony_ci			  "MXM3_293",
19162306a36Sopenharmony_ci			  "MXM3_291",
19262306a36Sopenharmony_ci			  "MXM3_289",
19362306a36Sopenharmony_ci			  "MXM3_287";
19462306a36Sopenharmony_ci
19562306a36Sopenharmony_ci	/* Enable pcie root / sata ref clock unconditionally */
19662306a36Sopenharmony_ci	pcie-sata-hog {
19762306a36Sopenharmony_ci		gpios = <27 GPIO_ACTIVE_HIGH>;
19862306a36Sopenharmony_ci	};
19962306a36Sopenharmony_ci
20062306a36Sopenharmony_ci};
20162306a36Sopenharmony_ci
20262306a36Sopenharmony_ci&lsio_gpio5 {
20362306a36Sopenharmony_ci	gpio-line-names = "",
20462306a36Sopenharmony_ci			  "",
20562306a36Sopenharmony_ci			  "",
20662306a36Sopenharmony_ci			  "",
20762306a36Sopenharmony_ci			  "",
20862306a36Sopenharmony_ci			  "",
20962306a36Sopenharmony_ci			  "",
21062306a36Sopenharmony_ci			  "",
21162306a36Sopenharmony_ci			  "",
21262306a36Sopenharmony_ci			  "",
21362306a36Sopenharmony_ci			  "",
21462306a36Sopenharmony_ci			  "",
21562306a36Sopenharmony_ci			  "",
21662306a36Sopenharmony_ci			  "",
21762306a36Sopenharmony_ci			  "MXM3_150",
21862306a36Sopenharmony_ci			  "MXM3_160",
21962306a36Sopenharmony_ci			  "MXM3_162",
22062306a36Sopenharmony_ci			  "MXM3_144",
22162306a36Sopenharmony_ci			  "MXM3_146",
22262306a36Sopenharmony_ci			  "MXM3_148",
22362306a36Sopenharmony_ci			  "MXM3_152",
22462306a36Sopenharmony_ci			  "MXM3_156",
22562306a36Sopenharmony_ci			  "MXM3_158",
22662306a36Sopenharmony_ci			  "MXM3_159",
22762306a36Sopenharmony_ci			  "MXM3_184",
22862306a36Sopenharmony_ci			  "MXM3_180",
22962306a36Sopenharmony_ci			  "MXM3_186",
23062306a36Sopenharmony_ci			  "MXM3_188",
23162306a36Sopenharmony_ci			  "MXM3_176",
23262306a36Sopenharmony_ci			  "MXM3_178";
23362306a36Sopenharmony_ci};
23462306a36Sopenharmony_ci
23562306a36Sopenharmony_ci&lsio_gpio6 {
23662306a36Sopenharmony_ci	gpio-line-names = "",
23762306a36Sopenharmony_ci			  "",
23862306a36Sopenharmony_ci			  "",
23962306a36Sopenharmony_ci			  "",
24062306a36Sopenharmony_ci			  "",
24162306a36Sopenharmony_ci			  "",
24262306a36Sopenharmony_ci			  "",
24362306a36Sopenharmony_ci			  "",
24462306a36Sopenharmony_ci			  "",
24562306a36Sopenharmony_ci			  "",
24662306a36Sopenharmony_ci			  "MXM3_261",
24762306a36Sopenharmony_ci			  "MXM3_263",
24862306a36Sopenharmony_ci			  "MXM3_259",
24962306a36Sopenharmony_ci			  "MXM3_257",
25062306a36Sopenharmony_ci			  "MXM3_255",
25162306a36Sopenharmony_ci			  "MXM3_128",
25262306a36Sopenharmony_ci			  "MXM3_130",
25362306a36Sopenharmony_ci			  "MXM3_265",
25462306a36Sopenharmony_ci			  "MXM3_249",
25562306a36Sopenharmony_ci			  "MXM3_247",
25662306a36Sopenharmony_ci			  "MXM3_245",
25762306a36Sopenharmony_ci			  "MXM3_243";
25862306a36Sopenharmony_ci};
25962306a36Sopenharmony_ci
26062306a36Sopenharmony_ci&pinctrl_fec1 {
26162306a36Sopenharmony_ci	fsl,pins =
26262306a36Sopenharmony_ci		/* Use pads in 1.8V mode */
26362306a36Sopenharmony_ci		<IMX8QM_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB_PAD			0x000014a0>,
26462306a36Sopenharmony_ci		<IMX8QM_ENET0_MDC_CONN_ENET0_MDC				0x06000020>,
26562306a36Sopenharmony_ci		<IMX8QM_ENET0_MDIO_CONN_ENET0_MDIO				0x06000020>,
26662306a36Sopenharmony_ci		<IMX8QM_ENET0_RGMII_TX_CTL_CONN_ENET0_RGMII_TX_CTL		0x06000020>,
26762306a36Sopenharmony_ci		<IMX8QM_ENET0_RGMII_TXC_CONN_ENET0_RGMII_TXC			0x06000020>,
26862306a36Sopenharmony_ci		<IMX8QM_ENET0_RGMII_TXD0_CONN_ENET0_RGMII_TXD0			0x06000020>,
26962306a36Sopenharmony_ci		<IMX8QM_ENET0_RGMII_TXD1_CONN_ENET0_RGMII_TXD1			0x06000020>,
27062306a36Sopenharmony_ci		<IMX8QM_ENET0_RGMII_TXD2_CONN_ENET0_RGMII_TXD2			0x06000020>,
27162306a36Sopenharmony_ci		<IMX8QM_ENET0_RGMII_TXD3_CONN_ENET0_RGMII_TXD3			0x06000020>,
27262306a36Sopenharmony_ci		<IMX8QM_ENET0_RGMII_RXC_CONN_ENET0_RGMII_RXC			0x06000020>,
27362306a36Sopenharmony_ci		<IMX8QM_ENET0_RGMII_RX_CTL_CONN_ENET0_RGMII_RX_CTL		0x06000020>,
27462306a36Sopenharmony_ci		<IMX8QM_ENET0_RGMII_RXD0_CONN_ENET0_RGMII_RXD0			0x06000020>,
27562306a36Sopenharmony_ci		<IMX8QM_ENET0_RGMII_RXD1_CONN_ENET0_RGMII_RXD1			0x06000020>,
27662306a36Sopenharmony_ci		<IMX8QM_ENET0_RGMII_RXD2_CONN_ENET0_RGMII_RXD2			0x06000020>,
27762306a36Sopenharmony_ci		<IMX8QM_ENET0_RGMII_RXD3_CONN_ENET0_RGMII_RXD3			0x06000020>,
27862306a36Sopenharmony_ci		<IMX8QM_ENET0_REFCLK_125M_25M_CONN_ENET0_REFCLK_125M_25M	0x06000020>,
27962306a36Sopenharmony_ci		/* On-module ETH_RESET# */
28062306a36Sopenharmony_ci		<IMX8QM_LVDS1_GPIO01_LSIO_GPIO1_IO11				0x06000020>,
28162306a36Sopenharmony_ci		/* On-module ETH_INT# */
28262306a36Sopenharmony_ci		<IMX8QM_LVDS0_GPIO01_LSIO_GPIO1_IO05				0x04000060>;
28362306a36Sopenharmony_ci};
28462306a36Sopenharmony_ci
28562306a36Sopenharmony_ci&pinctrl_fec1_sleep {
28662306a36Sopenharmony_ci	fsl,pins =
28762306a36Sopenharmony_ci		<IMX8QM_COMP_CTL_GPIO_1V8_3V3_ENET_ENETB_PAD			0x000014a0>,
28862306a36Sopenharmony_ci		<IMX8QM_ENET0_MDC_LSIO_GPIO4_IO14				0x04000040>,
28962306a36Sopenharmony_ci		<IMX8QM_ENET0_MDIO_LSIO_GPIO4_IO13				0x04000040>,
29062306a36Sopenharmony_ci		<IMX8QM_ENET0_RGMII_TX_CTL_LSIO_GPIO5_IO31			0x04000040>,
29162306a36Sopenharmony_ci		<IMX8QM_ENET0_RGMII_TXC_LSIO_GPIO5_IO30				0x04000040>,
29262306a36Sopenharmony_ci		<IMX8QM_ENET0_RGMII_TXD0_LSIO_GPIO6_IO00			0x04000040>,
29362306a36Sopenharmony_ci		<IMX8QM_ENET0_RGMII_TXD1_LSIO_GPIO6_IO01			0x04000040>,
29462306a36Sopenharmony_ci		<IMX8QM_ENET0_RGMII_TXD2_LSIO_GPIO6_IO02			0x04000040>,
29562306a36Sopenharmony_ci		<IMX8QM_ENET0_RGMII_TXD3_LSIO_GPIO6_IO03			0x04000040>,
29662306a36Sopenharmony_ci		<IMX8QM_ENET0_RGMII_RXC_LSIO_GPIO6_IO04				0x04000040>,
29762306a36Sopenharmony_ci		<IMX8QM_ENET0_RGMII_RX_CTL_LSIO_GPIO6_IO05			0x04000040>,
29862306a36Sopenharmony_ci		<IMX8QM_ENET0_RGMII_RXD0_LSIO_GPIO6_IO06			0x04000040>,
29962306a36Sopenharmony_ci		<IMX8QM_ENET0_RGMII_RXD1_LSIO_GPIO6_IO07			0x04000040>,
30062306a36Sopenharmony_ci		<IMX8QM_ENET0_RGMII_RXD2_LSIO_GPIO6_IO08			0x04000040>,
30162306a36Sopenharmony_ci		<IMX8QM_ENET0_RGMII_RXD3_LSIO_GPIO6_IO09			0x04000040>,
30262306a36Sopenharmony_ci		<IMX8QM_ENET0_REFCLK_125M_25M_LSIO_GPIO4_IO15			0x04000040>,
30362306a36Sopenharmony_ci		<IMX8QM_LVDS1_GPIO01_LSIO_GPIO1_IO11				0x04000040>,
30462306a36Sopenharmony_ci		<IMX8QM_LVDS0_GPIO01_LSIO_GPIO1_IO05				0x04000040>;
30562306a36Sopenharmony_ci};
30662306a36Sopenharmony_ci
30762306a36Sopenharmony_ci&iomuxc {
30862306a36Sopenharmony_ci	/* Apalis I2C2 (DDC) */
30962306a36Sopenharmony_ci	pinctrl_lpi2c0: lpi2c0grp {
31062306a36Sopenharmony_ci		fsl,pins =
31162306a36Sopenharmony_ci			<IMX8QM_HDMI_TX0_TS_SCL_DMA_I2C0_SCL			0x04000022>,
31262306a36Sopenharmony_ci			<IMX8QM_HDMI_TX0_TS_SDA_DMA_I2C0_SDA			0x04000022>;
31362306a36Sopenharmony_ci	};
31462306a36Sopenharmony_ci};
31562306a36Sopenharmony_ci
31662306a36Sopenharmony_ci/* On-module PCIe_CTRL0_CLKREQ */
31762306a36Sopenharmony_ci&pinctrl_pcie_sata_refclk {
31862306a36Sopenharmony_ci	fsl,pins =
31962306a36Sopenharmony_ci		<IMX8QM_PCIE_CTRL0_CLKREQ_B_LSIO_GPIO4_IO27			0x00000021>;
32062306a36Sopenharmony_ci};
32162306a36Sopenharmony_ci
32262306a36Sopenharmony_ci/* TODO: On-module Wi-Fi */
32362306a36Sopenharmony_ci
32462306a36Sopenharmony_ci/* Apalis MMC1 */
32562306a36Sopenharmony_ci&usdhc2 {
32662306a36Sopenharmony_ci	/*
32762306a36Sopenharmony_ci	 * The PMIC on V1.0A HW generates 1.6V instead of 1.8V which creates
32862306a36Sopenharmony_ci	 * issues with certain SD cards, disable 1.8V signaling for now.
32962306a36Sopenharmony_ci	 */
33062306a36Sopenharmony_ci	no-1-8-v;
33162306a36Sopenharmony_ci};
33262306a36Sopenharmony_ci
33362306a36Sopenharmony_ci/* Apalis SD1 */
33462306a36Sopenharmony_ci&usdhc3 {
33562306a36Sopenharmony_ci	/*
33662306a36Sopenharmony_ci	 * The PMIC on V1.0A HW generates 1.6V instead of 1.8V which creates
33762306a36Sopenharmony_ci	 * issues with certain SD cards, disable 1.8V signaling for now.
33862306a36Sopenharmony_ci	 */
33962306a36Sopenharmony_ci	no-1-8-v;
34062306a36Sopenharmony_ci};
341