From d5720d33bc7c434f9a023dbb62c795538f976b7a Mon Sep 17 00:00:00 2001 From: Hebbar Gururaja Date: Fri, 14 Jun 2013 15:13:55 +0530 Subject: [PATCH] ARM: OMAP2+: AM335x: update OPP50 handling Recent commit from Greg (OPP Table fix for 720MHZ and ZCE support) added OPP120 support for PG 2.x. OPP120 support needs to be disabled when the board is booted and running at OPP50. This is as per the Advisory 1.0.15 (ARM Cortex-A8: OPP50 Operation on MPU Domain Not Supported) Voltage checked here are Core Voltage and not MPU. Hence, When here correct the preprocessors to indicate correct voltages. As per Sitara AM335x ARM Cortex -A8 Microprocessors (MPUs) data sheet (SPRS717F) APRIL 2013 available at http://www.ti.com/lit/ds/symlink/am3359.pdf Table 3-7 and 3-9 has been updated to show the defined OPPs on ZCZ and ZCE packages respectively Signed-off-by: Hebbar Gururaja --- arch/arm/mach-omap2/board-am335xevm.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c index d687c83..8f79e26 100644 --- a/arch/arm/mach-omap2/board-am335xevm.c +++ b/arch/arm/mach-omap2/board-am335xevm.c @@ -2181,15 +2181,17 @@ static int am33xx_evm_tx_clk_dly_phy_fixup(struct phy_device *phydev) return 0; } -#define AM33XX_VDD_MPU_OPP50_UV 1100000 +#define AM33XX_VDD_CORE_OPP50_UV 1100000 #define AM33XX_OPP120_FREQ 600000000 #define AM33XX_OPPTURBO_FREQ 720000000 -#define AM33XX_ES2_0_VDD_MPU_OPP50_UV 950000 +#define AM33XX_ES2_0_VDD_CORE_OPP50_UV 950000 +#define AM33XX_ES2_0_OPP120_FREQ 720000000 #define AM33XX_ES2_0_OPPTURBO_FREQ 800000000 #define AM33XX_ES2_0_OPPNITRO_FREQ 1000000000 -#define AM33XX_ES2_1_VDD_MPU_OPP50_UV 950000 +#define AM33XX_ES2_1_VDD_CORE_OPP50_UV 950000 +#define AM33XX_ES2_1_OPP120_FREQ 720000000 #define AM33XX_ES2_1_OPPTURBO_FREQ 800000000 #define AM33XX_ES2_1_OPPNITRO_FREQ 1000000000 @@ -2232,7 +2234,7 @@ static void am335x_opp_update(void) rev = omap_rev(); switch (rev) { case AM335X_REV_ES1_0: - if (voltage_uv <= AM33XX_VDD_MPU_OPP50_UV) { + if (voltage_uv <= AM33XX_VDD_CORE_OPP50_UV) { /* * disable the higher freqs - we dont care about * the results @@ -2242,12 +2244,14 @@ static void am335x_opp_update(void) } break; case AM335X_REV_ES2_0: - if (voltage_uv <= AM33XX_ES2_0_VDD_MPU_OPP50_UV) { + if (voltage_uv <= AM33XX_ES2_0_VDD_CORE_OPP50_UV) { /* * disable the higher freqs - we dont care about * the results */ opp_disable(mpu_dev, + AM33XX_ES2_0_OPP120_FREQ); + opp_disable(mpu_dev, AM33XX_ES2_0_OPPTURBO_FREQ); opp_disable(mpu_dev, AM33XX_ES2_0_OPPNITRO_FREQ); @@ -2256,12 +2260,14 @@ static void am335x_opp_update(void) case AM335X_REV_ES2_1: /* FALLTHROUGH */ default: - if (voltage_uv <= AM33XX_ES2_1_VDD_MPU_OPP50_UV) { + if (voltage_uv <= AM33XX_ES2_1_VDD_CORE_OPP50_UV) { /* * disable the higher freqs - we dont care about * the results */ opp_disable(mpu_dev, + AM33XX_ES2_1_OPP120_FREQ); + opp_disable(mpu_dev, AM33XX_ES2_1_OPPTURBO_FREQ); opp_disable(mpu_dev, AM33XX_ES2_1_OPPNITRO_FREQ); -- 1.9.1