I am currently extending an embedded hardware platform which runs a linux kernel 3.16. I want to connect an external SDIO controller to the USB bus, and then run a WIFI module using that SDIO controller.

Since I have only little experience with SDIO devices (I know how to configure eMMC, SD-Card, ... in the device tree), I am unsure about how to proceed if an USB-SDIO-bridge is used.

Does such a setup run without any device tree adaption (aka "Hey, its USB, let's simply plug it in!"), or must I specify the exact location of the SDIO controller in the device tree file?

  • I have the exact same issue here. To be more precise I am trying to use a WF111 module connected to USB2640 (USB hub + SD interface). It seems that there is no glue in kernel to connect both
    – RDP
    Jan 18, 2016 at 18:15
  • Have you advanced with this? I will get to the problem solving soon, but my interaction with the community (USB and SCSI drivers lists) suggested that the path relies on using SCSI subsystem to deliver Transport messages to SDIO controller, which will then send it to the module. At least this is how USB2640 application note shows it has to be done.
    – RDP
    Apr 25, 2016 at 3:10
  • No, unfortunately I haven't made any progress in this issue. I finally had to select a USB based WiFi module, as I urgently needed to proceed with my project.
    – Hoedur
    Apr 26, 2016 at 8:42
  • The problem with the USB2640 is that unless you have the right firmware, it won't do a USB->SDIO function right. From there, it should act as a moderately normal (for some medium values there) SD Host Controller. From there, the device should hotplug detect (if it's connected to the other chip right) as an SDIO card inserted into the Host Controller. IF you've got something that works without an OOB interrupt source (Broadcom, WF111, etc...), you should have it just detect and load the driver for the SDIO device.
    – Svartalf
    Feb 6, 2019 at 20:56
  • One of the Gotchas here for this plan is one of latencies, etc. A VUB300 is sllloooww. A USHC controller (Like the Cambrdge Silicon's eval board adapter) is twitchy. So far, there's no "good" bridge and you still have a 100msec Interrupt URB latency to deal with on the operation. Nothing so far works in the needed manners to side step much of the problems with these designs yet. Yet. There's plans to figure out what needs to be done to make this work right and make a bespoke core for FPGA or chip sales.
    – Svartalf
    Feb 6, 2019 at 20:59

1 Answer 1


With regards to SDIO to USB adapters like something based off of a VUB300, under Linux, the bridge itself will Hot-plug USB and do the "right" things.

The SDIO device, on the other hand...depends on whether the vendor (giving TI a nasty, nasty look right now...grrr...) did something non-standard and their drivers RELY on that off in the weeds behavior. The WiLink series parts use an OOB interrupt to speed things up. Problem is...their drivers don't work right without said interrupt. There's quite a bit of BROKEN there with that. Now...your mileage may vary. Some devices will drop straight in no worries. At least some of them have...issues...like I related here.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .