diff options
author | Juergen Beisert <j.beisert@pengutronix.de> | 2013-06-21 14:14:25 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2013-06-23 08:49:42 +0200 |
commit | 5a62973efcb1c7a7c08cc1f74111898f5370c5b6 (patch) | |
tree | 095d315a85f037ba7a717999f357be09c3d69925 /drivers/clk/mxs/clk-ref.c | |
parent | 76eedb251df34bbd18c326984722f5cdfde3e730 (diff) | |
download | barebox-5a62973efcb1c7a7c08cc1f74111898f5370c5b6.tar.gz barebox-5a62973efcb1c7a7c08cc1f74111898f5370c5b6.tar.xz |
clk: MXS: Add is_enabled callback for clkref
Signed-off-by: Juergen Beisert <j.beisert@pengutronix.de>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/clk/mxs/clk-ref.c')
-rw-r--r-- | drivers/clk/mxs/clk-ref.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/clk/mxs/clk-ref.c b/drivers/clk/mxs/clk-ref.c index d62ebfc0dd..7ff5527797 100644 --- a/drivers/clk/mxs/clk-ref.c +++ b/drivers/clk/mxs/clk-ref.c @@ -40,6 +40,17 @@ struct clk_ref { #define SET 0x4 #define CLR 0x8 +static int clk_ref_is_enabled(struct clk *clk) +{ + struct clk_ref *ref = to_clk_ref(clk); + u32 reg = readl(ref->reg); + + if (reg & 1 << ((ref->idx + 1) * 8 - 1)) + return 0; + + return 1; +} + static int clk_ref_enable(struct clk *clk) { struct clk_ref *ref = to_clk_ref(clk); @@ -118,6 +129,7 @@ static int clk_ref_set_rate(struct clk *clk, unsigned long rate, } static const struct clk_ops clk_ref_ops = { + .is_enabled = clk_ref_is_enabled, .enable = clk_ref_enable, .disable = clk_ref_disable, .recalc_rate = clk_ref_recalc_rate, |