mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-22 14:41:27 +00:00
clk: versatile: pass a parent to the ICST clock
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>
This commit is contained in:
parent
09c978bc7b
commit
bf6edb4bb1
5 changed files with 11 additions and 5 deletions
|
@ -120,6 +120,7 @@ static const struct clk_ops icst_ops = {
|
||||||
struct clk *icst_clk_register(struct device *dev,
|
struct clk *icst_clk_register(struct device *dev,
|
||||||
const struct clk_icst_desc *desc,
|
const struct clk_icst_desc *desc,
|
||||||
const char *name,
|
const char *name,
|
||||||
|
const char *parent_name,
|
||||||
void __iomem *base)
|
void __iomem *base)
|
||||||
{
|
{
|
||||||
struct clk *clk;
|
struct clk *clk;
|
||||||
|
|
|
@ -16,4 +16,5 @@ struct clk_icst_desc {
|
||||||
struct clk *icst_clk_register(struct device *dev,
|
struct clk *icst_clk_register(struct device *dev,
|
||||||
const struct clk_icst_desc *desc,
|
const struct clk_icst_desc *desc,
|
||||||
const char *name,
|
const char *name,
|
||||||
|
const char *parent_name,
|
||||||
void __iomem *base);
|
void __iomem *base);
|
||||||
|
|
|
@ -93,13 +93,15 @@ void integrator_impd1_clk_init(void __iomem *base, unsigned int id)
|
||||||
imc = &impd1_clks[id];
|
imc = &impd1_clks[id];
|
||||||
|
|
||||||
imc->vco1name = kasprintf(GFP_KERNEL, "lm%x-vco1", 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->vco1clk = clk;
|
||||||
imc->clks[0] = clkdev_alloc(clk, NULL, "lm%x:01000", id);
|
imc->clks[0] = clkdev_alloc(clk, NULL, "lm%x:01000", id);
|
||||||
|
|
||||||
/* VCO2 is also called "CLK2" */
|
/* VCO2 is also called "CLK2" */
|
||||||
imc->vco2name = kasprintf(GFP_KERNEL, "lm%x-vco2", id);
|
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;
|
imc->vco2clk = clk;
|
||||||
|
|
||||||
/* MMCI uses CLK2 right off */
|
/* MMCI uses CLK2 right off */
|
||||||
|
|
|
@ -43,6 +43,7 @@ static void __init of_integrator_cm_osc_setup(struct device_node *np)
|
||||||
struct clk *clk = ERR_PTR(-EINVAL);
|
struct clk *clk = ERR_PTR(-EINVAL);
|
||||||
const char *clk_name = np->name;
|
const char *clk_name = np->name;
|
||||||
const struct clk_icst_desc *desc = &cm_auxosc_desc;
|
const struct clk_icst_desc *desc = &cm_auxosc_desc;
|
||||||
|
const char *parent_name;
|
||||||
|
|
||||||
if (!cm_base) {
|
if (!cm_base) {
|
||||||
/* Remap the core module base if not done yet */
|
/* Remap the core module base if not done yet */
|
||||||
|
@ -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))
|
if (!IS_ERR(clk))
|
||||||
of_clk_add_provider(np, of_clk_src_simple_get, clk);
|
of_clk_add_provider(np, of_clk_src_simple_get, clk);
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,10 +85,10 @@ void __init realview_clk_init(void __iomem *sysbase, bool is_pb1176)
|
||||||
/* ICST VCO clock */
|
/* ICST VCO clock */
|
||||||
if (is_pb1176)
|
if (is_pb1176)
|
||||||
clk = icst_clk_register(NULL, &realview_osc0_desc,
|
clk = icst_clk_register(NULL, &realview_osc0_desc,
|
||||||
"osc0", sysbase);
|
"osc0", NULL, sysbase);
|
||||||
else
|
else
|
||||||
clk = icst_clk_register(NULL, &realview_osc4_desc,
|
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, "dev:clcd");
|
||||||
clk_register_clkdev(clk, NULL, "issp:clcd");
|
clk_register_clkdev(clk, NULL, "issp:clcd");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue