[PATCH 1/2 v2] omap: move scale_vcores to omap4_generic

Sascha Hauer s.hauer at pengutronix.de
Wed Mar 7 03:56:10 EST 2012


On Tue, Mar 06, 2012 at 03:26:28PM +0100, Jan Weitzel wrote:
> scale_vcores is used by two boards.
> 
> Signed-off-by: Jan Weitzel <j.weitzel at phytec.de>
> ---
> v2: add omap4_ prefix

Applied both. Thanks


 Sascha
> 
>  arch/arm/boards/panda/lowlevel.c                |   33 +----------------------
>  arch/arm/boards/pcm049/lowlevel.c               |   33 +----------------------
>  arch/arm/mach-omap/include/mach/omap4-silicon.h |    1 +
>  arch/arm/mach-omap/omap4_generic.c              |   31 +++++++++++++++++++++
>  4 files changed, 34 insertions(+), 64 deletions(-)
> 
> diff --git a/arch/arm/boards/panda/lowlevel.c b/arch/arm/boards/panda/lowlevel.c
> index 45ea221..8591fff 100644
> --- a/arch/arm/boards/panda/lowlevel.c
> +++ b/arch/arm/boards/panda/lowlevel.c
> @@ -44,37 +44,6 @@ static const struct ddr_regs ddr_regs_400_mhz_2cs = {
>  	.mr2		= 0x4
>  };
>  
> -#define I2C_SLAVE 0x12
> -
> -static int noinline scale_vcores(void)
> -{
> -	unsigned int rev = omap4_revision();
> -
> -	/* For VC bypass only VCOREx_CGF_FORCE  is necessary and
> -	 * VCOREx_CFG_VOLTAGE  changes can be discarded
> -	 */
> -	writel(0, OMAP44XX_PRM_VC_CFG_I2C_MODE);
> -	writel(0x6026, OMAP44XX_PRM_VC_CFG_I2C_CLK);
> -
> -	/* set VCORE1 force VSEL */
> -	omap4_power_i2c_send((0x3A55 << 8) | I2C_SLAVE);
> -
> -	/* FIXME: set VCORE2 force VSEL, Check the reset value */
> -	omap4_power_i2c_send((0x295B << 8) | I2C_SLAVE);
> -
> -	/* set VCORE3 force VSEL */
> -	switch (rev) {
> -	case OMAP4430_ES2_0:
> -		omap4_power_i2c_send((0x2961 << 8) | I2C_SLAVE);
> -		break;
> -	case OMAP4430_ES2_1:
> -		omap4_power_i2c_send((0x2A61 << 8) | I2C_SLAVE);
> -		break;
> -	}
> -
> -	return 0;
> -}
> -
>  static void noinline panda_init_lowlevel(void)
>  {
>  	struct dpll_param core = OMAP4_CORE_DPLL_PARAM_38M4_DDR400;
> @@ -101,7 +70,7 @@ static void noinline panda_init_lowlevel(void)
>  	omap4_ddr_init(&ddr_regs_400_mhz_2cs, &core);
>  
>  	/* Set VCORE1 = 1.3 V, VCORE2 = VCORE3 = 1.21V */
> -	scale_vcores();
> +	omap4_scale_vcores();
>  
>  	board_init_lowlevel_return();
>  }
> diff --git a/arch/arm/boards/pcm049/lowlevel.c b/arch/arm/boards/pcm049/lowlevel.c
> index bea895e..444a394 100644
> --- a/arch/arm/boards/pcm049/lowlevel.c
> +++ b/arch/arm/boards/pcm049/lowlevel.c
> @@ -44,37 +44,6 @@ static const struct ddr_regs ddr_regs_mt42L64M64_3_200_mhz = {
>  	.mr2		= 0x1	      /* from elpida 200MHz! */
>  };
>  
> -#define I2C_SLAVE 0x12
> -
> -static int noinline scale_vcores(void)
> -{
> -	unsigned int rev = omap4_revision();
> -
> -	/* For VC bypass only VCOREx_CGF_FORCE  is necessary and
> -	 * VCOREx_CFG_VOLTAGE  changes can be discarded
> -	 */
> -	writel(0, OMAP44XX_PRM_VC_CFG_I2C_MODE);
> -	writel(0x6026, OMAP44XX_PRM_VC_CFG_I2C_CLK);
> -
> -	/* set VCORE1 force VSEL */
> -	omap4_power_i2c_send((0x3A55 << 8) | I2C_SLAVE);
> -
> -	/* FIXME: set VCORE2 force VSEL, Check the reset value */
> -	omap4_power_i2c_send((0x295B << 8) | I2C_SLAVE);
> -
> -	/* set VCORE3 force VSEL */
> -	switch (rev) {
> -	case OMAP4430_ES2_0:
> -		omap4_power_i2c_send((0x2961 << 8) | I2C_SLAVE);
> -		break;
> -	case OMAP4430_ES2_1:
> -		omap4_power_i2c_send((0x2A61 << 8) | I2C_SLAVE);
> -		break;
> -	}
> -
> -	return 0;
> -}
> -
>  static void noinline pcm049_init_lowlevel(void)
>  {
>  	struct dpll_param core = OMAP4_CORE_DPLL_PARAM_19M2_DDR200;
> @@ -89,7 +58,7 @@ static void noinline pcm049_init_lowlevel(void)
>  	omap4_ddr_init(&ddr_regs_mt42L64M64_3_200_mhz, &core);
>  
>  	/* Set VCORE1 = 1.3 V, VCORE2 = VCORE3 = 1.21V */
> -	scale_vcores();
> +	omap4_scale_vcores();
>  
>  	writel(CM_SYS_CLKSEL_19M2, CM_SYS_CLKSEL);
>  
> diff --git a/arch/arm/mach-omap/include/mach/omap4-silicon.h b/arch/arm/mach-omap/include/mach/omap4-silicon.h
> index db0dfdf..f8d3396 100644
> --- a/arch/arm/mach-omap/include/mach/omap4-silicon.h
> +++ b/arch/arm/mach-omap/include/mach/omap4-silicon.h
> @@ -175,5 +175,6 @@ struct dpll_param;
>  void omap4_ddr_init(const struct ddr_regs *, const struct dpll_param *);
>  void omap4_power_i2c_send(u32);
>  unsigned int omap4_revision(void);
> +noinline int omap4_scale_vcores(void);
>  
>  #endif
> diff --git a/arch/arm/mach-omap/omap4_generic.c b/arch/arm/mach-omap/omap4_generic.c
> index c6e46e6..8352470 100644
> --- a/arch/arm/mach-omap/omap4_generic.c
> +++ b/arch/arm/mach-omap/omap4_generic.c
> @@ -419,3 +419,34 @@ enum omap_boot_src omap4_bootsrc(void)
>  		return OMAP_BOOTSRC_NAND;
>  	return OMAP_BOOTSRC_UNKNOWN;
>  }
> +
> +#define I2C_SLAVE 0x12
> +
> +noinline int omap4_scale_vcores(void)
> +{
> +	unsigned int rev = omap4_revision();
> +
> +	/* For VC bypass only VCOREx_CGF_FORCE  is necessary and
> +	 * VCOREx_CFG_VOLTAGE  changes can be discarded
> +	 */
> +	writel(0, OMAP44XX_PRM_VC_CFG_I2C_MODE);
> +	writel(0x6026, OMAP44XX_PRM_VC_CFG_I2C_CLK);
> +
> +	/* set VCORE1 force VSEL */
> +	omap4_power_i2c_send((0x3A55 << 8) | I2C_SLAVE);
> +
> +	/* FIXME: set VCORE2 force VSEL, Check the reset value */
> +	omap4_power_i2c_send((0x295B << 8) | I2C_SLAVE);
> +
> +	/* set VCORE3 force VSEL */
> +	switch (rev) {
> +	case OMAP4430_ES2_0:
> +		omap4_power_i2c_send((0x2961 << 8) | I2C_SLAVE);
> +		break;
> +	case OMAP4430_ES2_1:
> +		omap4_power_i2c_send((0x2A61 << 8) | I2C_SLAVE);
> +		break;
> +	}
> +
> +	return 0;
> +}
> -- 
> 1.7.0.4
> 
> 
> _______________________________________________
> barebox mailing list
> barebox at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/barebox
> 

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



More information about the barebox mailing list