Commit 26b3b6b9 authored by Antoine Tenart's avatar Antoine Tenart Committed by Sebastian Hesselbarth

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: default avatarAntoine Tenart <antoine.tenart@free-electrons.com>
Acked-by: default avatarStephen Boyd <sboyd@codeaurora.org>
Signed-off-by: default avatarSebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
parent f90bec20
...@@ -502,11 +502,15 @@ static const struct berlin2_gate_data bg2_gates[] __initconst = { ...@@ -502,11 +502,15 @@ static const struct berlin2_gate_data bg2_gates[] __initconst = {
static void __init berlin2_clock_setup(struct device_node *np) static void __init berlin2_clock_setup(struct device_node *np)
{ {
struct device_node *parent_np = of_get_parent(np);
const char *parent_names[9]; const char *parent_names[9];
struct clk *clk; struct clk *clk;
u8 avpll_flags = 0; u8 avpll_flags = 0;
int n; int n;
if (of_device_is_compatible(parent_np, "syscon"))
np = parent_np;
gbase = of_iomap(np, 0); gbase = of_iomap(np, 0);
if (!gbase) if (!gbase)
return; return;
...@@ -689,3 +693,5 @@ CLK_OF_DECLARE(berlin2_clock, "marvell,berlin2-chip-ctrl", ...@@ -689,3 +693,5 @@ CLK_OF_DECLARE(berlin2_clock, "marvell,berlin2-chip-ctrl",
berlin2_clock_setup); berlin2_clock_setup);
CLK_OF_DECLARE(berlin2cd_clock, "marvell,berlin2cd-chip-ctrl", CLK_OF_DECLARE(berlin2cd_clock, "marvell,berlin2cd-chip-ctrl",
berlin2_clock_setup); berlin2_clock_setup);
CLK_OF_DECLARE(berlin2_clk, "marvell,berlin2-clk",
berlin2_clock_setup);
...@@ -290,10 +290,14 @@ static const struct berlin2_gate_data bg2q_gates[] __initconst = { ...@@ -290,10 +290,14 @@ static const struct berlin2_gate_data bg2q_gates[] __initconst = {
static void __init berlin2q_clock_setup(struct device_node *np) static void __init berlin2q_clock_setup(struct device_node *np)
{ {
struct device_node *parent_np = of_get_parent(np);
const char *parent_names[9]; const char *parent_names[9];
struct clk *clk; struct clk *clk;
int n; int n;
if (of_device_is_compatible(parent_np, "syscon"))
np = parent_np;
gbase = of_iomap(np, 0); gbase = of_iomap(np, 0);
if (!gbase) { if (!gbase) {
pr_err("%s: Unable to map global base\n", np->full_name); pr_err("%s: Unable to map global base\n", np->full_name);
...@@ -386,3 +390,5 @@ static void __init berlin2q_clock_setup(struct device_node *np) ...@@ -386,3 +390,5 @@ static void __init berlin2q_clock_setup(struct device_node *np)
} }
CLK_OF_DECLARE(berlin2q_clock, "marvell,berlin2q-chip-ctrl", CLK_OF_DECLARE(berlin2q_clock, "marvell,berlin2q-chip-ctrl",
berlin2q_clock_setup); berlin2q_clock_setup);
CLK_OF_DECLARE(berlin2q_clk, "marvell,berlin2q-clk",
berlin2q_clock_setup);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment