Commit ce89c206 authored by Ben Dooks's avatar Ben Dooks Committed by Russell King

[ARM] 4324/1: S3C24XX: remove clocks from s3c24xx_board

Remove the clocks from the s3c24xx_board as part
of the process of simplifying the initialisation
sequence by removing struct s3c24xx_board.
Signed-off-by: default avatarBen Dooks <ben-linux@fluff.org>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent ef085747
...@@ -467,8 +467,6 @@ static struct clk *bast_clocks[] = { ...@@ -467,8 +467,6 @@ static struct clk *bast_clocks[] = {
static struct s3c24xx_board bast_board __initdata = { static struct s3c24xx_board bast_board __initdata = {
.devices = bast_devices, .devices = bast_devices,
.devices_count = ARRAY_SIZE(bast_devices), .devices_count = ARRAY_SIZE(bast_devices),
.clocks = bast_clocks,
.clocks_count = ARRAY_SIZE(bast_clocks),
}; };
static void __init bast_map_io(void) static void __init bast_map_io(void)
...@@ -486,6 +484,8 @@ static void __init bast_map_io(void) ...@@ -486,6 +484,8 @@ static void __init bast_map_io(void)
s3c24xx_uclk.parent = &s3c24xx_clkout1; s3c24xx_uclk.parent = &s3c24xx_clkout1;
s3c24xx_register_clocks(bast_clocks, ARRAY_SIZE(bast_clocks));
s3c_device_nand.dev.platform_data = &bast_nand_info; s3c_device_nand.dev.platform_data = &bast_nand_info;
s3c_device_i2c.dev.platform_data = &bast_i2c_info; s3c_device_i2c.dev.platform_data = &bast_i2c_info;
......
...@@ -387,8 +387,6 @@ static struct clk *vr1000_clocks[] = { ...@@ -387,8 +387,6 @@ static struct clk *vr1000_clocks[] = {
static struct s3c24xx_board vr1000_board __initdata = { static struct s3c24xx_board vr1000_board __initdata = {
.devices = vr1000_devices, .devices = vr1000_devices,
.devices_count = ARRAY_SIZE(vr1000_devices), .devices_count = ARRAY_SIZE(vr1000_devices),
.clocks = vr1000_clocks,
.clocks_count = ARRAY_SIZE(vr1000_clocks),
}; };
static void vr1000_power_off(void) static void vr1000_power_off(void)
...@@ -412,6 +410,8 @@ static void __init vr1000_map_io(void) ...@@ -412,6 +410,8 @@ static void __init vr1000_map_io(void)
s3c24xx_uclk.parent = &s3c24xx_clkout1; s3c24xx_uclk.parent = &s3c24xx_clkout1;
s3c24xx_register_clocks(vr1000_clocks, ARRAY_SIZE(vr1000_clocks));
pm_power_off = vr1000_power_off; pm_power_off = vr1000_power_off;
s3c24xx_init_io(vr1000_iodesc, ARRAY_SIZE(vr1000_iodesc)); s3c24xx_init_io(vr1000_iodesc, ARRAY_SIZE(vr1000_iodesc));
......
...@@ -284,8 +284,6 @@ static struct clk *anubis_clocks[] = { ...@@ -284,8 +284,6 @@ static struct clk *anubis_clocks[] = {
static struct s3c24xx_board anubis_board __initdata = { static struct s3c24xx_board anubis_board __initdata = {
.devices = anubis_devices, .devices = anubis_devices,
.devices_count = ARRAY_SIZE(anubis_devices), .devices_count = ARRAY_SIZE(anubis_devices),
.clocks = anubis_clocks,
.clocks_count = ARRAY_SIZE(anubis_clocks),
}; };
static void __init anubis_map_io(void) static void __init anubis_map_io(void)
...@@ -303,6 +301,8 @@ static void __init anubis_map_io(void) ...@@ -303,6 +301,8 @@ static void __init anubis_map_io(void)
s3c24xx_uclk.parent = &s3c24xx_clkout1; s3c24xx_uclk.parent = &s3c24xx_clkout1;
s3c24xx_register_clocks(anubis_clocks, ARRAY_SIZE(anubis_clocks));
s3c_device_nand.dev.platform_data = &anubis_nand_info; s3c_device_nand.dev.platform_data = &anubis_nand_info;
s3c24xx_init_io(anubis_iodesc, ARRAY_SIZE(anubis_iodesc)); s3c24xx_init_io(anubis_iodesc, ARRAY_SIZE(anubis_iodesc));
......
...@@ -254,8 +254,6 @@ static struct clk *osiris_clocks[] = { ...@@ -254,8 +254,6 @@ static struct clk *osiris_clocks[] = {
static struct s3c24xx_board osiris_board __initdata = { static struct s3c24xx_board osiris_board __initdata = {
.devices = osiris_devices, .devices = osiris_devices,
.devices_count = ARRAY_SIZE(osiris_devices), .devices_count = ARRAY_SIZE(osiris_devices),
.clocks = osiris_clocks,
.clocks_count = ARRAY_SIZE(osiris_clocks),
}; };
static void __init osiris_map_io(void) static void __init osiris_map_io(void)
...@@ -275,6 +273,8 @@ static void __init osiris_map_io(void) ...@@ -275,6 +273,8 @@ static void __init osiris_map_io(void)
s3c24xx_uclk.parent = &s3c24xx_clkout1; s3c24xx_uclk.parent = &s3c24xx_clkout1;
s3c24xx_register_clocks(osiris_clocks, ARRAY_SIZE(osiris_clocks));
s3c_device_nand.dev.platform_data = &osiris_nand_info; s3c_device_nand.dev.platform_data = &osiris_nand_info;
s3c24xx_init_io(osiris_iodesc, ARRAY_SIZE(osiris_iodesc)); s3c24xx_init_io(osiris_iodesc, ARRAY_SIZE(osiris_iodesc));
......
...@@ -404,6 +404,18 @@ int s3c24xx_register_clock(struct clk *clk) ...@@ -404,6 +404,18 @@ int s3c24xx_register_clock(struct clk *clk)
return 0; return 0;
} }
int s3c24xx_register_clocks(struct clk **clks, int nr_clks)
{
int fails = 0;
for (; nr_clks > 0; nr_clks--, clks++) {
if (s3c24xx_register_clock(*clks) < 0)
fails++;
}
return fails;
}
/* initalise all the clocks */ /* initalise all the clocks */
int __init s3c24xx_setup_clocks(unsigned long xtal, int __init s3c24xx_setup_clocks(unsigned long xtal,
......
...@@ -187,16 +187,7 @@ static struct s3c24xx_board *board; ...@@ -187,16 +187,7 @@ static struct s3c24xx_board *board;
void s3c24xx_set_board(struct s3c24xx_board *b) void s3c24xx_set_board(struct s3c24xx_board *b)
{ {
int i;
board = b; board = b;
if (b->clocks_count != 0) {
struct clk **ptr = b->clocks;
for (i = b->clocks_count; i > 0; i--, ptr++)
s3c24xx_register_clock(*ptr);
}
} }
/* cpu information */ /* cpu information */
......
...@@ -56,6 +56,7 @@ extern struct mutex clocks_mutex; ...@@ -56,6 +56,7 @@ extern struct mutex clocks_mutex;
extern int s3c2410_clkcon_enable(struct clk *clk, int enable); 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_setup_clocks(unsigned long xtal, extern int s3c24xx_setup_clocks(unsigned long xtal,
unsigned long fclk, unsigned long fclk,
......
...@@ -49,9 +49,6 @@ extern void s3c24xx_init_uartdevs(char *name, ...@@ -49,9 +49,6 @@ extern void s3c24xx_init_uartdevs(char *name,
struct s3c24xx_board { struct s3c24xx_board {
struct platform_device **devices; struct platform_device **devices;
unsigned int devices_count; unsigned int devices_count;
struct clk **clocks;
unsigned int clocks_count;
}; };
extern void s3c24xx_set_board(struct s3c24xx_board *board); extern void s3c24xx_set_board(struct s3c24xx_board *board);
......
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