Subject: [PATCH] mmc: mmci: Improve runtime PM support

From: [email-masked] (Ulf Hansson)
Date: Mon, 24 Oct 2011 12:06:27 +0200

Russell King - ARM Linux wrote:
> On Mon, Oct 24, 2011 at 11:36:01AM +0200, Ulf Hansson wrote:
>> Russell King - ARM Linux wrote:
>>> I repeat: if you cut power to the card, you have to re-initialize it.
>>> Re-initialization takes quite a bit of time to re-detect and setup
>>> the card.  You'd also need to re-configure things like the transfer
>>> mode and so forth.
>> Right now host->vcc (vmmc) regulator is controlling the power to card.  
>> Not the MCIPWR register!
> 
> Maybe for you, but that's not the case on all platforms.
> 
> You *really* need to get out of the idea that just because your
> implementation works one way that everything works that way.  You're
> working on a cross-SoC cross-platform driver, and you need to take
> account of how other platforms work.

Sorry for being a pain in the ass. :-) I am thinking of the above, even 
if it not seems like that.

> 
> In that case, there *are* platforms which the MCIPWR register does
> indeed control power to the card - and setting this to zero _will_
> power down the card.
> 
>> I would be very surprised if any hardware has this kind of setup, that  
>> the PL180 itself controls a regulator.
> 
> ARM dev boards all use the MCIPWR bits to control an external power
> switch - there's no adjustment of the voltage except via soldered
> links on the board.

That explains it!

My believe was that since the bits for controlling the voltage levels 
etc was not used (which is replaced with directions bits for 
ST-version), this functionality was not used either.

Could you maybe elaborate a bit of how the power is controlled in the 
ARM dev boards? Would it be possible to control such a switch in "GPIO" 
manner instead? For example via the vdd_handler or similar?

I will also think if and see if is feasible to re-design and see if this 
hole feature can be controlled by the variant struct instead. My feeling 
is although it can be kind of messy. But let's see...

BR
Ulf Hansson