... I don't see a way to share the same SDIO host controller for several devices, as I don't think there is any "device addressing" feature. I may be missing it though. ...
I'm surprised you don't know how an SD card works. Read some popular description, Wikipedia...
I must say I'm not sure I get the gist of most of your replies.
The OP has clearly answered his own question anyway. But my point (which the OP knew) is that there is no direct way you can share a single SDIO host controller with several devices.
I know quite well how SD cards work, and how SDIO works in general (I've implemented SD on MCUs), but I just said "I may be missing", because the SD specs are hundreds of pages long in total and while I know a part of that, I can't claim I know it all, and I never ran into the need of sharing one controller with multiple devices so far, so I wasn't sure. Now after reading a bit more on the topic, I'm almost 100% positive you can't, short of using external multiplexing, which is not part of the standard. So you can do it any way you see fit, multiplexing SDIO lines as needed. Which was what the OP was going to do. They just wanted to know, from what I get, if there was some existing Linux support for this, and apparently there isn't, which isn't too surprising, as it's again possible, but non-standard. So I'm not sure how one could write a generic driver for this.
You can always do it "by hand" though, selecting the device you want to communicate with via a multiplexer (with GPIOs), and then using standard SDIO functions.
But there is indeed no provision with the SD specs to "address" a particular SD device that I know of. You can have only one connected to a particular controller at any given time. (But you can again always multiplex.)
Anyway.