From b20b2fd58921aaa7e6d3206112aa8a169a511f5f Mon Sep 17 00:00:00 2001 From: Dingqiang Lin Date: Tue, 14 Aug 2018 16:51:35 +0800 Subject: [PATCH] drivers: rkflash: support setting sfc clk by dts 1.Max sfc sclk frequency 150MHz, io clk 75MHz; 2,Set sclk depends on dts setting. Change-Id: I52ac3bd1359cef2198806f88887fc8eb0a383eba Signed-off-by: Dingqiang Lin --- drivers/rkflash/rksfc_base.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/rkflash/rksfc_base.c b/drivers/rkflash/rksfc_base.c index 68394638e2ad..fba90981a1aa 100644 --- a/drivers/rkflash/rksfc_base.c +++ b/drivers/rkflash/rksfc_base.c @@ -21,8 +21,8 @@ #include "rkflash_api.h" #include "rkflash_blk.h" -#define RKSFC_VERSION_AND_DATE "rksfc_base v1.1 2016-01-08" -#define RKSFC_CLK_SET_RATE (100 * 1000 * 1000) +#define RKSFC_VERSION_AND_DATE "rksfc_base v1.1 2016-01-08" +#define RKSFC_CLK_MAX_RATE (150 * 1000 * 1000) struct rksfc_info { void __iomem *reg_base; @@ -138,8 +138,11 @@ static int rksfc_probe(struct platform_device *pdev) return -1; } clk_prepare_enable(g_sfc_info.ahb_clk); - clk_set_rate(g_sfc_info.clk, RKSFC_CLK_SET_RATE); g_sfc_info.clk_rate = clk_get_rate(g_sfc_info.clk); + if (g_sfc_info.clk_rate > RKSFC_CLK_MAX_RATE) { + clk_set_rate(g_sfc_info.clk, RKSFC_CLK_MAX_RATE); + g_sfc_info.clk_rate = clk_get_rate(g_sfc_info.clk); + } clk_prepare_enable(g_sfc_info.clk); dev_info(&pdev->dev, "%s clk rate = %d\n",