summaryrefslogtreecommitdiffstats
path: root/drivers/clk
diff options
context:
space:
mode:
authorAndrey Panov <rockford@yandex.ru>2015-03-04 23:11:32 +0300
committerSascha Hauer <s.hauer@pengutronix.de>2015-03-05 09:11:34 +0100
commit7baf7df9fd46fa3a3439a50f49de2ccdc48e2239 (patch)
tree455c6a9189ec5137b985d12c7b03da7c56e52b89 /drivers/clk
parent22a0c31c926500af71643b474aab85e0dead5a9f (diff)
downloadbarebox-7baf7df9fd46fa3a3439a50f49de2ccdc48e2239.tar.gz
barebox-7baf7df9fd46fa3a3439a50f49de2ccdc48e2239.tar.xz
CLK: clk-mux: Respect CLK_MUX_HIWORD_MASK flag
It is required for Rockchip SoCs where clock settings registers have write-enable mask in high word. Signed-off-by: Andrey Panov <rockford@yandex.ru> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/clk')
-rw-r--r--drivers/clk/clk-mux.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/clk/clk-mux.c b/drivers/clk/clk-mux.c
index 4ce86f43d1..22e131faae 100644
--- a/drivers/clk/clk-mux.c
+++ b/drivers/clk/clk-mux.c
@@ -45,6 +45,9 @@ static int clk_mux_set_parent(struct clk *clk, u8 idx)
val = readl(m->reg);
val &= ~(((1 << m->width) - 1) << m->shift);
val |= idx << m->shift;
+
+ if (clk->flags & CLK_MUX_HIWORD_MASK)
+ val |= ((1 << m->width) - 1) << (m->shift + 16);
writel(val, m->reg);
return 0;