Skip to content

Commit

Permalink
clk: versatile: pass a parent to the ICST clock
Browse files Browse the repository at this point in the history
As we want to actually define the parent frequency in the device
tree for the ICST clocks, modify the clock registration function
to take a parent argument.

Cc: Mike Turquette <mturquette@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  • Loading branch information
Linus Walleij committed Feb 13, 2014
1 parent 09c978b commit bf6edb4
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 5 deletions.
1 change: 1 addition & 0 deletions drivers/clk/versatile/clk-icst.c
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ static const struct clk_ops icst_ops = {
struct clk *icst_clk_register(struct device *dev,
const struct clk_icst_desc *desc,
const char *name,
const char *parent_name,
void __iomem *base)
{
struct clk *clk;
Expand Down
1 change: 1 addition & 0 deletions drivers/clk/versatile/clk-icst.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,5 @@ struct clk_icst_desc {
struct clk *icst_clk_register(struct device *dev,
const struct clk_icst_desc *desc,
const char *name,
const char *parent_name,
void __iomem *base);
6 changes: 4 additions & 2 deletions drivers/clk/versatile/clk-impd1.c
Original file line number Diff line number Diff line change
Expand Up @@ -93,13 +93,15 @@ void integrator_impd1_clk_init(void __iomem *base, unsigned int id)
imc = &impd1_clks[id];

imc->vco1name = kasprintf(GFP_KERNEL, "lm%x-vco1", id);
clk = icst_clk_register(NULL, &impd1_icst1_desc, imc->vco1name, base);
clk = icst_clk_register(NULL, &impd1_icst1_desc, imc->vco1name, NULL,
base);
imc->vco1clk = clk;
imc->clks[0] = clkdev_alloc(clk, NULL, "lm%x:01000", id);

/* VCO2 is also called "CLK2" */
imc->vco2name = kasprintf(GFP_KERNEL, "lm%x-vco2", id);
clk = icst_clk_register(NULL, &impd1_icst2_desc, imc->vco2name, base);
clk = icst_clk_register(NULL, &impd1_icst2_desc, imc->vco2name, NULL,
base);
imc->vco2clk = clk;

/* MMCI uses CLK2 right off */
Expand Down
4 changes: 3 additions & 1 deletion drivers/clk/versatile/clk-integrator.c
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ static void __init of_integrator_cm_osc_setup(struct device_node *np)
struct clk *clk = ERR_PTR(-EINVAL);
const char *clk_name = np->name;
const struct clk_icst_desc *desc = &cm_auxosc_desc;
const char *parent_name;

if (!cm_base) {
/* Remap the core module base if not done yet */
Expand All @@ -60,7 +61,8 @@ static void __init of_integrator_cm_osc_setup(struct device_node *np)
}
}

clk = icst_clk_register(NULL, desc, clk_name, cm_base);
parent_name = of_clk_get_parent_name(np, 0);
clk = icst_clk_register(NULL, desc, clk_name, parent_name, cm_base);
if (!IS_ERR(clk))
of_clk_add_provider(np, of_clk_src_simple_get, clk);
}
Expand Down
4 changes: 2 additions & 2 deletions drivers/clk/versatile/clk-realview.c
Original file line number Diff line number Diff line change
Expand Up @@ -85,10 +85,10 @@ void __init realview_clk_init(void __iomem *sysbase, bool is_pb1176)
/* ICST VCO clock */
if (is_pb1176)
clk = icst_clk_register(NULL, &realview_osc0_desc,
"osc0", sysbase);
"osc0", NULL, sysbase);
else
clk = icst_clk_register(NULL, &realview_osc4_desc,
"osc4", sysbase);
"osc4", NULL, sysbase);

clk_register_clkdev(clk, NULL, "dev:clcd");
clk_register_clkdev(clk, NULL, "issp:clcd");
Expand Down

0 comments on commit bf6edb4

Please sign in to comment.