summaryrefslogtreecommitdiffstats
path: root/drivers/clk/mxs/clk-ref.c
diff options
context:
space:
mode:
authorJuergen Beisert <j.beisert@pengutronix.de>2013-06-21 14:14:25 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2013-06-23 08:49:42 +0200
commit5a62973efcb1c7a7c08cc1f74111898f5370c5b6 (patch)
tree095d315a85f037ba7a717999f357be09c3d69925 /drivers/clk/mxs/clk-ref.c
parent76eedb251df34bbd18c326984722f5cdfde3e730 (diff)
downloadbarebox-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.c12
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,