diff options
author | Ben Dooks <ben-linux@fluff.org> | 2006-03-20 18:10:04 +0100 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2006-03-21 23:06:03 +0100 |
commit | d3468daab82d5195fe85322235896797d5581720 (patch) | |
tree | f4980daea0e4654a3e72cbfa61c82294036588f5 /arch/arm | |
parent | [ARM] 3330/1: S3C24XX - move UPLL to main clock (diff) | |
download | linux-d3468daab82d5195fe85322235896797d5581720.tar.xz linux-d3468daab82d5195fe85322235896797d5581720.zip |
[ARM] 3331/1: S3C24XX - add clk_set_parent() to clock code
Patch from Ben Dooks
Add clk_set_parent() call to clock code
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-s3c2410/clock.c | 18 | ||||
-rw-r--r-- | arch/arm/mach-s3c2410/clock.h | 2 |
2 files changed, 20 insertions, 0 deletions
diff --git a/arch/arm/mach-s3c2410/clock.c b/arch/arm/mach-s3c2410/clock.c index aaada9e3d67f..773b7aec3e99 100644 --- a/arch/arm/mach-s3c2410/clock.c +++ b/arch/arm/mach-s3c2410/clock.c @@ -192,6 +192,23 @@ struct clk *clk_get_parent(struct clk *clk) return clk->parent; } +int clk_set_parent(struct clk *clk, struct clk *parent) +{ + int ret = 0; + + if (IS_ERR(clk)) + return -EINVAL; + + mutex_lock(&clocks_mutex); + + if (clk->set_parent) + ret = (clk->set_parent)(clk, parent); + + mutex_unlock(&clocks_mutex); + + return ret; +} + EXPORT_SYMBOL(clk_get); EXPORT_SYMBOL(clk_put); EXPORT_SYMBOL(clk_enable); @@ -200,6 +217,7 @@ EXPORT_SYMBOL(clk_get_rate); EXPORT_SYMBOL(clk_round_rate); EXPORT_SYMBOL(clk_set_rate); EXPORT_SYMBOL(clk_get_parent); +EXPORT_SYMBOL(clk_set_parent); /* base clock enable */ diff --git a/arch/arm/mach-s3c2410/clock.h b/arch/arm/mach-s3c2410/clock.h index eb5c95d1e7f2..c4f36f006496 100644 --- a/arch/arm/mach-s3c2410/clock.h +++ b/arch/arm/mach-s3c2410/clock.h @@ -19,7 +19,9 @@ struct clk { int usage; unsigned long rate; unsigned long ctrlbit; + int (*enable)(struct clk *, int enable); + int (*set_parent)(struct clk *c, struct clk *parent); }; /* other clocks which may be registered by board support */ |