Commit 1d9f13c4 authored by Ben Dooks's avatar Ben Dooks

ARM: SAMSUNG: Add call to register array of clocks

Add s3c_register_clocks() to register an array of clocks, printing
an error message if there is a problem. Replace all points in the code
where this could be used.
Signed-off-by: default avatarBen Dooks <ben-linux@fluff.org>
parent fb6e76cd
...@@ -1104,14 +1104,7 @@ void __init s3c2443_init_clocks(int xtal) ...@@ -1104,14 +1104,7 @@ void __init s3c2443_init_clocks(int xtal)
/* register clocks from clock array */ /* register clocks from clock array */
clkp = init_clocks; s3c_register_clocks(init_clocks, ARRAY_SIZE(init_clocks));
for (ptr = 0; ptr < ARRAY_SIZE(init_clocks); ptr++, clkp++) {
ret = s3c24xx_register_clock(clkp);
if (ret < 0) {
printk(KERN_ERR "Failed to register clock %s (%d)\n",
clkp->name, ret);
}
}
/* We must be careful disabling the clocks we are not intending to /* We must be careful disabling the clocks we are not intending to
* be using at boot time, as subsystems such as the LCD which do * be using at boot time, as subsystems such as the LCD which do
......
...@@ -430,25 +430,15 @@ __init void s3c_pwmclk_init(void) ...@@ -430,25 +430,15 @@ __init void s3c_pwmclk_init(void)
return; return;
} }
for (clk = 0; clk < ARRAY_SIZE(clk_timer_scaler); clk++) { for (clk = 0; clk < ARRAY_SIZE(clk_timer_scaler); clk++)
clk_timer_scaler[clk].parent = clk_timers; clk_timer_scaler[clk].parent = clk_timers;
ret = s3c24xx_register_clock(&clk_timer_scaler[clk]);
if (ret < 0) {
printk(KERN_ERR "error adding pwm scaler%d clock\n", clk);
return;
}
}
for (clk = 0; clk < ARRAY_SIZE(clk_timer_tclk); clk++) { s3c_register_clocks(clk_timer_scaler, ARRAY_SIZE(clk_timer_scaler));
ret = s3c24xx_register_clock(&clk_timer_tclk[clk]); s3c_register_clocks(clk_timer_tclk, ARRAY_SIZE(clk_timer_tclk));
if (ret < 0) {
printk(KERN_ERR "error adding pww tclk%d\n", clk);
return;
}
}
for (clk = 0; clk < ARRAY_SIZE(clk_timer_tdiv); clk++) { for (clk = 0; clk < ARRAY_SIZE(clk_timer_tdiv); clk++) {
ret = clk_pwm_tdiv_register(clk); ret = clk_pwm_tdiv_register(clk);
if (ret < 0) { if (ret < 0) {
printk(KERN_ERR "error adding pwm%d tdiv clock\n", clk); printk(KERN_ERR "error adding pwm%d tdiv clock\n", clk);
return; return;
......
...@@ -274,15 +274,7 @@ void __init s3c64xx_register_clocks(void) ...@@ -274,15 +274,7 @@ void __init s3c64xx_register_clocks(void)
int ptr; int ptr;
s3c24xx_register_clocks(clks, ARRAY_SIZE(clks)); s3c24xx_register_clocks(clks, ARRAY_SIZE(clks));
s3c_register_clocks(init_clocks, ARRAY_SIZE(init_clocks));
clkp = init_clocks;
for (ptr = 0; ptr < ARRAY_SIZE(init_clocks); ptr++, clkp++) {
ret = s3c24xx_register_clock(clkp);
if (ret < 0) {
printk(KERN_ERR "Failed to register clock %s (%d)\n",
clkp->name, ret);
}
}
clkp = init_clocks_disable; clkp = init_clocks_disable;
for (ptr = 0; ptr < ARRAY_SIZE(init_clocks_disable); ptr++, clkp++) { for (ptr = 0; ptr < ARRAY_SIZE(init_clocks_disable); ptr++, clkp++) {
......
...@@ -704,16 +704,8 @@ void __init s5pc1xx_register_clocks(void) ...@@ -704,16 +704,8 @@ void __init s5pc1xx_register_clocks(void)
s3c24xx_register_clocks(clks, ARRAY_SIZE(clks)); s3c24xx_register_clocks(clks, ARRAY_SIZE(clks));
clkp = s5pc100_init_clocks; s3c_register_clocks(s5pc100_init_clocks,
size = ARRAY_SIZE(s5pc100_init_clocks); ARRAY_SIZE(s5pc100_init_clocks));
for (ptr = 0; ptr < size; ptr++, clkp++) {
ret = s3c24xx_register_clock(clkp);
if (ret < 0) {
printk(KERN_ERR "Failed to register clock %s (%d)\n",
clkp->name, ret);
}
}
clkp = s5pc100_init_clocks_disable; clkp = s5pc100_init_clocks_disable;
size = ARRAY_SIZE(s5pc100_init_clocks_disable); size = ARRAY_SIZE(s5pc100_init_clocks_disable);
......
...@@ -336,6 +336,28 @@ int s3c24xx_register_clocks(struct clk **clks, int nr_clks) ...@@ -336,6 +336,28 @@ int s3c24xx_register_clocks(struct clk **clks, int nr_clks)
return fails; return fails;
} }
/**
* s3c_register_clocks() - register an array of clocks
* @clkp: Pointer to the first clock in the array.
* @nr_clks: Number of clocks to register.
*
* Call s3c24xx_register_clock() on the @clkp array given, printing an
* error if it fails to register the clock (unlikely).
*/
void __initdata s3c_register_clocks(struct clk *clkp, int nr_clks)
{
int ret;
for (; nr_clks > 0; nr_clks--, clkp++) {
ret = s3c24xx_register_clock(clkp);
if (ret < 0) {
printk(KERN_ERR "Failed to register clock %s (%d)\n",
clkp->name, ret);
}
}
}
/* initalise all the clocks */ /* initalise all the clocks */
int __init s3c24xx_register_baseclocks(unsigned long xtal) int __init s3c24xx_register_baseclocks(unsigned long xtal)
......
...@@ -87,6 +87,8 @@ extern int s3c2410_clkcon_enable(struct clk *clk, int enable); ...@@ -87,6 +87,8 @@ extern int s3c2410_clkcon_enable(struct clk *clk, int enable);
extern int s3c24xx_register_clock(struct clk *clk); extern int s3c24xx_register_clock(struct clk *clk);
extern int s3c24xx_register_clocks(struct clk **clk, int nr_clks); extern int s3c24xx_register_clocks(struct clk **clk, int nr_clks);
extern void s3c_register_clocks(struct clk *clk, int nr_clks);
extern int s3c24xx_register_baseclocks(unsigned long xtal); extern int s3c24xx_register_baseclocks(unsigned long xtal);
extern void s3c64xx_register_clocks(void); extern void s3c64xx_register_clocks(void);
......
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