diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2013-05-25 15:35:07 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2013-05-30 12:19:30 +0200 |
commit | 2307901376926c2bfe2a929f77cf2b6c92d133b0 (patch) | |
tree | 25ce779ab5f8df69ccb4369c1d4f1daf725a8938 /arch/arm/mach-imx/include/mach/imx5.h | |
parent | af31b068169e3c785f4a0e8b629547ce4bdf90c3 (diff) | |
download | barebox-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.h | 1 |
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) |