diff options
author | Antoine Tenart <antoine.tenart@free-electrons.com> | 2015-05-15 19:40:15 -0400 |
---|---|---|
committer | Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> | 2015-05-18 12:10:09 -0400 |
commit | 26b3b6b959b25603944cb3bb70a72484e8ef775f (patch) | |
tree | dedace21a5c0491a8d2757031e7c1c02dcfee1f5 /drivers/clk/berlin | |
parent | f90bec209ca54d799e69fc30c1b04c14baab980a (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.c | 6 | ||||
-rw-r--r-- | drivers/clk/berlin/bg2q.c | 6 |
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 | ||
503 | static void __init berlin2_clock_setup(struct device_node *np) | 503 | static 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); |
690 | CLK_OF_DECLARE(berlin2cd_clock, "marvell,berlin2cd-chip-ctrl", | 694 | CLK_OF_DECLARE(berlin2cd_clock, "marvell,berlin2cd-chip-ctrl", |
691 | berlin2_clock_setup); | 695 | berlin2_clock_setup); |
696 | CLK_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 | ||
291 | static void __init berlin2q_clock_setup(struct device_node *np) | 291 | static 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 | } |
387 | CLK_OF_DECLARE(berlin2q_clock, "marvell,berlin2q-chip-ctrl", | 391 | CLK_OF_DECLARE(berlin2q_clock, "marvell,berlin2q-chip-ctrl", |
388 | berlin2q_clock_setup); | 392 | berlin2q_clock_setup); |
393 | CLK_OF_DECLARE(berlin2q_clk, "marvell,berlin2q-clk", | ||
394 | berlin2q_clock_setup); | ||