From mboxrd@z Thu Jan 1 00:00:00 1970 From: Peng Fan Date: Thu, 15 Jan 2015 14:55:21 +0800 Subject: [U-Boot] [PATCH] imx6: disable bandgap self-bias circuit after boot In-Reply-To: <1421291488-24249-1-git-send-email-Peng.Fan@freescale.com> References: <1421291488-24249-1-git-send-email-Peng.Fan@freescale.com> Message-ID: <54B76459.4050700@freescale.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Hi, Please ignore this patch. Wrong patch version. On 1/15/2015 11:11 AM, Peng Fan wrote: > The self-bias circuit is used by the bandgap during startup. > Once the bandgap has stabilized, the self-bias circuit should > be disabled for best noise performance of analog blocks. > Also this bit should be disabled before the chip enters STOP mode or > when ever the regular bandgap is disabled. > > Signed-off-by: Peng Fan > Signed-off-by: Ranjani Vaidyanathan > --- > arch/arm/cpu/armv7/mx6/soc.c | 24 ++++++++++++++++++++++++ > arch/arm/include/asm/arch-mx6/crm_regs.h | 2 ++ > 2 files changed, 26 insertions(+) > > diff --git a/arch/arm/cpu/armv7/mx6/soc.c b/arch/arm/cpu/armv7/mx6/soc.c > index 5f5f497..36572c6 100644 > --- a/arch/arm/cpu/armv7/mx6/soc.c > +++ b/arch/arm/cpu/armv7/mx6/soc.c > @@ -255,6 +255,23 @@ static void clear_mmdc_ch_mask(void) > writel(0, &mxc_ccm->ccdr); > } > > +static void init_bandgap(void) > +{ > + struct mxc_ccm_reg *mxc_ccm = (struct mxc_ccm_reg *)CCM_BASE_ADDR; > + /* > + * Ensure the bandgap has stabilized. > + */ > + while (!(readl(&mxc_ccm->ana_misc0) & 0x80)) > + ; > + /* > + * For best noise performance of the analog blocks using the > + * outputs of the bandgap, the reftop_selfbiasoff bit should > + * be set. > + */ > + writel(BM_ANADIG_ANA_MISC0_REFTOP_SELBIASOFF, &mxc_ccm->ana_misc0_set); > +} > + > + > #ifdef CONFIG_MX6SL > static void set_preclk_from_osc(void) > { > @@ -275,6 +292,13 @@ int arch_cpu_init(void) > clear_mmdc_ch_mask(); > > /* > + * Disable self-bias circuit in the analog bandap. > + * The self-bias circuit is used by the bandgap during startup. > + * This bit should be set after the bandgap has initialized. > + */ > + init_bandgap(); > + > + /* > * When low freq boot is enabled, ROM will not set AHB > * freq, so we need to ensure AHB freq is 132MHz in such > * scenario. > diff --git a/arch/arm/include/asm/arch-mx6/crm_regs.h b/arch/arm/include/asm/arch-mx6/crm_regs.h > index 39f3c07..0592ce0 100644 > --- a/arch/arm/include/asm/arch-mx6/crm_regs.h > +++ b/arch/arm/include/asm/arch-mx6/crm_regs.h > @@ -1063,4 +1063,6 @@ struct mxc_ccm_reg { > #define BF_ANADIG_PFD_528_PFD0_FRAC(v) \ > (((v) << 0) & BM_ANADIG_PFD_528_PFD0_FRAC) > > +#define BM_ANADIG_ANA_MISC0_REFTOP_SELBIASOFF 0x00000008 > + > #endif /*__ARCH_ARM_MACH_MX6_CCM_REGS_H__ */ Regards, Peng.