diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2010-08-03 09:31:38 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2010-08-03 09:31:38 +0200 |
commit | 139ec08127825f2fdc4d0386d26f1fad9f745c2c (patch) | |
tree | 65e0aa4d72f548dd1e8771fc80e918dcbc5365ec /arch/arm/boards/guf-neso/pll_init.S | |
parent | 68d0d31d41d9034a6246991ee1d486dc805ff479 (diff) | |
parent | 6f354bc067482fbe78e9148c3a1501188b18f22d (diff) | |
download | barebox-139ec08127825f2fdc4d0386d26f1fad9f745c2c.tar.gz barebox-139ec08127825f2fdc4d0386d26f1fad9f745c2c.tar.xz |
Merge branch 'next'
Diffstat (limited to 'arch/arm/boards/guf-neso/pll_init.S')
-rw-r--r-- | arch/arm/boards/guf-neso/pll_init.S | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/arch/arm/boards/guf-neso/pll_init.S b/arch/arm/boards/guf-neso/pll_init.S new file mode 100644 index 0000000000..87e5312fb4 --- /dev/null +++ b/arch/arm/boards/guf-neso/pll_init.S @@ -0,0 +1,48 @@ +#include <config.h> +#include <mach/imx-regs.h> +#include <mach/imx-pll.h> +#include <linux/linkage.h> + +#define writel(val, reg) \ + ldr r0, =reg; \ + ldr r1, =val; \ + str r1, [r0]; + +#define CSCR_VAL CSCR_USB_DIV(3) | \ + CSCR_SD_CNT(3) | \ + CSCR_MSHC_SEL | \ + CSCR_H264_SEL | \ + CSCR_SSI1_SEL | \ + CSCR_SSI2_SEL | \ + CSCR_MCU_SEL | \ + CSCR_ARM_SRC_MPLL | \ + CSCR_SP_SEL | \ + CSCR_ARM_DIV(0) | \ + CSCR_FPM_EN | \ + CSCR_SPEN | \ + CSCR_MPEN | \ + CSCR_AHB_DIV(1) + +ENTRY(neso_pll_init) + + writel(IMX_PLL_PD(0) | + IMX_PLL_MFD(51) | + IMX_PLL_MFI(7) | + IMX_PLL_MFN(35), MPCTL0) /* 399 MHz */ + + writel(IMX_PLL_PD(1) | + IMX_PLL_MFD(12) | + IMX_PLL_MFI(9) | + IMX_PLL_MFN(3), SPCTL0) /* SPLL = 2 * 26 * 4.61538 MHz = 240 MHz */ + + writel(CSCR_VAL | CSCR_MPLL_RESTART | CSCR_SPLL_RESTART, CSCR) + + ldr r2, =16000 +1: + subs r2, r2, #1 + nop + bcs 1b + + mov pc, lr +ENDPROC(neso_pll_init) + |