Commit 08aca087 authored by Kevin Hilman's avatar Kevin Hilman

davinci: clkdev cleanup: remove clk_lookup wrapper, use clkdev_add_table()

Remove unneeded 'struct davinci_clk' wrapper around 'struct clk_lookup'
and use clkdev_add_table() to add the list of clocks in one go.
Signed-off-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
parent e89861e9
...@@ -427,13 +427,14 @@ int davinci_set_pllrate(struct pll_data *pll, unsigned int prediv, ...@@ -427,13 +427,14 @@ int davinci_set_pllrate(struct pll_data *pll, unsigned int prediv,
} }
EXPORT_SYMBOL(davinci_set_pllrate); EXPORT_SYMBOL(davinci_set_pllrate);
int __init davinci_clk_init(struct davinci_clk *clocks) int __init davinci_clk_init(struct clk_lookup *clocks)
{ {
struct davinci_clk *c; struct clk_lookup *c;
struct clk *clk; struct clk *clk;
size_t num_clocks = 0;
for (c = clocks; c->lk.clk; c++) { for (c = clocks; c->clk; c++) {
clk = c->lk.clk; clk = c->clk;
if (!clk->recalc) { if (!clk->recalc) {
...@@ -456,14 +457,16 @@ int __init davinci_clk_init(struct davinci_clk *clocks) ...@@ -456,14 +457,16 @@ int __init davinci_clk_init(struct davinci_clk *clocks)
if (clk->lpsc) if (clk->lpsc)
clk->flags |= CLK_PSC; clk->flags |= CLK_PSC;
clkdev_add(&c->lk);
clk_register(clk); clk_register(clk);
num_clocks++;
/* Turn on clocks that Linux doesn't otherwise manage */ /* Turn on clocks that Linux doesn't otherwise manage */
if (clk->flags & ALWAYS_ENABLED) if (clk->flags & ALWAYS_ENABLED)
clk_enable(clk); clk_enable(clk);
} }
clkdev_add_table(clocks, num_clocks);
return 0; return 0;
} }
......
...@@ -106,20 +106,14 @@ struct clk { ...@@ -106,20 +106,14 @@ struct clk {
#define CLK_PLL BIT(4) /* PLL-derived clock */ #define CLK_PLL BIT(4) /* PLL-derived clock */
#define PRE_PLL BIT(5) /* source is before PLL mult/div */ #define PRE_PLL BIT(5) /* source is before PLL mult/div */
struct davinci_clk { #define CLK(dev, con, ck) \
struct clk_lookup lk; { \
}; .dev_id = dev, \
.con_id = con, \
#define CLK(dev, con, ck) \ .clk = ck, \
{ \ } \
.lk = { \
.dev_id = dev, \ int davinci_clk_init(struct clk_lookup *clocks);
.con_id = con, \
.clk = ck, \
}, \
}
int davinci_clk_init(struct davinci_clk *clocks);
int davinci_set_pllrate(struct pll_data *pll, unsigned int prediv, int davinci_set_pllrate(struct pll_data *pll, unsigned int prediv,
unsigned int mult, unsigned int postdiv); unsigned int mult, unsigned int postdiv);
......
...@@ -371,7 +371,7 @@ static struct clk rmii_clk = { ...@@ -371,7 +371,7 @@ static struct clk rmii_clk = {
.parent = &pll0_sysclk7, .parent = &pll0_sysclk7,
}; };
static struct davinci_clk da830_clks[] = { static struct clk_lookup da830_clks[] = {
CLK(NULL, "ref", &ref_clk), CLK(NULL, "ref", &ref_clk),
CLK(NULL, "pll0", &pll0_clk), CLK(NULL, "pll0", &pll0_clk),
CLK(NULL, "pll0_aux", &pll0_aux_clk), CLK(NULL, "pll0_aux", &pll0_aux_clk),
......
...@@ -335,7 +335,7 @@ static struct clk aemif_clk = { ...@@ -335,7 +335,7 @@ static struct clk aemif_clk = {
.flags = ALWAYS_ENABLED, .flags = ALWAYS_ENABLED,
}; };
static struct davinci_clk da850_clks[] = { static struct clk_lookup da850_clks[] = {
CLK(NULL, "ref", &ref_clk), CLK(NULL, "ref", &ref_clk),
CLK(NULL, "pll0", &pll0_clk), CLK(NULL, "pll0", &pll0_clk),
CLK(NULL, "pll0_aux", &pll0_aux_clk), CLK(NULL, "pll0_aux", &pll0_aux_clk),
...@@ -834,12 +834,12 @@ static struct davinci_timer_info da850_timer_info = { ...@@ -834,12 +834,12 @@ static struct davinci_timer_info da850_timer_info = {
static void da850_set_async3_src(int pllnum) static void da850_set_async3_src(int pllnum)
{ {
struct clk *clk, *newparent = pllnum ? &pll1_sysclk2 : &pll0_sysclk2; struct clk *clk, *newparent = pllnum ? &pll1_sysclk2 : &pll0_sysclk2;
struct davinci_clk *c; struct clk_lookup *c;
unsigned int v; unsigned int v;
int ret; int ret;
for (c = da850_clks; c->lk.clk; c++) { for (c = da850_clks; c->clk; c++) {
clk = c->lk.clk; clk = c->clk;
if (clk->flags & DA850_CLK_ASYNC3) { if (clk->flags & DA850_CLK_ASYNC3) {
ret = clk_set_parent(clk, newparent); ret = clk_set_parent(clk, newparent);
WARN(ret, "DA850: unable to re-parent clock %s", WARN(ret, "DA850: unable to re-parent clock %s",
......
...@@ -335,7 +335,7 @@ static struct clk usb_clk = { ...@@ -335,7 +335,7 @@ static struct clk usb_clk = {
.lpsc = DAVINCI_LPSC_USB, .lpsc = DAVINCI_LPSC_USB,
}; };
static struct davinci_clk dm355_clks[] = { static struct clk_lookup dm355_clks[] = {
CLK(NULL, "ref", &ref_clk), CLK(NULL, "ref", &ref_clk),
CLK(NULL, "pll1", &pll1_clk), CLK(NULL, "pll1", &pll1_clk),
CLK(NULL, "pll1_sysclk1", &pll1_sysclk1), CLK(NULL, "pll1_sysclk1", &pll1_sysclk1),
......
...@@ -403,7 +403,7 @@ static struct clk mjcp_clk = { ...@@ -403,7 +403,7 @@ static struct clk mjcp_clk = {
.lpsc = DM365_LPSC_MJCP, .lpsc = DM365_LPSC_MJCP,
}; };
static struct davinci_clk dm365_clks[] = { static struct clk_lookup dm365_clks[] = {
CLK(NULL, "ref", &ref_clk), CLK(NULL, "ref", &ref_clk),
CLK(NULL, "pll1", &pll1_clk), CLK(NULL, "pll1", &pll1_clk),
CLK(NULL, "pll1_aux", &pll1_aux_clk), CLK(NULL, "pll1_aux", &pll1_aux_clk),
......
...@@ -277,7 +277,7 @@ static struct clk timer2_clk = { ...@@ -277,7 +277,7 @@ static struct clk timer2_clk = {
.usecount = 1, /* REVISIT: why cant' this be disabled? */ .usecount = 1, /* REVISIT: why cant' this be disabled? */
}; };
struct davinci_clk dm644x_clks[] = { struct clk_lookup dm644x_clks[] = {
CLK(NULL, "ref", &ref_clk), CLK(NULL, "ref", &ref_clk),
CLK(NULL, "pll1", &pll1_clk), CLK(NULL, "pll1", &pll1_clk),
CLK(NULL, "pll1_sysclk1", &pll1_sysclk1), CLK(NULL, "pll1_sysclk1", &pll1_sysclk1),
......
...@@ -311,7 +311,7 @@ static struct clk vpif1_clk = { ...@@ -311,7 +311,7 @@ static struct clk vpif1_clk = {
.flags = ALWAYS_ENABLED, .flags = ALWAYS_ENABLED,
}; };
struct davinci_clk dm646x_clks[] = { struct clk_lookup dm646x_clks[] = {
CLK(NULL, "ref", &ref_clk), CLK(NULL, "ref", &ref_clk),
CLK(NULL, "aux", &aux_clkin), CLK(NULL, "aux", &aux_clkin),
CLK(NULL, "pll1", &pll1_clk), CLK(NULL, "pll1", &pll1_clk),
......
...@@ -43,7 +43,7 @@ struct davinci_soc_info { ...@@ -43,7 +43,7 @@ struct davinci_soc_info {
void __iomem *jtag_id_base; void __iomem *jtag_id_base;
struct davinci_id *ids; struct davinci_id *ids;
unsigned long ids_num; unsigned long ids_num;
struct davinci_clk *cpu_clks; struct clk_lookup *cpu_clks;
void __iomem **psc_bases; void __iomem **psc_bases;
unsigned long psc_bases_num; unsigned long psc_bases_num;
void __iomem *pinmux_base; void __iomem *pinmux_base;
......
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