Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6e8908ed authored by Ben Dooks's avatar Ben Dooks Committed by Russell King
Browse files

[ARM] 3359/1: S3C24XX - add support for clk_set_rate



Patch from Ben Dooks

Add support for clk_set_rate and clk_round_rate to the
s3c2410 clock implementation

Signed-off-by: default avatarBen Dooks <ben-linux@fluff.org>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent d2a02b93
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -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)
{
	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)
+2 −0
Original line number Diff line number Diff line
@@ -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);
};