i.mx93 EVK SDIO Wifi DTS RESET 引脚 我在 imx93 EVK 上调用外部 uSD 模块(TI cc33xx)时遇到了问题。 我已经从 linux-imx github 仓库中编译并版本了内核和 DTS 文件,然后在 EVK 上从 eMMC 启动并运行了它们。 在 DTS 中,我禁用了 M.2 SDIO 接口 usdhc3,并修改了 usdhc2 以支持 microSD 插槽。 wifi 卡开机并尝试初始化,但无法加载固件,因为它缺少与模块 RESET 引脚的连接。 我试过很多不同的设置,都无法正常工作。我正在尝试将模块中的 RESET 引脚连接到 imx 93 EVK (11x11) 上的 40 针 GPIO 接头。我最能从代码和 EVK 参考手册中看出,imx93 40 引脚接头的地址为 gpio2,而且我的 DTS 设置中有这些相关部分: reg_usdhc2_vmmc: regulator-usdhc2 {
compatible = "regulator-fixed";
regulator-name = "WLAN_EN";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&gpio2 7 GPIO_ACTIVE_HIGH>;
/*
* IW612 wifi chip needs more delay than other wifi chips to complete
* the host interface initialization after power up, otherwise the
* internal state of IW612 may be unstable, resulting in the failure of
* the SDIO3.0 switch voltage.
*/
startup-delay-us = <20000>;
enable-active-high;
regulator-always-on;
};
usdhc2_pwrseq: usdhc2_pwrseq {
compatible = "mmc-pwrseq-simple";
// reset-gpios = <&pcal6524 20 GPIO_ACTIVE_LOW>;
reset-gpios = <&gpio2 7 GPIO_ACTIVE_LOW>;
post-power-on-delay-ms = <10>;
power-off-delay-us = <80>;
};
&usdhc2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_wlan>;
mmc-pwrseq = <&usdhc2_pwrseq>;
vmmc-supply = <®_usdhc2_vmmc>;
bus-width = <4>;
keep-power-in-suspend;
cap-power-off-card;
non-removable;
max-frequency = <10000000>;
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
wlcore: wlcore@2 {
compatible = "ti,cc33xx";
reg = <2>;
//interrupt-parent = <&pcal6524>;
//interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
};
btti: btti@1 {
compatible = "ti,cc33xxbt";
reg = <1>;
};
};
pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
fsl,pins = <
MX93_PAD_SD2_RESET_B__USDHC2_RESET_B 0x31e
>;
}; 我将模块的 RESET 引脚连接到 40 引脚接头上的引脚 26。我做错了什么? 我应该在 EVK 上使用不同的密码进行 RESET 吗? Re: i.MX93 EVK SDIO Wifi DTS Reset Pin 您好!
看起来不错。唯一的建议是使用两个不同的 PAD 进行启用和 RESET。在这种情况下,您需要使用 SAM GPIO2_IO07 来实现这些功能。
顺祝商祺!
萨拉斯 Re: i.MX93 EVK SDIO Wifi DTS Reset Pin @Manuel_Salas感谢您的回复。 这些 usdhc2 部件看起来更好吗? reg_usdhc2_vmmc: regulator-usdhc2 {
compatible = "regulator-fixed";
regulator-name = "WLAN_EN";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
gpio = <&gpio2 7 GPIO_ACTIVE_HIGH>;
/*
* IW612 wifi chip needs more delay than other wifi chips to complete
* the host interface initialization after power up, otherwise the
* internal state of IW612 may be unstable, resulting in the failure of
* the SDIO3.0 switch voltage.
*/
startup-delay-us = <20000>;
enable-active-high;
regulator-always-on;
};
usdhc2_pwrseq: usdhc2_pwrseq {
compatible = "mmc-pwrseq-simple";
// reset-gpios = <&pcal6524 20 GPIO_ACTIVE_LOW>;
reset-gpios = <&gpio2 7 GPIO_ACTIVE_HIGH>;
post-power-on-delay-ms = <10>;
power-off-delay-us = <80>;
};
&usdhc2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_usdhc2>, <&pinctrl_usdhc2_wlan>, <&pinctrl_reg_usdhc2_vmmc>;
mmc-pwrseq = <&usdhc2_pwrseq>;
vmmc-supply = <®_usdhc2_vmmc>;
bus-width = <4>;
keep-power-in-suspend;
no-1-8-v;
cap-power-off-card;
//non-removable;
max-frequency = <10000000>;
status = "okay";
#address-cells = <1>;
#size-cells = <0>;
wlcore: wlcore@2 {
compatible = "ti,cc33xx";
reg = <2>;
//interrupt-parent = <&pcal6524>;
//interrupts = <5 IRQ_TYPE_EDGE_FALLING>;
};
btti: btti@1 {
compatible = "ti,cc33xxbt";
reg = <1>;
};
};
pinctrl_reg_usdhc2_vmmc: regusdhc2vmmcgrp {
fsl,pins = <
MX93_PAD_GPIO_IO07__GPIO2_IO07 0x31e
>;
};
pinctrl_usdhc2_wlan: usdhc2wlangrp {
fsl,pins = <
MX93_PAD_CCM_CLKO1__GPIO3_IO26 0x31e
>;
}; 或者,我是否应该在&usdhc2 中以不同于 pinctrl-0 的方式处理? Re: i.MX93 EVK SDIO Wifi DTS Reset Pin 你好@rtwheato
我希望你过得很好。
PAD 存在混淆。
40 针接头中的 PAD 26 是 & gpio2 7 (EXP_GPIO_IO07),你在设备树 SD2_RESET_B 中使用的是不同的 PAD。
如果要使用 26 号 PIN(EXP_GPIO_IO07),则应改为
MX93_PAD_GPIO_IO07__GPIO2_IO07
顺祝商祺!
萨拉斯
View full article