How to use multiple SDIO interfaces on Colibri T30

Hi,

We’re trying to interface a Bluegiga WF111 WiFi module (one of the suggested modules on your WiFi knowledge base page) with the Colibri T30, but we’re having difficulty connecting it to the non-default SDIO interfaces.We’re using the Colibri T30 running the provided Linux image on the Iris carrier board.

I can get the T30 to communicate with the WF111 over the default SDIO interface used by the microSD card slot on the Iris board, so the drivers/firmware appear to be loaded correctly (driver is loaded as a kernel module). However, I can’t seem to get the T30 to detect the WF111 on the alternate SDIO interfaces. I’ve tried using the GPIO config utility to temporarily set the pins for the other SDIO interfaces to the alternate SDMMC functions (e.g. SDMMC3_CLK pin set to SDMMC3-SCLK function, SDMMC3_CMD pin set to SDMMC3-CMD function, etc.), loaded the driver module manually (using modprobe), and connecting the WF111 to the corresponding pins on the Iris board (pull-up resistors added as on the SD lines). However, the T30 does not detect the WF111 at all. No mmc devices are detected. I also tried the pins for SDMMC1 interface, but no luck.

Is there a way to probe the SDIO interface directly? Do the alternate SDIO interfaces need to be enabled or configured in a custom kernel image first? Like I said, I’m still getting familiar with embedded linux so any advice on how to go about setting up the alternate SDIO interfaces would be helpful.

Thanks.

You’ll need to add another sdhci device (default image only has internal emmc and carrier board interfaces enabled):
tegra_sdhci_device3.dev.platform_data =
&colibri_t30_sdcard_platform_data;
platform_device_register(&tegra_sdhci_device3);

to colibri_t30_sdhci_init in arch/arm/mach-tegra/board-colibri_t30.c as well as configure pin muxes through the GPIO config or preferably in arch/arm/mach-tegra/board-colibri_t30-pinmux.c

Is this valid for the 1.1B module?

Yeah, there were no hardware changes regarding SDIO Interfaces from version 1.1A to 1.1B module. Do you have any Issues with your module?

We have been using BSP 2.6 with a custom kernel to support WF111 module for a few years, with no issues running on a 1.1A board. Now that 1.1B boards are coming in, the BSP 2.6 is not optimized for this new hardware. It was recommended I update to a later version of BSP.

I have downloaded the 2.7 release, modified the kernel (same as I did in 2.6) and loaded it onto my board. I am expecting to see a message indicating the UniFi card is inserted, but no detection. Only message I see is:

[  522.618750] UniFi SDIO Driver: 5.2.2-r4 Mar 11 2019 12:23:35
[  522.632680] CSR SME with WEXT support
[  522.636645] Split patch support
[  522.639792] Kernel 3.1.10
[  522.644001] UniFi: Using native Linux MMC driver for SDIO.

My 2.6 BSP with custom kernel message was:
[ 6.869990] sdio bus_id: mmc2:0001:1 - UniFi card 0x2 inserted

It looks as though the module is not being detected. I thought maybe hardware.

So there is a message when you insert the UniFi Card. How you know it is not detected?

Could you provide the complete dmesg log and the output of lsmod?
Thanks