AnsweredAssumed Answered

i.MX25 - SDIO WIFI not detected

Question asked by Renato Chinelatto on Jul 18, 2019
Latest reply on Apr 22, 2020 by Renato Chinelatto



I have a custom board with Linux v2.6 running perfectly. I am updating Linux (Yocto-thud) and I will configure another SDIO wifi module. I tried communication with the 2 SDIO WIFI modules, but it´s not detected.


I changed the dts:

&esdhc2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_esdhc2>;
#address-cells = <0x1>;
#size-cells = <0x0>;
status = "okay";

esdhc@1 {
compatible = "silabs,wfx-sdio,fsl,imx25-esdhc";
reg = <1>;
pinctrl-names = "default";

pinctrl_esdhc2: esdhc2grp {
fsl,pins = <
MX25_PAD_CSI_D6__SDHC2_CMD 0x80000000
MX25_PAD_CSI_D7__ESDHC2_CLK 0x80000000
MX25_PAD_CSI_MCLK__SDHC2_DAT0 0x80000000
MX25_PAD_CSI_VSYNC__ESDHC2_DAT1 0x80000000
MX25_PAD_CSI_HSYNC__SDHC2_DAT2 0x80000000
MX25_PAD_CSI_PIXCLK__SDHC2_DAT3 0x80000000


At startup is displayed:

sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
sdhci-pltfm: SDHCI platform and OF driver helper
sdhci-esdhc-imx 53fb4000.esdhc: Got CD GPIO
sdhci-esdhc-imx 53fb4000.esdhc: Got WP GPIO
mmc0 bounce up to 128 segments into one, max segment size 65536 bytes
mmc0: SDHCI controller on 53fb4000.esdhc [53fb4000.esdhc] using DMA
mmc1 bounce up to 128 segments into one, max segment size 65536 bytes
mmc1: SDHCI controller on 53fb8000.esdhc [53fb8000.esdhc] using DMA
mmc0: new high speed SDHC card at address aaaa
mmcblk0: mmc0:aaaa SS08G 7.40 GiB
mmcblk0: p1


The message "mmc1: new high speed SDIO card at address ..." is not displayed


I checked the communication with mmc:

echo 1 > /sys/kernel/debug/tracing/events/mmc/mmc_request_done/enable
echo 'cmd_opcode != 53' > /sys/kernel/debug/tracing/events/mmc/mmc_request_done/filter
cat /sys/kernel/debug/tracing/trace_pipe | grep mmc1 > log.txt &
echo 53fb8000.esdhc > /sys/bus/platform/drivers/sdhci-esdhc-imx/unbind
sleep 2
echo 53fb8000.esdhc > /sys/bus/platform/drivers/sdhci-esdhc-imx/bind


All commands (except 0x00) return cmd_err = -110. Checking in a logic analyzer, I see the commands sent in the 400's, 300's, 200's and 100's KHz. I tried several changes to the dts, but no sucess.


Any idea how to debug or resolve this problem?