summaryrefslogtreecommitdiff
path: root/drivers/clk
diff options
context:
space:
mode:
authorLukasz Majewski <lukma@denx.de>2019-06-24 16:50:46 +0300
committerStefano Babic <sbabic@denx.de>2019-07-19 15:50:30 +0300
commit1a961c9b32adf9915f7735758e9d9b5a68258ba5 (patch)
tree910c90b9ffcf383bcf067e92d42d5ca2feb702f8 /drivers/clk
parent1d7993d1d0efb7727de29ebbe164059b7bf71983 (diff)
downloadu-boot-1a961c9b32adf9915f7735758e9d9b5a68258ba5.tar.xz
dm: clk: Extend clk_get_parent_rate() to support CLK_GET_RATE_NOCACHE flag
If the CLK_GET_RATE_NOCACHE flag is set - the clk_get_parent_rate() provides recalculated clock value without considering the cache setting. This may be necessary for some clocks tightly coupled with power domains (i.e. imx8), and prevents from reading invalid cached values. Signed-off-by: Lukasz Majewski <lukma@denx.de> Reviewed-by: Peng Fan <peng.fan@nxp.com>
Diffstat (limited to 'drivers/clk')
-rw-r--r--drivers/clk/clk-uclass.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c
index 506ba6014c..5acf186b01 100644
--- a/drivers/clk/clk-uclass.c
+++ b/drivers/clk/clk-uclass.c
@@ -410,8 +410,8 @@ long long clk_get_parent_rate(struct clk *clk)
if (!ops->get_rate)
return -ENOSYS;
- /* Read the 'rate' if not already set */
- if (!pclk->rate)
+ /* Read the 'rate' if not already set or if proper flag set*/
+ if (!pclk->rate || pclk->flags & CLK_GET_RATE_NOCACHE)
pclk->rate = clk_get_rate(pclk);
return pclk->rate;