diff options
author | Marek Vasut <marek.vasut@gmail.com> | 2017-07-21 23:22:56 +0200 |
---|---|---|
committer | Jaehoon Chung <jh80.chung@samsung.com> | 2017-08-17 14:38:18 +0900 |
commit | 8cd46cba5397e134e6217310d5b0529b3fa46274 (patch) | |
tree | 5b069ebf672531bd1e84c38d1c947e4c61adc71a /drivers/mmc | |
parent | a3f0a7d5b50aa558ecab1fc3a9f5d773eac94051 (diff) |
mmc: sd_sdhi: Enable clock using clock framework
Since we now have clock driver for the RCar Gen3 , add support for
enabling the clock into the SH SDHI driver to prevent hacks in the
board files.
Signed-off-by: Marek Vasut <marek.vasut+renesas@gmail.com>
Cc: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Cc: Jaehoon Chung <jh80.chung@samsung.com>
Reviewed-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
Diffstat (limited to 'drivers/mmc')
-rw-r--r-- | drivers/mmc/sh_sdhi.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/mmc/sh_sdhi.c b/drivers/mmc/sh_sdhi.c index 3c5616e507..eef061abb2 100644 --- a/drivers/mmc/sh_sdhi.c +++ b/drivers/mmc/sh_sdhi.c @@ -20,6 +20,7 @@ #include <linux/sizes.h> #include <asm/arch/rmobile.h> #include <asm/arch/sh_sdhi.h> +#include <clk.h> #define DRIVER_NAME "sh-sdhi" @@ -824,8 +825,10 @@ static int sh_sdhi_dm_probe(struct udevice *dev) struct sh_sdhi_plat *plat = dev_get_platdata(dev); struct sh_sdhi_host *host = dev_get_priv(dev); struct mmc_uclass_priv *upriv = dev_get_uclass_priv(dev); + struct clk sh_sdhi_clk; const u32 quirks = dev_get_driver_data(dev); fdt_addr_t base; + int ret; base = devfdt_get_addr(dev); if (base == FDT_ADDR_T_NONE) @@ -835,6 +838,18 @@ static int sh_sdhi_dm_probe(struct udevice *dev) if (!host->addr) return -ENOMEM; + ret = clk_get_by_index(dev, 0, &sh_sdhi_clk); + if (ret) { + debug("failed to get clock, ret=%d\n", ret); + return ret; + } + + ret = clk_enable(&sh_sdhi_clk); + if (ret) { + debug("failed to enable clock, ret=%d\n", ret); + return ret; + } + host->quirks = quirks; if (host->quirks & SH_SDHI_QUIRK_64BIT_BUF) |