summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Bénard <eric@eukrea.com>2010-06-08 11:02:57 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2010-07-26 14:18:09 +0200
commita6e92b49ae5ef48e1791e5df8368af1fe8b3bd9a (patch)
treeb07023d846c725032cc3c1c2aa8e5b5b0c4f0cb9
parent648beaf5bd7072031bddd84bf7bb482ec459a603 (diff)
i.MX25: fix get_rate_otg to return the correct value
usb drivers need to get the right value for otg clock so calculate and return it Signed-off-by: Eric Bénard <eric@eukrea.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r--arch/arm/mach-mx25/clock.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/arch/arm/mach-mx25/clock.c b/arch/arm/mach-mx25/clock.c
index f44d65765b9a..84f0f1efea4b 100644
--- a/arch/arm/mach-mx25/clock.c
+++ b/arch/arm/mach-mx25/clock.c
@@ -131,7 +131,10 @@ static unsigned long get_rate_lcdc(struct clk *clk)
static unsigned long get_rate_otg(struct clk *clk)
{
- return 48000000; /* FIXME */
+ unsigned long cctl = readl(CRM_BASE + CCM_CCTL);
+ unsigned long rate = get_rate_upll();
+
+ return (cctl & (1 << 23)) ? 0 : rate / ((0x3F & (cctl >> 16)) + 1);
}
static int clk_cgcr_enable(struct clk *clk)