RE: [EXTERNAL] Re: [PATCH] arm: dts: am437x-sk-evm: add wilink8 support

From: Reizer, Eyal
Date: Mon May 07 2018 - 02:55:17 EST


Hi Tony,

>
> Yeah my guess is that the reason for the separate GPIO interrupt was
> that on omap3 we did not have SDIO interrupt working for years. This was
> because of the issues related to padconf interrupts for off mode.
>
> We now have Linux generic wakeirq support working with SDIO and it has
> been confirmed to work also for off mode with mwifiex at least. So
> there should be no reason to not also use the SDIO interrupt.
>

There is more to this than just the padconf.
Using in-band interrupt instead of the out of band one requires
Supporting a feature called "Asynchronous interrupts in 4Bit mode"
Which is part of SDIO 3.0 spec:
https://www.sdcard.org/downloads/pls/pdf/index.php?p=PartE1_SDIO_Simplified_Specification_Ver3.00.jpg&f=PartE1_SDIO_Simplified_Specification_Ver3.00.pdf&e=EN_SSE1

Take a look at page 41 at the bottom part of the table.
Wilink8 supports this feature but AFAIK this support is still not part of the
mmc/sdio core in the Linux kernel.
If we want wilink8 to trigger a host wakeup using the in-band interrupt instead
Of the wlan_irq pin we would need to enable/use this feature.

I did use it internally in the past and was able to patch the Ubuntu kernel
(3.5.0 at that time) to use wilink8 in a standard SD Card slot of an Ubuntu Laptop
while removing the use of wlan_irq pin completely.
However this was an experimental patch set written by a third party
that was not up-steamtable at that time.
I do have this patch set somewhere...

It is similar to the following patch which is not upstream as well for some reason:
https://gitlab.com/k2wl/g2_kernel/commit/5c4970fdaa50422d7ea7220efa20fb35148a4bca
It is not the only patch needed, there are a couple of additional patches needed
for fully using it from driver.
I did check latest Linux-next and don't see this support there. Not sure why.

Best Regards,
Eyal