summaryrefslogtreecommitdiff
path: root/drivers/clk/rockchip/clk_rk3288.c
diff options
context:
space:
mode:
authorKever Yang <kever.yang@rock-chips.com>2017-07-27 12:54:01 +0800
committerPhilipp Tomsich <philipp.tomsich@theobroma-systems.com>2017-08-13 17:15:09 +0200
commit3a94d75d0e2a3b2519de51dfa1f369d976d9cccc (patch)
tree97eceee91df5dd3414f899062ec64041bf7257ed /drivers/clk/rockchip/clk_rk3288.c
parent95ca100ba740283e00f0b5354be8ccb04b97cbf9 (diff)
rockchip: clk: update dwmmc clock div
dwmmc controller has default internal divider by 2, and we always provide double of the clock rate request by dwmmc controller. Sync code for all Rockchip SoC with: 4055b46 rockchip: clk: rk3288: fix mmc clock setting Signed-off-by: Kever Yang <kever.yang@rock-chips.com> Reviewed-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> Acked-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com> [fixup for 'missing DIV_ROUND_UP' conflict for clk_rk3288.c:] Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Diffstat (limited to 'drivers/clk/rockchip/clk_rk3288.c')
-rw-r--r--drivers/clk/rockchip/clk_rk3288.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/clk/rockchip/clk_rk3288.c b/drivers/clk/rockchip/clk_rk3288.c
index 792ee76509..adb4e1cd9d 100644
--- a/drivers/clk/rockchip/clk_rk3288.c
+++ b/drivers/clk/rockchip/clk_rk3288.c
@@ -530,10 +530,11 @@ static ulong rockchip_mmc_set_clk(struct rk3288_cru *cru, uint gclk_rate,
int mux;
debug("%s: gclk_rate=%u\n", __func__, gclk_rate);
- src_clk_div = RATE_TO_DIV(gclk_rate, freq);
+ /* mmc clock default div 2 internal, need provide double in cru */
+ src_clk_div = DIV_ROUND_UP(gclk_rate / 2, freq);
if (src_clk_div > 0x3f) {
- src_clk_div = RATE_TO_DIV(OSC_HZ, freq);
+ src_clk_div = DIV_ROUND_UP(OSC_HZ / 2, freq);
mux = EMMC_PLL_SELECT_24MHZ;
assert((int)EMMC_PLL_SELECT_24MHZ ==
(int)MMC0_PLL_SELECT_24MHZ);