Hi Philip,

On Thu, Sep 23, 2010 at 08:24:32AM -0700, Philip Rakity wrote:
> From: Philip Rakity <prak...@marvell.com>
> Date: Thu, 23 Sep 2010 08:15:03 -0700
> Subject: [PATCH] sdhci: allow for initial eMMC 74 clock generation by 
> controller
> 
> resend of patch to fit into 80 char line lengths:
> 
> snippet of code for how adaption layer should handle the call.
> 
> 
> /*
>  * eMMC spec calls for the host to send 74 clocks to the card
>  * during initialization, right after voltage stabilization.
>  * create the clocks manually right here.
>  */
> void generate_init_clocks_A0(struct sdhci_host *host, u8 power_mode)
> {
>       struct sdhci_mmc_slot *slot = sdhci_priv(host);
> 
>       DBG ("%s: ENTER %s: slot->power_mode = %d, ios->power_mode = %d\n",
>               __func__, 
>               mmc_hostname(host->mmc),
>               slot->power_mode, 
>               power_mode);
> 
>       if (slot->power_mode == MMC_POWER_UP 
>       && power_mode == MMC_POWER_ON) {
>       
>               /* controller specific code here */
>               /* slot->power_mode holds previous power setting */
>       }
>       slot->power_mode = power_mode;
> }
> 
> 
> Signed-off-by: Philip Rakity <prak...@marvell.com>
> ---
>  drivers/mmc/host/sdhci.c |    3 +++
>  drivers/mmc/host/sdhci.h |    2 ++
>  2 files changed, 5 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
> index 6b8ca32..ba8f9a0 100644
> --- a/drivers/mmc/host/sdhci.c
> +++ b/drivers/mmc/host/sdhci.c
> @@ -1169,6 +1169,9 @@ static void sdhci_set_ios(struct mmc_host *mmc, struct 
> mmc_ios *ios)
>       else
>               sdhci_set_power(host, ios->vdd);
>  
> +     if (host->ops->platform_send_init_74_clocks)
> +             host->ops->platform_send_init_74_clocks(host, ios->power_mode);
> +
>       ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
>  
>       if (ios->bus_width == MMC_BUS_WIDTH_8)
> diff --git a/drivers/mmc/host/sdhci.h b/drivers/mmc/host/sdhci.h
> index 290b5a8..d73685a 100644
> --- a/drivers/mmc/host/sdhci.h
> +++ b/drivers/mmc/host/sdhci.h
> @@ -325,6 +325,8 @@ struct sdhci_ops {
>       unsigned int    (*get_max_clock)(struct sdhci_host *host);
>       unsigned int    (*get_min_clock)(struct sdhci_host *host);
>       unsigned int    (*get_timeout_clock)(struct sdhci_host *host);
> +     void (*platform_send_init_74_clocks)(struct sdhci_host *host,
> +             u8 power_mode);
>  };
>  
>  #ifdef CONFIG_MMC_SDHCI_IO_ACCESSORS
> -- 

Thanks, applied to mmc-next.

-- 
Chris Ball   <c...@laptop.org>   <http://printf.net/>
One Laptop Per Child
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to