summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-imx/imx53.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2012-04-12 14:47:05 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2012-04-12 21:38:19 +0200
commit089c24e3763f7f43dfe14e0f85b7d58396dd7d5d (patch)
tree14f9c54001fac6e765679017c30f0cbf3791f8f8 /arch/arm/mach-imx/imx53.c
parentf70ebb28a2ae0cbfdd41dee8d55ec51b8e549986 (diff)
downloadbarebox-089c24e3763f7f43dfe14e0f85b7d58396dd7d5d.tar.gz
barebox-089c24e3763f7f43dfe14e0f85b7d58396dd7d5d.tar.xz
ARM i.MX53: Setup USB clocks
- get USB PHY clock from OSC (24MHz) - adjust USB clock to 54MHz Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-imx/imx53.c')
-rw-r--r--arch/arm/mach-imx/imx53.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/arch/arm/mach-imx/imx53.c b/arch/arm/mach-imx/imx53.c
index 8742c46d0b..b5dbc39dad 100644
--- a/arch/arm/mach-imx/imx53.c
+++ b/arch/arm/mach-imx/imx53.c
@@ -154,10 +154,15 @@ void imx53_init_lowlevel(unsigned int cpufreq_mhz)
writel(0x00016154, ccm + MX5_CCM_CBCMR);
- /* change uart clk parent to pll2 */
r = readl(ccm + MX5_CCM_CSCMR1);
- r &= ~(3 << 24);
- r |= (1 << 24);
+
+ /* change uart clk parent to pll2 */
+ r &= ~MX5_CCM_CSCMR1_UART_CLK_SEL_MASK;
+ r |= 1 << MX5_CCM_CSCMR1_UART_CLK_SEL_OFFSET;
+
+ /* USB phy clock from osc */
+ r &= ~(1 << MX5_CCM_CSCMR1_USB_PHY_CLK_SEL_OFFSET);
+
writel(r, ccm + MX5_CCM_CSCMR1);
/* make sure change is effective */
@@ -187,6 +192,12 @@ void imx53_init_lowlevel(unsigned int cpufreq_mhz)
r &= ~MX5_CCM_CSCDR1_ESDHC3_MX53_CLK_PODF_MASK;
r |= 1 << MX5_CCM_CSCDR1_ESDHC3_MX53_CLK_PODF_OFFSET;
+ r &= ~MX5_CCM_CSCDR1_USBOH3_CLK_PRED_MASK;
+ r &= ~MX5_CCM_CSCDR1_USBOH3_CLK_PODF_MASK;
+
+ r |= 3 << MX5_CCM_CSCDR1_USBOH3_CLK_PRED_OFFSET;
+ r |= 1 << MX5_CCM_CSCDR1_USBOH3_CLK_PODF_OFFSET;
+
writel(r, ccm + MX5_CCM_CSCDR1);
/* Restore the default values in the Gate registers */