Re: [PATCH V3 3/3 ] mmc: add support for H/W clock gating of SD controller (resend)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Nicolas Pitre wrote:
> On Wed, 8 Dec 2010, zhangfei gao wrote:
> 
>> On Tue, Dec 7, 2010 at 9:50 PM, Philip Rakity <prakity@xxxxxxxxxxx> wrote:
>>> On Dec 7, 2010, at 5:49 PM, zhangfei gao wrote:
>>>> 2. we have to fully verify the hardware clk gating internally before
>>>> sending the code.
>>> code tested under marvell 2.6.32 linux.
>> Thanks a lot, just wander could sdio be supported, since marvell8787
>> requires around 10 clock cycles after cmd53 finished.

The specification requires only 8 clocks after end bit of a CMD53 data
block.  (SD physical spec 3.01 section 4.4, clock control).  It is
possible that the controller sends more than the minimum.

> SDIO is currently left out as this is not clear if all SDIO cards still 
> can send interrupts if their clock is disabled, or even function 
> properly.  This might have to be a property that the SDIO function 
> drivers could provide to the core.

It's a minefield.

Cards in 1-bit mode may interrupt at any time whether there is a clock
or not.

Cards compliant to SDIO v2.00 should require the clock to generate
interrupts when in 4-bit mode as this is what's specified in the
specification.  As a vendor-specific extension, some v2.00 cards (e.g.,
all CSR devices) do not require the clock.

Cards compliant to SDIO v3.00 may optionally have the clock turned off
if the card indicates support for asynchronous interrupts and support
has been enabled (via CCCR register bits).

Some host controllers will not detect interrupts if the clock is off and
4-bit mode is enabled.

I would suggest:

* Cards have a property: auto-clock-disable which indicates if the the
clock can be switched off automatically by mmc core or if hardware clock
gating may be used.

a. Memory cards would set this to true.
b. SDIO v2.00 cards would set this to false.
c. SDIO v3.00 cards would set this to true if asynchronous interrupts
are supported and enabled, otherwise false.
d. combo cards set this based on the SDIO function.

* If necessary, host controllers switch to 1-bit mode if the clock is
turned off and switch back to 4-bit mode when the clock is turned back
on (e.g., some sdhci controllers require this).

* SDIO function drivers can set auto-clock-disable to true if they're
for a v2.00 card that supports asynchronous interrupts.

David
-- 
David Vrabel, Senior Software Engineer, Drivers
CSR, Churchill House, Cambridge Business Park,  Tel: +44 (0)1223 692562
Cowley Road, Cambridge, CB4 0WZ                 http://www.csr.com/


Member of the CSR plc group of companies. CSR plc registered in England and Wales, registered number 4187346, registered office Churchill House, Cambridge Business Park, Cowley Road, Cambridge, CB4 0WZ, United Kingdom
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux