Hi, Simon.

On 06/24/2015 06:38 AM, Simon Glass wrote:
> Some SoCs want to adjust the input clock to the DWMMC block as a way of
> controlling the MMC bus clock. Update the get_mmc_clk() method to support
> this.

I didn't see your other patches.
But i don't know this patch's purpose.
I think that @freq usage seems like host->bus_hz ("bus_hz" property), doesn't 
it?

Best Regards,
Jaehoon Chung

> 
> Signed-off-by: Simon Glass <s...@chromium.org>
> ---
> 
> Changes in v3: None
> Changes in v2: None
> 
>  drivers/mmc/dw_mmc.c        |  2 +-
>  drivers/mmc/exynos_dw_mmc.c |  2 +-
>  include/dwmmc.h             | 16 +++++++++++++++-
>  3 files changed, 17 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/mmc/dw_mmc.c b/drivers/mmc/dw_mmc.c
> index 8f28d7e..a034c3f 100644
> --- a/drivers/mmc/dw_mmc.c
> +++ b/drivers/mmc/dw_mmc.c
> @@ -248,7 +248,7 @@ static int dwmci_setup_bus(struct dwmci_host *host, u32 
> freq)
>        * host->bus_hz should be set by user.
>        */
>       if (host->get_mmc_clk)
> -             sclk = host->get_mmc_clk(host);
> +             sclk = host->get_mmc_clk(host, freq);
>       else if (host->bus_hz)
>               sclk = host->bus_hz;
>       else {
> diff --git a/drivers/mmc/exynos_dw_mmc.c b/drivers/mmc/exynos_dw_mmc.c
> index e083745..3f702ba 100644
> --- a/drivers/mmc/exynos_dw_mmc.c
> +++ b/drivers/mmc/exynos_dw_mmc.c
> @@ -39,7 +39,7 @@ static void exynos_dwmci_clksel(struct dwmci_host *host)
>       dwmci_writel(host, DWMCI_CLKSEL, priv->sdr_timing);
>  }
>  
> -unsigned int exynos_dwmci_get_clk(struct dwmci_host *host)
> +unsigned int exynos_dwmci_get_clk(struct dwmci_host *host, uint freq)
>  {
>       unsigned long sclk;
>       int8_t clk_div;
> diff --git a/include/dwmmc.h b/include/dwmmc.h
> index 7a7555a..25cf42c 100644
> --- a/include/dwmmc.h
> +++ b/include/dwmmc.h
> @@ -163,7 +163,21 @@ struct dwmci_host {
>  
>       void (*clksel)(struct dwmci_host *host);
>       void (*board_init)(struct dwmci_host *host);
> -     unsigned int (*get_mmc_clk)(struct dwmci_host *host);
> +
> +     /**
> +      * Get / set a particular MMC clock frequency
> +      *
> +      * This is used to request the current clock frequency of the clock
> +      * that drives the DWMMC peripheral. The caller will then use this
> +      * information to work out the divider it needs to achieve the
> +      * required MMC bus clock frequency. If you want to handle the
> +      * clock external to DWMMC, use @freq to select the frequency and
> +      * return that value too. Then DWMMC will put itself in bypass mode.
> +      *
> +      * @host:       DWMMC host
> +      * @freq:       Frequency the host is trying to achieve
> +      */
> +     unsigned int (*get_mmc_clk)(struct dwmci_host *host, uint freq);
>  
>       struct mmc_config cfg;
>  };
> 

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to