diff options
author | Ben Dooks <ben-linux@fluff.org> | 2010-04-28 12:58:13 +0900 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2010-05-10 11:44:38 +0900 |
commit | 4e04691bc600b53f6aab63404e58fae3bdf8e310 (patch) | |
tree | e38f054ccb1ed1eb49315a2da15851009229c163 /arch/arm/plat-samsung | |
parent | e561aacc70716ff59b9359ba8f010609ee757241 (diff) | |
download | talos-obmc-linux-4e04691bc600b53f6aab63404e58fae3bdf8e310.tar.gz talos-obmc-linux-4e04691bc600b53f6aab63404e58fae3bdf8e310.zip |
ARM: SAMSUNG: Add s3c_disable_clocks() and tidy init+disable usage
Add s3c_disable_clocks() and change the clock registration code to use
the s3c_register_clocks() followed by s3c_disable_clocks() instead of
the loops it was using.
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Diffstat (limited to 'arch/arm/plat-samsung')
-rw-r--r-- | arch/arm/plat-samsung/clock.c | 15 | ||||
-rw-r--r-- | arch/arm/plat-samsung/include/plat/clock.h | 1 |
2 files changed, 16 insertions, 0 deletions
diff --git a/arch/arm/plat-samsung/clock.c b/arch/arm/plat-samsung/clock.c index 1b25c9d8c403..8bf79f3efdfb 100644 --- a/arch/arm/plat-samsung/clock.c +++ b/arch/arm/plat-samsung/clock.c @@ -376,6 +376,21 @@ void __init s3c_register_clocks(struct clk *clkp, int nr_clks) } } +/** + * s3c_disable_clocks() - disable an array of clocks + * @clkp: Pointer to the first clock in the array. + * @nr_clks: Number of clocks to register. + * + * for internal use only at initialisation time. disable the clocks in the + * @clkp array. + */ + +void __init s3c_disable_clocks(struct clk *clkp, int nr_clks) +{ + for (; nr_clks > 0; nr_clks--, clkp++) + (clkp->enable)(clkp, 0); +} + /* initalise all the clocks */ int __init s3c24xx_register_baseclocks(unsigned long xtal) diff --git a/arch/arm/plat-samsung/include/plat/clock.h b/arch/arm/plat-samsung/include/plat/clock.h index 60b62692ac7a..12caf48a6bdc 100644 --- a/arch/arm/plat-samsung/include/plat/clock.h +++ b/arch/arm/plat-samsung/include/plat/clock.h @@ -91,6 +91,7 @@ extern int s3c24xx_register_clock(struct clk *clk); extern int s3c24xx_register_clocks(struct clk **clk, int nr_clks); extern void s3c_register_clocks(struct clk *clk, int nr_clks); +extern void s3c_disable_clocks(struct clk *clkp, int nr_clks); extern int s3c24xx_register_baseclocks(unsigned long xtal); |