[U-Boot] [PATCH] imx6: disable bandgap self-bias circuit after boot

Peng Fan B51431 at freescale.com
Thu Jan 15 07:55:21 CET 2015


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 <Peng.Fan at freescale.com>
> Signed-off-by: Ranjani Vaidyanathan <Ranjani.Vaidyanathan at freescale.com>
> ---
>   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.


More information about the U-Boot mailing list