cancel
Showing results for 
Search instead for 
Did you mean: 

SDIO support from expansion header on STM32MP157F-DK

mayank_7117
Associate II

I am using the STM32MP157F-DK board and attempting to connect an NXP Wi-Fi + Bluetooth module via SDIO through the 40-pin expansion header. For this, I designed a custom PCB with an SD card holder and connected the SDIO lines from the expansion header to the SD holder using jumper wires.

When I insert the Wi-Fi module into this setup, it fails to get detected and throws one of the below mentioned errors, such as:

mmc1: error -16 whilst initialising SDIO card
mmc1: Card stuck being busy! __mmc_poll_for_busy

 

mmci-pl18x 48004000.mmc: card claims to support voltages below defined range
mmc1: error -84 whilst initialising MMC card


However, when a standard SD card is inserted into the same slot, it is detected correctly and works as expected.

Could you please advise if any changes are required in the Device Tree (DTB) or if any hardware modifications are needed to enable proper detection and operation of the Wi-Fi module?

SDMMC3 node configuration in DTB file as below :
mmc@48004000 {
compatible = "st,stm32-sdmmc2\0arm,pl18x\0arm,primecell";
arm,primecell-periphid = <0x253180>;
reg = <0x48004000 0x400>;
interrupts = <0x00 0x89 0x04>;
clocks = <0x0b 0x78>;
clock-names = "apb_pclk";
resets = <0x0b 0x4cd0>;
cap-sd-highspeed;
cap-mmc-highspeed;
max-frequency = <0x7270e00>;
access-controllers = <0x26 0x56>;
status = "okay";
pinctrl-names = "default\0opendrain\0sleep";
pinctrl-0 = <0x5f>;
pinctrl-1 = <0x60>;
pinctrl-2 = <0x61>;
broken-cd;
st,neg-edge;
bus-width = <0x04>;
vmmc-supply = <0x1c>;
phandle = <0x1c7>;
};

2 REPLIES 2
Gregory PLANCHON
ST Employee

Hi @mayank_7117 ,

 

Are you sure you have followed all the instructions on this wiki page ?

https://wiki.st.com/stm32mpu/wiki/WLAN_device_tree_configuration


If not, could you check if this solves your issue ?

 

Regards,

Grégory

In order to give better visibility on the answered topics, please click on 'Accept as Solution' on the reply which solved your issue or answered your question.
mayank_7117
Associate II

Yes, SDMMC3 is now working fine.

For the SDIO connection, I used a general-purpose PCB with a soldered SD card holder to extract the pins and connected them to the SDIO lines via the 40-pin header.
Initially, the wires were long, which caused issues. After shortening the wire length, also adding pull-up resistors to the signal lines, and placing a capacitor across the supply line, the SDMMC interface was able to detect the NXP module.
However, if we use a standard SD card instead of the chipset, it gets detected in all cases—even with the longer wires.