]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
[ARM] 4324/1: S3C24XX: remove clocks from s3c24xx_board
authorBen Dooks <ben-linux@fluff.org>
Fri, 20 Apr 2007 10:15:27 +0000 (11:15 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 21 Apr 2007 19:53:14 +0000 (20:53 +0100)
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: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/mach-s3c2410/mach-bast.c
arch/arm/mach-s3c2410/mach-vr1000.c
arch/arm/mach-s3c2440/mach-anubis.c
arch/arm/mach-s3c2440/mach-osiris.c
arch/arm/plat-s3c24xx/clock.c
arch/arm/plat-s3c24xx/cpu.c
include/asm-arm/plat-s3c24xx/clock.h
include/asm-arm/plat-s3c24xx/cpu.h

index 7b81296427ebc54ce28cc519575e57e23eb58a95..0bb2e8b2dd287bcd650205ae3d99fd8ce431983a 100644 (file)
@@ -467,8 +467,6 @@ static struct clk *bast_clocks[] = {
 static struct s3c24xx_board bast_board __initdata = {
        .devices       = bast_devices,
        .devices_count = ARRAY_SIZE(bast_devices),
-       .clocks        = bast_clocks,
-       .clocks_count  = ARRAY_SIZE(bast_clocks),
 };
 
 static void __init bast_map_io(void)
@@ -486,6 +484,8 @@ static void __init bast_map_io(void)
 
        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_i2c.dev.platform_data = &bast_i2c_info;
 
index c947c75bcbf0f982f13566db3a0fe61b45ea7eb5..9380a136089085d452b8eef56f9c7b49e5781d1f 100644 (file)
@@ -387,8 +387,6 @@ static struct clk *vr1000_clocks[] = {
 static struct s3c24xx_board vr1000_board __initdata = {
        .devices       = vr1000_devices,
        .devices_count = ARRAY_SIZE(vr1000_devices),
-       .clocks        = vr1000_clocks,
-       .clocks_count  = ARRAY_SIZE(vr1000_clocks),
 };
 
 static void vr1000_power_off(void)
@@ -412,6 +410,8 @@ static void __init vr1000_map_io(void)
 
        s3c24xx_uclk.parent  = &s3c24xx_clkout1;
 
+       s3c24xx_register_clocks(vr1000_clocks, ARRAY_SIZE(vr1000_clocks));
+
        pm_power_off = vr1000_power_off;
 
        s3c24xx_init_io(vr1000_iodesc, ARRAY_SIZE(vr1000_iodesc));
index 3f0288eb1ed5c9e69abbfee77e1c489f2125daba..0f4e2882aa13f06f7b11d6908b51280cb36a350d 100644 (file)
@@ -284,8 +284,6 @@ static struct clk *anubis_clocks[] = {
 static struct s3c24xx_board anubis_board __initdata = {
        .devices       = anubis_devices,
        .devices_count = ARRAY_SIZE(anubis_devices),
-       .clocks        = anubis_clocks,
-       .clocks_count  = ARRAY_SIZE(anubis_clocks),
 };
 
 static void __init anubis_map_io(void)
@@ -303,6 +301,8 @@ static void __init anubis_map_io(void)
 
        s3c24xx_uclk.parent  = &s3c24xx_clkout1;
 
+       s3c24xx_register_clocks(anubis_clocks, ARRAY_SIZE(anubis_clocks));
+
        s3c_device_nand.dev.platform_data = &anubis_nand_info;
 
        s3c24xx_init_io(anubis_iodesc, ARRAY_SIZE(anubis_iodesc));
index 2ed8e51f20c8525378ced153896b11e080db0cbe..c9872210ab5a9db0698c6ba2c81b38f0b3f00a99 100644 (file)
@@ -254,8 +254,6 @@ static struct clk *osiris_clocks[] = {
 static struct s3c24xx_board osiris_board __initdata = {
        .devices       = osiris_devices,
        .devices_count = ARRAY_SIZE(osiris_devices),
-       .clocks        = osiris_clocks,
-       .clocks_count  = ARRAY_SIZE(osiris_clocks),
 };
 
 static void __init osiris_map_io(void)
@@ -275,6 +273,8 @@ static void __init osiris_map_io(void)
 
        s3c24xx_uclk.parent  = &s3c24xx_clkout1;
 
+       s3c24xx_register_clocks(osiris_clocks, ARRAY_SIZE(osiris_clocks));
+
        s3c_device_nand.dev.platform_data = &osiris_nand_info;
 
        s3c24xx_init_io(osiris_iodesc, ARRAY_SIZE(osiris_iodesc));
index d3dc03a7383a0379c0f467fe082948df85931913..79cda0faec8644d0d17fcf54da0cd9852adcae55 100644 (file)
@@ -404,6 +404,18 @@ int s3c24xx_register_clock(struct clk *clk)
        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 */
 
 int __init s3c24xx_setup_clocks(unsigned long xtal,
index 6a2d1070e5a08825e35b2e9db24519e9578ff8a1..3e314a296255ed48bcea2f2f1817aa9820b6aa87 100644 (file)
@@ -187,16 +187,7 @@ static struct s3c24xx_board *board;
 
 void s3c24xx_set_board(struct s3c24xx_board *b)
 {
-       int i;
-
        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 */
index f6135dbb9fa9601db1358979b1b0c6bc5033ec78..235b753cd877a94d290201196e9a845be9733853 100644 (file)
@@ -56,6 +56,7 @@ extern struct mutex clocks_mutex;
 extern int s3c2410_clkcon_enable(struct clk *clk, int enable);
 
 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,
                                unsigned long fclk,
index 15dd18810905c6f499af7f0e37cec0e0610e13b7..8c17ca4348f1c9cfce4e7887eaeedfd60902d787 100644 (file)
@@ -49,9 +49,6 @@ extern void s3c24xx_init_uartdevs(char *name,
 struct s3c24xx_board {
        struct platform_device  **devices;
        unsigned int              devices_count;
-
-       struct clk              **clocks;
-       unsigned int              clocks_count;
 };
 
 extern void s3c24xx_set_board(struct s3c24xx_board *board);