[PATCH v4 4/9] mmc: dw_mmc: lookup for optional biu and ciu clocks

Thomas Abraham thomas.abraham at linaro.org
Tue Aug 28 21:23:23 EST 2012


On 28 August 2012 16:13, Seungwon Jeon <tgih.jun at samsung.com> wrote:
> On Sunday, August 26, 2012 Thomas Abraham <thomas.abraham at linaro.org> wrote:
>> Some platforms allow for clock gating and control of bus interface unit clock
>> and card interface unit clock. Add support for clock lookup of optional biu
>> and ciu clocks for clock gating and clock speed determination.
>>
>> Signed-off-by: Abhilash Kesavan <a.kesavan at samsung.com>
>> Signed-off-by: Thomas Abraham <thomas.abraham at linaro.org>
>> ---
>>  drivers/mmc/host/dw_mmc.c  |   42 +++++++++++++++++++++++++++++++++++++++---
>>  include/linux/mmc/dw_mmc.h |    4 ++++
>>  2 files changed, 43 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
>> index cd58063..679473c 100644
>> --- a/drivers/mmc/host/dw_mmc.c
>> +++ b/drivers/mmc/host/dw_mmc.c
>> @@ -1953,18 +1953,38 @@ int dw_mci_probe(struct dw_mci *host)
>>               return -ENODEV;
>>       }
>>
>> -     if (!host->pdata->bus_hz) {
>> +     host->biu_clk = clk_get(host->dev, "biu");
>> +     if (IS_ERR(host->biu_clk))
>> +             dev_dbg(host->dev, "biu clock not available\n");
>> +     else
>> +             clk_prepare_enable(host->biu_clk);
>> +
>> +     host->ciu_clk = clk_get(host->dev, "ciu");
>> +     if (IS_ERR(host->ciu_clk))
>> +             dev_dbg(host->dev, "ciu clock not available\n");
>> +     else
>> +             clk_prepare_enable(host->ciu_clk);
>> +
>> +     if (IS_ERR(host->ciu_clk))
>> +             host->bus_hz = host->pdata->bus_hz;
>> +     else
>> +             host->bus_hz = clk_get_rate(host->ciu_clk);
> I have remained comment in [PATCH 3/9] mmc: dw_mmc: lookup for optional biu and ciu clocks
> Could I get your opinion?

Are you referring to the following comment.

> I have posted similar patch some time back.
> bus_hz represents input rate for cclk_in of mshc.
> Host of samsung soc doesn't use input clock from system directly.
> As you have introduced CLKSEL in your another patch, input clock can be
> changed prior to cclk_in.
> For non-samsung  host, we don't need to consider this with generic way?

The biu and ciu clocks are generic clocks which a platform can
instantiate. The other option being to use the platform data to
specify the clock speed using pdata->bus_hz.

The use CLKSEL register is now moved into exynos specific code. So
non-samsung host is not affected in any way.

Thanks,
Thomas.


More information about the devicetree-discuss mailing list