Hi Bing,
On 07/01/2014 08:44 AM, Bing Zhao wrote:
quoted
Hence, we'll need some sort of internal API for this, and a phandle
in dts. I wonder whether that glue logic might be better off living
in the mmc core, as mwifiex might well be interfaced to other
hosts?
I may have missed something, but doesn't the MMC_POWER_OFF and
MMC_POWER_ON|UP handling in controller driver help? Anyway the
clocks/GPIOs/regulators are sort of platform dependent. Would it be
better putting it in /arch/arm/mach-xxxxx/?
Regulators are not platform specific, they never were. For GPIOs and
clocks, we can simply depend on CONFIG_GPIO_GENERIC and
CONFIG_COMMON_CLK. I wouldn't even bother to care for anything else.
This way, we also get a way of referencing the resources in dts through
phandles for free.
What I was talking about above was that conducting the actual reset from
the helper must be something that either the mmc core or individual host
implementations can trigger. We need to repeat this action every time
mwifiex decides to call its reset routine, which is currently
implemented like this:
mmc_remove_host(target);
mdelay(20);
mmc_add_host(target);
But I haven't looked into possible ways of implementation yet.
MMC_POWER_* might well be a suitable thing to hook into.
Thanks,
Daniel