summaryrefslogtreecommitdiffstats
path: root/drivers/clk/berlin
diff options
context:
space:
mode:
authorAntoine Tenart <antoine.tenart@free-electrons.com>2015-05-15 19:40:15 -0400
committerSebastian Hesselbarth <sebastian.hesselbarth@gmail.com>2015-05-18 12:10:09 -0400
commit26b3b6b959b25603944cb3bb70a72484e8ef775f (patch)
treededace21a5c0491a8d2757031e7c1c02dcfee1f5 /drivers/clk/berlin
parentf90bec209ca54d799e69fc30c1b04c14baab980a (diff)
clk: berlin: prepare simple-mfd conversion
Prepare conversion of berlin clk drivers to a simple-mfd sub-node by checking for parent node compatible. If parent node is "syscon" compatible use it for of_iomap instead of the own node. Signed-off-by: Antoine Tenart <antoine.tenart@free-electrons.com> Acked-by: Stephen Boyd <sboyd@codeaurora.org> Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Diffstat (limited to 'drivers/clk/berlin')
-rw-r--r--drivers/clk/berlin/bg2.c6
-rw-r--r--drivers/clk/berlin/bg2q.c6
2 files changed, 12 insertions, 0 deletions
diff --git a/drivers/clk/berlin/bg2.c b/drivers/clk/berlin/bg2.c
index 515fb133495c..d8e57097518b 100644
--- a/drivers/clk/berlin/bg2.c
+++ b/drivers/clk/berlin/bg2.c
@@ -502,11 +502,15 @@ static const struct berlin2_gate_data bg2_gates[] __initconst = {
502 502
503static void __init berlin2_clock_setup(struct device_node *np) 503static void __init berlin2_clock_setup(struct device_node *np)
504{ 504{
505 struct device_node *parent_np = of_get_parent(np);
505 const char *parent_names[9]; 506 const char *parent_names[9];
506 struct clk *clk; 507 struct clk *clk;
507 u8 avpll_flags = 0; 508 u8 avpll_flags = 0;
508 int n; 509 int n;
509 510
511 if (of_device_is_compatible(parent_np, "syscon"))
512 np = parent_np;
513
510 gbase = of_iomap(np, 0); 514 gbase = of_iomap(np, 0);
511 if (!gbase) 515 if (!gbase)
512 return; 516 return;
@@ -689,3 +693,5 @@ CLK_OF_DECLARE(berlin2_clock, "marvell,berlin2-chip-ctrl",
689 berlin2_clock_setup); 693 berlin2_clock_setup);
690CLK_OF_DECLARE(berlin2cd_clock, "marvell,berlin2cd-chip-ctrl", 694CLK_OF_DECLARE(berlin2cd_clock, "marvell,berlin2cd-chip-ctrl",
691 berlin2_clock_setup); 695 berlin2_clock_setup);
696CLK_OF_DECLARE(berlin2_clk, "marvell,berlin2-clk",
697 berlin2_clock_setup);
diff --git a/drivers/clk/berlin/bg2q.c b/drivers/clk/berlin/bg2q.c
index 440ef81ab15c..638a649ebed7 100644
--- a/drivers/clk/berlin/bg2q.c
+++ b/drivers/clk/berlin/bg2q.c
@@ -290,10 +290,14 @@ static const struct berlin2_gate_data bg2q_gates[] __initconst = {
290 290
291static void __init berlin2q_clock_setup(struct device_node *np) 291static void __init berlin2q_clock_setup(struct device_node *np)
292{ 292{
293 struct device_node *parent_np = of_get_parent(np);
293 const char *parent_names[9]; 294 const char *parent_names[9];
294 struct clk *clk; 295 struct clk *clk;
295 int n; 296 int n;
296 297
298 if (of_device_is_compatible(parent_np, "syscon"))
299 np = parent_np;
300
297 gbase = of_iomap(np, 0); 301 gbase = of_iomap(np, 0);
298 if (!gbase) { 302 if (!gbase) {
299 pr_err("%s: Unable to map global base\n", np->full_name); 303 pr_err("%s: Unable to map global base\n", np->full_name);
@@ -386,3 +390,5 @@ bg2q_fail:
386} 390}
387CLK_OF_DECLARE(berlin2q_clock, "marvell,berlin2q-chip-ctrl", 391CLK_OF_DECLARE(berlin2q_clock, "marvell,berlin2q-chip-ctrl",
388 berlin2q_clock_setup); 392 berlin2q_clock_setup);
393CLK_OF_DECLARE(berlin2q_clk, "marvell,berlin2q-clk",
394 berlin2q_clock_setup);