2 of 2 people found this helpful
If you check bus_protocols/SDIO/wwd_bus_protocol.c, the function wwd_bus_write_register_value( BUS_FUNCTION, SDIOD_SEP_INT_CTL, (uint8_t) 1, SEP_INTR_CTL_MASK | SEP_INTR_CTL_EN | SEP_INTR_CTL_POL ) would enable OOB interrupt using separate interrupt control register SDIOD_SEP_INT_CTL. This register would reroute interrupts from SDIO_D1 to an external pad which means that OOB would work in place of SDIO in-band interrupts. You will need to extensively test and ensure that the delay between switching WLAN and eMMC is less than the lowest WLAN SDIO timeout. OOB implementation for STM32F4xx is shown in /WICED/platform/MCU/STM32F4xx/WWD/wwd_SDIO.c.
Thank you for your response. This is indeed good news. We already see the interrupts on the OOB, but wasn't sure if all interrupts where routed to the OOB pin.
When we started looking to see if this was feasible we made some simple experiments, using a STM32F411 Discovery EVB and a LSR-Sterling extension board. We noticed that the timeout value used in the SDIO driver for the STM32F411 was 50 mSec, which suggested to us that there could be room for sharing the port. We added some simple lock mechanism that locked the SDIO port using a range of lock times with the upper limit of 10-15 mSec, if my memory isn't failing me, to see if it was possible. These experiments did suggest to us that this should be feasible.
We of course need some extensive validation on our platform, but your reply is indeed encouraging.