Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

+11 -5
+1
drivers/clk/versatile/clk-icst.c
··· 120 120 struct clk *icst_clk_register(struct device *dev, 121 121 const struct clk_icst_desc *desc, 122 122 const char *name, 123 + const char *parent_name, 123 124 void __iomem *base) 124 125 { 125 126 struct clk *clk;
+1
drivers/clk/versatile/clk-icst.h
··· 16 16 struct clk *icst_clk_register(struct device *dev, 17 17 const struct clk_icst_desc *desc, 18 18 const char *name, 19 + const char *parent_name, 19 20 void __iomem *base);
+4 -2
drivers/clk/versatile/clk-impd1.c
··· 93 93 imc = &impd1_clks[id]; 94 94 95 95 imc->vco1name = kasprintf(GFP_KERNEL, "lm%x-vco1", id); 96 - clk = icst_clk_register(NULL, &impd1_icst1_desc, imc->vco1name, base); 96 + clk = icst_clk_register(NULL, &impd1_icst1_desc, imc->vco1name, NULL, 97 + base); 97 98 imc->vco1clk = clk; 98 99 imc->clks[0] = clkdev_alloc(clk, NULL, "lm%x:01000", id); 99 100 100 101 /* VCO2 is also called "CLK2" */ 101 102 imc->vco2name = kasprintf(GFP_KERNEL, "lm%x-vco2", id); 102 - clk = icst_clk_register(NULL, &impd1_icst2_desc, imc->vco2name, base); 103 + clk = icst_clk_register(NULL, &impd1_icst2_desc, imc->vco2name, NULL, 104 + base); 103 105 imc->vco2clk = clk; 104 106 105 107 /* MMCI uses CLK2 right off */
+3 -1
drivers/clk/versatile/clk-integrator.c
··· 43 43 struct clk *clk = ERR_PTR(-EINVAL); 44 44 const char *clk_name = np->name; 45 45 const struct clk_icst_desc *desc = &cm_auxosc_desc; 46 + const char *parent_name; 46 47 47 48 if (!cm_base) { 48 49 /* Remap the core module base if not done yet */ ··· 61 60 } 62 61 } 63 62 64 - clk = icst_clk_register(NULL, desc, clk_name, cm_base); 63 + parent_name = of_clk_get_parent_name(np, 0); 64 + clk = icst_clk_register(NULL, desc, clk_name, parent_name, cm_base); 65 65 if (!IS_ERR(clk)) 66 66 of_clk_add_provider(np, of_clk_src_simple_get, clk); 67 67 }
+2 -2
drivers/clk/versatile/clk-realview.c
··· 85 85 /* ICST VCO clock */ 86 86 if (is_pb1176) 87 87 clk = icst_clk_register(NULL, &realview_osc0_desc, 88 - "osc0", sysbase); 88 + "osc0", NULL, sysbase); 89 89 else 90 90 clk = icst_clk_register(NULL, &realview_osc4_desc, 91 - "osc4", sysbase); 91 + "osc4", NULL, sysbase); 92 92 93 93 clk_register_clkdev(clk, NULL, "dev:clcd"); 94 94 clk_register_clkdev(clk, NULL, "issp:clcd");