Skip to content

Commit

Permalink
[ARM] 3359/1: S3C24XX - add support for clk_set_rate
Browse files Browse the repository at this point in the history
Patch from Ben Dooks

Add support for clk_set_rate and clk_round_rate to the
s3c2410 clock implementation

Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
  • Loading branch information
Ben Dooks authored and Russell King committed Mar 21, 2006
1 parent d2a02b9 commit 6e8908e
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 1 deletion.
14 changes: 13 additions & 1 deletion arch/arm/mach-s3c2410/clock.c
Original file line number Diff line number Diff line change
Expand Up @@ -180,12 +180,24 @@ unsigned long clk_get_rate(struct clk *clk)

long clk_round_rate(struct clk *clk, unsigned long rate)
{
if (!IS_ERR(clk) && clk->round_rate)
return (clk->round_rate)(clk, rate);

return rate;
}

int clk_set_rate(struct clk *clk, unsigned long rate)
{
return -EINVAL;
int ret;

if (IS_ERR(clk))
return -EINVAL;

mutex_lock(&clocks_mutex);
ret = (clk->set_rate)(clk, rate);
mutex_unlock(&clocks_mutex);

return ret;
}

struct clk *clk_get_parent(struct clk *clk)
Expand Down
2 changes: 2 additions & 0 deletions arch/arm/mach-s3c2410/clock.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ struct clk {
unsigned long ctrlbit;

int (*enable)(struct clk *, int enable);
int (*set_rate)(struct clk *c, unsigned long rate);
unsigned long (*round_rate)(struct clk *c, unsigned long rate);
int (*set_parent)(struct clk *c, struct clk *parent);
};

Expand Down

0 comments on commit 6e8908e

Please sign in to comment.