diff options
| -rw-r--r-- | arch/arm/mach-s3c2410/mach-bast.c | 4 | ||||
| -rw-r--r-- | arch/arm/mach-s3c2410/mach-vr1000.c | 4 | ||||
| -rw-r--r-- | arch/arm/mach-s3c2440/mach-anubis.c | 4 | ||||
| -rw-r--r-- | arch/arm/mach-s3c2440/mach-osiris.c | 4 | ||||
| -rw-r--r-- | arch/arm/plat-s3c24xx/clock.c | 12 | ||||
| -rw-r--r-- | arch/arm/plat-s3c24xx/cpu.c | 9 | ||||
| -rw-r--r-- | include/asm-arm/plat-s3c24xx/clock.h | 1 | ||||
| -rw-r--r-- | include/asm-arm/plat-s3c24xx/cpu.h | 3 |
8 files changed, 21 insertions, 20 deletions
diff --git a/arch/arm/mach-s3c2410/mach-bast.c b/arch/arm/mach-s3c2410/mach-bast.c index 7b81296427eb..0bb2e8b2dd28 100644 --- a/arch/arm/mach-s3c2410/mach-bast.c +++ b/arch/arm/mach-s3c2410/mach-bast.c | |||
| @@ -467,8 +467,6 @@ static struct clk *bast_clocks[] = { | |||
| 467 | static struct s3c24xx_board bast_board __initdata = { | 467 | static struct s3c24xx_board bast_board __initdata = { |
| 468 | .devices = bast_devices, | 468 | .devices = bast_devices, |
| 469 | .devices_count = ARRAY_SIZE(bast_devices), | 469 | .devices_count = ARRAY_SIZE(bast_devices), |
| 470 | .clocks = bast_clocks, | ||
| 471 | .clocks_count = ARRAY_SIZE(bast_clocks), | ||
| 472 | }; | 470 | }; |
| 473 | 471 | ||
| 474 | static void __init bast_map_io(void) | 472 | static void __init bast_map_io(void) |
| @@ -486,6 +484,8 @@ static void __init bast_map_io(void) | |||
| 486 | 484 | ||
| 487 | s3c24xx_uclk.parent = &s3c24xx_clkout1; | 485 | s3c24xx_uclk.parent = &s3c24xx_clkout1; |
| 488 | 486 | ||
| 487 | s3c24xx_register_clocks(bast_clocks, ARRAY_SIZE(bast_clocks)); | ||
| 488 | |||
| 489 | s3c_device_nand.dev.platform_data = &bast_nand_info; | 489 | s3c_device_nand.dev.platform_data = &bast_nand_info; |
| 490 | s3c_device_i2c.dev.platform_data = &bast_i2c_info; | 490 | s3c_device_i2c.dev.platform_data = &bast_i2c_info; |
| 491 | 491 | ||
diff --git a/arch/arm/mach-s3c2410/mach-vr1000.c b/arch/arm/mach-s3c2410/mach-vr1000.c index c947c75bcbf0..9380a1360890 100644 --- a/arch/arm/mach-s3c2410/mach-vr1000.c +++ b/arch/arm/mach-s3c2410/mach-vr1000.c | |||
| @@ -387,8 +387,6 @@ static struct clk *vr1000_clocks[] = { | |||
| 387 | static struct s3c24xx_board vr1000_board __initdata = { | 387 | static struct s3c24xx_board vr1000_board __initdata = { |
| 388 | .devices = vr1000_devices, | 388 | .devices = vr1000_devices, |
| 389 | .devices_count = ARRAY_SIZE(vr1000_devices), | 389 | .devices_count = ARRAY_SIZE(vr1000_devices), |
| 390 | .clocks = vr1000_clocks, | ||
| 391 | .clocks_count = ARRAY_SIZE(vr1000_clocks), | ||
| 392 | }; | 390 | }; |
| 393 | 391 | ||
| 394 | static void vr1000_power_off(void) | 392 | static void vr1000_power_off(void) |
| @@ -412,6 +410,8 @@ static void __init vr1000_map_io(void) | |||
| 412 | 410 | ||
| 413 | s3c24xx_uclk.parent = &s3c24xx_clkout1; | 411 | s3c24xx_uclk.parent = &s3c24xx_clkout1; |
| 414 | 412 | ||
| 413 | s3c24xx_register_clocks(vr1000_clocks, ARRAY_SIZE(vr1000_clocks)); | ||
| 414 | |||
| 415 | pm_power_off = vr1000_power_off; | 415 | pm_power_off = vr1000_power_off; |
| 416 | 416 | ||
| 417 | s3c24xx_init_io(vr1000_iodesc, ARRAY_SIZE(vr1000_iodesc)); | 417 | s3c24xx_init_io(vr1000_iodesc, ARRAY_SIZE(vr1000_iodesc)); |
diff --git a/arch/arm/mach-s3c2440/mach-anubis.c b/arch/arm/mach-s3c2440/mach-anubis.c index 3f0288eb1ed5..0f4e2882aa13 100644 --- a/arch/arm/mach-s3c2440/mach-anubis.c +++ b/arch/arm/mach-s3c2440/mach-anubis.c | |||
| @@ -284,8 +284,6 @@ static struct clk *anubis_clocks[] = { | |||
| 284 | static struct s3c24xx_board anubis_board __initdata = { | 284 | static struct s3c24xx_board anubis_board __initdata = { |
| 285 | .devices = anubis_devices, | 285 | .devices = anubis_devices, |
| 286 | .devices_count = ARRAY_SIZE(anubis_devices), | 286 | .devices_count = ARRAY_SIZE(anubis_devices), |
| 287 | .clocks = anubis_clocks, | ||
| 288 | .clocks_count = ARRAY_SIZE(anubis_clocks), | ||
| 289 | }; | 287 | }; |
| 290 | 288 | ||
| 291 | static void __init anubis_map_io(void) | 289 | static void __init anubis_map_io(void) |
| @@ -303,6 +301,8 @@ static void __init anubis_map_io(void) | |||
| 303 | 301 | ||
| 304 | s3c24xx_uclk.parent = &s3c24xx_clkout1; | 302 | s3c24xx_uclk.parent = &s3c24xx_clkout1; |
| 305 | 303 | ||
| 304 | s3c24xx_register_clocks(anubis_clocks, ARRAY_SIZE(anubis_clocks)); | ||
| 305 | |||
| 306 | s3c_device_nand.dev.platform_data = &anubis_nand_info; | 306 | s3c_device_nand.dev.platform_data = &anubis_nand_info; |
| 307 | 307 | ||
| 308 | s3c24xx_init_io(anubis_iodesc, ARRAY_SIZE(anubis_iodesc)); | 308 | s3c24xx_init_io(anubis_iodesc, ARRAY_SIZE(anubis_iodesc)); |
diff --git a/arch/arm/mach-s3c2440/mach-osiris.c b/arch/arm/mach-s3c2440/mach-osiris.c index 2ed8e51f20c8..c9872210ab5a 100644 --- a/arch/arm/mach-s3c2440/mach-osiris.c +++ b/arch/arm/mach-s3c2440/mach-osiris.c | |||
| @@ -254,8 +254,6 @@ static struct clk *osiris_clocks[] = { | |||
| 254 | static struct s3c24xx_board osiris_board __initdata = { | 254 | static struct s3c24xx_board osiris_board __initdata = { |
| 255 | .devices = osiris_devices, | 255 | .devices = osiris_devices, |
| 256 | .devices_count = ARRAY_SIZE(osiris_devices), | 256 | .devices_count = ARRAY_SIZE(osiris_devices), |
| 257 | .clocks = osiris_clocks, | ||
| 258 | .clocks_count = ARRAY_SIZE(osiris_clocks), | ||
| 259 | }; | 257 | }; |
| 260 | 258 | ||
| 261 | static void __init osiris_map_io(void) | 259 | static void __init osiris_map_io(void) |
| @@ -275,6 +273,8 @@ static void __init osiris_map_io(void) | |||
| 275 | 273 | ||
| 276 | s3c24xx_uclk.parent = &s3c24xx_clkout1; | 274 | s3c24xx_uclk.parent = &s3c24xx_clkout1; |
| 277 | 275 | ||
| 276 | s3c24xx_register_clocks(osiris_clocks, ARRAY_SIZE(osiris_clocks)); | ||
| 277 | |||
| 278 | s3c_device_nand.dev.platform_data = &osiris_nand_info; | 278 | s3c_device_nand.dev.platform_data = &osiris_nand_info; |
| 279 | 279 | ||
| 280 | s3c24xx_init_io(osiris_iodesc, ARRAY_SIZE(osiris_iodesc)); | 280 | s3c24xx_init_io(osiris_iodesc, ARRAY_SIZE(osiris_iodesc)); |
diff --git a/arch/arm/plat-s3c24xx/clock.c b/arch/arm/plat-s3c24xx/clock.c index d3dc03a7383a..79cda0faec86 100644 --- a/arch/arm/plat-s3c24xx/clock.c +++ b/arch/arm/plat-s3c24xx/clock.c | |||
| @@ -404,6 +404,18 @@ int s3c24xx_register_clock(struct clk *clk) | |||
| 404 | return 0; | 404 | return 0; |
| 405 | } | 405 | } |
| 406 | 406 | ||
| 407 | int s3c24xx_register_clocks(struct clk **clks, int nr_clks) | ||
| 408 | { | ||
| 409 | int fails = 0; | ||
| 410 | |||
| 411 | for (; nr_clks > 0; nr_clks--, clks++) { | ||
| 412 | if (s3c24xx_register_clock(*clks) < 0) | ||
| 413 | fails++; | ||
| 414 | } | ||
| 415 | |||
| 416 | return fails; | ||
| 417 | } | ||
| 418 | |||
| 407 | /* initalise all the clocks */ | 419 | /* initalise all the clocks */ |
| 408 | 420 | ||
| 409 | int __init s3c24xx_setup_clocks(unsigned long xtal, | 421 | int __init s3c24xx_setup_clocks(unsigned long xtal, |
diff --git a/arch/arm/plat-s3c24xx/cpu.c b/arch/arm/plat-s3c24xx/cpu.c index 6a2d1070e5a0..3e314a296255 100644 --- a/arch/arm/plat-s3c24xx/cpu.c +++ b/arch/arm/plat-s3c24xx/cpu.c | |||
| @@ -187,16 +187,7 @@ static struct s3c24xx_board *board; | |||
| 187 | 187 | ||
| 188 | void s3c24xx_set_board(struct s3c24xx_board *b) | 188 | void s3c24xx_set_board(struct s3c24xx_board *b) |
| 189 | { | 189 | { |
| 190 | int i; | ||
| 191 | |||
| 192 | board = b; | 190 | board = b; |
| 193 | |||
| 194 | if (b->clocks_count != 0) { | ||
| 195 | struct clk **ptr = b->clocks; | ||
| 196 | |||
| 197 | for (i = b->clocks_count; i > 0; i--, ptr++) | ||
| 198 | s3c24xx_register_clock(*ptr); | ||
| 199 | } | ||
| 200 | } | 191 | } |
| 201 | 192 | ||
| 202 | /* cpu information */ | 193 | /* cpu information */ |
diff --git a/include/asm-arm/plat-s3c24xx/clock.h b/include/asm-arm/plat-s3c24xx/clock.h index f6135dbb9fa9..235b753cd877 100644 --- a/include/asm-arm/plat-s3c24xx/clock.h +++ b/include/asm-arm/plat-s3c24xx/clock.h | |||
| @@ -56,6 +56,7 @@ extern struct mutex clocks_mutex; | |||
| 56 | extern int s3c2410_clkcon_enable(struct clk *clk, int enable); | 56 | extern int s3c2410_clkcon_enable(struct clk *clk, int enable); |
| 57 | 57 | ||
| 58 | extern int s3c24xx_register_clock(struct clk *clk); | 58 | extern int s3c24xx_register_clock(struct clk *clk); |
| 59 | extern int s3c24xx_register_clocks(struct clk **clk, int nr_clks); | ||
| 59 | 60 | ||
| 60 | extern int s3c24xx_setup_clocks(unsigned long xtal, | 61 | extern int s3c24xx_setup_clocks(unsigned long xtal, |
| 61 | unsigned long fclk, | 62 | unsigned long fclk, |
diff --git a/include/asm-arm/plat-s3c24xx/cpu.h b/include/asm-arm/plat-s3c24xx/cpu.h index 15dd18810905..8c17ca4348f1 100644 --- a/include/asm-arm/plat-s3c24xx/cpu.h +++ b/include/asm-arm/plat-s3c24xx/cpu.h | |||
| @@ -49,9 +49,6 @@ extern void s3c24xx_init_uartdevs(char *name, | |||
| 49 | struct s3c24xx_board { | 49 | struct s3c24xx_board { |
| 50 | struct platform_device **devices; | 50 | struct platform_device **devices; |
| 51 | unsigned int devices_count; | 51 | unsigned int devices_count; |
| 52 | |||
| 53 | struct clk **clocks; | ||
| 54 | unsigned int clocks_count; | ||
| 55 | }; | 52 | }; |
| 56 | 53 | ||
| 57 | extern void s3c24xx_set_board(struct s3c24xx_board *board); | 54 | extern void s3c24xx_set_board(struct s3c24xx_board *board); |
