summaryrefslogtreecommitdiff
path: root/dts/upstream/src/arm64/freescale/imx93w.dtsi
blob: 95fb025c3949337a969ec3fbf4d62b0f986cd237 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright 2026 NXP
 */

#include "imx93.dtsi"

/ {
	aliases {
		mmc2 = &usdhc3;
	};

	reg_usdhc3_vmmc: regulator-usdhc3 {
		compatible = "regulator-fixed";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_reg_usdhc3_vmmc>;
		regulator-name = "WLAN_EN";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		gpio = <&gpio2 29 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	usdhc3_pwrseq: usdhc3_pwrseq {
		compatible = "mmc-pwrseq-simple";
		pinctrl-names = "default";
		pinctrl-0 = <&pinctrl_usdhc3_pwrseq>;
		reset-gpios = <&gpio1 10 GPIO_ACTIVE_LOW>;
	};
};

&usdhc3 {
	pinctrl-names = "default", "state_100mhz", "state_200mhz", "sleep";
	pinctrl-0 = <&pinctrl_usdhc3>;
	pinctrl-1 = <&pinctrl_usdhc3_100mhz>;
	pinctrl-2 = <&pinctrl_usdhc3_200mhz>;
	pinctrl-3 = <&pinctrl_usdhc3_sleep>;
	mmc-pwrseq = <&usdhc3_pwrseq>;
	vmmc-supply = <&reg_usdhc3_vmmc>;
	bus-width = <4>;
	keep-power-in-suspend;
	non-removable;
	wakeup-source;
	status = "okay";
};

&iomuxc {
	pinctrl_reg_usdhc3_vmmc: regusdhc3vmmcgrp {
		fsl,pins = <
			/*
			 * Enable open drain and internal pull-up to allow the IW610 JTAG
			 * connector to control the PDn status.
			 */
			MX93_PAD_GPIO_IO29__GPIO2_IO29			0xb9e
		>;
	};

	/* need to config the SION for data and cmd pad, refer to ERR052021 */
	pinctrl_usdhc3: usdhc3grp {
		fsl,pins = <
			MX93_PAD_SD3_CLK__USDHC3_CLK		0x1582
			MX93_PAD_SD3_CMD__USDHC3_CMD		0x40001382
			MX93_PAD_SD3_DATA0__USDHC3_DATA0	0x40001382
			MX93_PAD_SD3_DATA1__USDHC3_DATA1	0x40001382
			MX93_PAD_SD3_DATA2__USDHC3_DATA2	0x40001382
			MX93_PAD_SD3_DATA3__USDHC3_DATA3	0x40001382
		>;
	};

	/* need to config the SION for data and cmd pad, refer to ERR052021 */
	pinctrl_usdhc3_100mhz: usdhc3-100mhzgrp {
		fsl,pins = <
			MX93_PAD_SD3_CLK__USDHC3_CLK		0x158e
			MX93_PAD_SD3_CMD__USDHC3_CMD		0x4000138e
			MX93_PAD_SD3_DATA0__USDHC3_DATA0	0x4000138e
			MX93_PAD_SD3_DATA1__USDHC3_DATA1	0x4000138e
			MX93_PAD_SD3_DATA2__USDHC3_DATA2	0x4000138e
			MX93_PAD_SD3_DATA3__USDHC3_DATA3	0x4000138e
		>;
	};

	/* need to config the SION for data and cmd pad, refer to ERR052021 */
	pinctrl_usdhc3_200mhz: usdhc3-200mhzgrp {
		fsl,pins = <
			MX93_PAD_SD3_CLK__USDHC3_CLK		0x15fe
			MX93_PAD_SD3_CMD__USDHC3_CMD		0x400013fe
			MX93_PAD_SD3_DATA0__USDHC3_DATA0	0x400013fe
			MX93_PAD_SD3_DATA1__USDHC3_DATA1	0x400013fe
			MX93_PAD_SD3_DATA2__USDHC3_DATA2	0x400013fe
			MX93_PAD_SD3_DATA3__USDHC3_DATA3	0x400013fe
		>;
	};

	pinctrl_usdhc3_sleep: usdhc3grpsleepgrp {
		fsl,pins = <
			MX93_PAD_SD3_CLK__GPIO3_IO20		0x31e
			MX93_PAD_SD3_CMD__GPIO3_IO21		0x31e
			MX93_PAD_SD3_DATA0__GPIO3_IO22		0x31e
			MX93_PAD_SD3_DATA1__GPIO3_IO23		0x31e
			MX93_PAD_SD3_DATA2__GPIO3_IO24		0x31e
			MX93_PAD_SD3_DATA3__GPIO3_IO25		0x31e
		>;
	};

	pinctrl_usdhc3_pwrseq: usdhc3pwrseqgrp {
		fsl,pins = <
			MX93_PAD_PDM_BIT_STREAM1__GPIO1_IO10		0x39e
		>;
	};
};