summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-imx/include/mach/imx5.h
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2013-05-25 15:35:07 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2013-05-30 12:19:30 +0200
commit2307901376926c2bfe2a929f77cf2b6c92d133b0 (patch)
tree25ce779ab5f8df69ccb4369c1d4f1daf725a8938 /arch/arm/mach-imx/include/mach/imx5.h
parentaf31b068169e3c785f4a0e8b629547ce4bdf90c3 (diff)
downloadbarebox-2307901376926c2bfe2a929f77cf2b6c92d133b0.tar.gz
barebox-2307901376926c2bfe2a929f77cf2b6c92d133b0.tar.xz
ARM: i.MX51: PLL errata workaround
This is a port of the official PLL errata workaround from Freescale. The PLL's in the i.MX51 processor can go out of lock due to a metastable condition in an analog flip-flop when used at high frequencies. This workaround implements an undocumented feature in the PLL (dither mode), which causes the effect of this failure to be much lower (in terms of frequency deviation), avoiding system failure, or at least decreasing the likelihood of system failure. This is based on U-Boot commit: commit 9db1bfa110ac411ab3468e817f7f74b2439eb8c8 Author: David Jander <david@protonic.nl> Date: Wed Jul 13 21:11:53 2011 +0000 ARM: MX51: PLL errata workaround Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/mach-imx/include/mach/imx5.h')
-rw-r--r--arch/arm/mach-imx/include/mach/imx5.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/arm/mach-imx/include/mach/imx5.h b/arch/arm/mach-imx/include/mach/imx5.h
index 7f5c2eff50..5d1a7d7d40 100644
--- a/arch/arm/mach-imx/include/mach/imx5.h
+++ b/arch/arm/mach-imx/include/mach/imx5.h
@@ -9,6 +9,7 @@ void imx5_init_lowlevel(void);
void imx5_setup_pll(void __iomem *base, int freq, u32 op, u32 mfd, u32 mfn);
#define imx5_setup_pll_1000(base) imx5_setup_pll((base), 1000, ((10 << 4) + ((1 - 1) << 0)), (12 - 1), 5)
+#define imx5_setup_pll_864(base) imx5_setup_pll((base), 864, (( 8 << 4) + ((1 - 1) << 0)), (180 - 1), 180)
#define imx5_setup_pll_800(base) imx5_setup_pll((base), 800, (( 8 << 4) + ((1 - 1) << 0)), (3 - 1), 1)
#define imx5_setup_pll_665(base) imx5_setup_pll((base), 665, (( 6 << 4) + ((1 - 1) << 0)), (96 - 1), 89)
#define imx5_setup_pll_600(base) imx5_setup_pll((base), 600, (( 6 << 4) + ((1 - 1) << 0)), ( 4 - 1), 1)