From 7496154e2fdc3efccd5d5b8acf160082f1b95c2d Mon Sep 17 00:00:00 2001 From: Sammy He Date: Wed, 17 Nov 2010 00:39:08 +0800 Subject: ENGR00133551-1 Add freescale usb udc support for i.mx51 platform. Add imx_udc for usb gadget on i.mx51 platform. Signed-off-by: Hu Hui Signed-off-by: Sammy He --- cpu/arm_cortexa8/mx51/generic.c | 52 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) (limited to 'cpu') diff --git a/cpu/arm_cortexa8/mx51/generic.c b/cpu/arm_cortexa8/mx51/generic.c index d85498861e..70136458a8 100644 --- a/cpu/arm_cortexa8/mx51/generic.c +++ b/cpu/arm_cortexa8/mx51/generic.c @@ -928,3 +928,55 @@ int arch_cpu_init(void) return 0; } #endif + +void set_usboh3_clk(void) +{ + unsigned int reg; + + reg = readl(MXC_CCM_CSCMR1); + reg |= 1 << 22; + writel(reg, MXC_CCM_CSCMR1); + reg = readl(MXC_CCM_CSCDR1); + reg &= ~MXC_CCM_CSCDR1_USBOH3_CLK_PODF_MASK; + reg &= ~MXC_CCM_CSCDR1_USBOH3_CLK_PRED_MASK; + reg |= 4 << MXC_CCM_CSCDR1_USBOH3_CLK_PRED_OFFSET; + reg |= 1 << MXC_CCM_CSCDR1_USBOH3_CLK_PODF_OFFSET; + + writel(reg, MXC_CCM_CSCDR1); +} + +void set_usb_phy1_clk(void) +{ + unsigned int reg; + + reg = readl(MXC_CCM_CSCMR1); + reg &= ~MXC_CCM_CSCMR1_USB_PHY_CLK_SEL; + writel(reg, MXC_CCM_CSCMR1); +} + +void enable_usboh3_clk(unsigned char enable) +{ + unsigned int reg; + + reg = readl(MXC_CCM_CCGR2); + if (enable) + reg |= 1 << 14; + else + reg &= ~(1 << 14); + writel(reg, MXC_CCM_CCGR2); +} + +void enable_usb_phy1_clk(unsigned char enable) +{ + + unsigned int reg; + + reg = readl(MXC_CCM_CCGR2); + + if (enable) + reg |= 1 << 0; + else + reg &= ~(1<<0); + writel(reg, MXC_CCM_CCGR2); +} + -- cgit v1.2.3