[PATCH 3/8] i.MX25: fix get_rate_otg to return the correct value

Eric Bénard eric at eukrea.com
Tue Jun 8 05:02:57 EDT 2010


usb drivers need to get the right value for otg clock so
calculate and return it

Signed-off-by: Eric Bénard <eric at eukrea.com>
---
 arch/arm/mach-mx25/clock.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-mx25/clock.c b/arch/arm/mach-mx25/clock.c
index 1550149..d2835ff 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)
-- 
1.6.3.3




More information about the linux-arm-kernel mailing list