diff options
author | Nishanth Menon <nm@ti.com> | 2011-11-02 16:25:48 -0500 |
---|---|---|
committer | Ziyann <jaraidaniel@gmail.com> | 2014-10-01 12:55:24 +0200 |
commit | 0dd72eb681889b2111e06f0b4b9469edba277793 (patch) | |
tree | 67c872d909694b5ce725b7593b6f1a51f1ffaa58 | |
parent | 40a6f730bef2ab35760a596d866454baac4e0dd6 (diff) | |
download | kernel_samsung_tuna-0dd72eb681889b2111e06f0b4b9469edba277793.zip kernel_samsung_tuna-0dd72eb681889b2111e06f0b4b9469edba277793.tar.gz kernel_samsung_tuna-0dd72eb681889b2111e06f0b4b9469edba277793.tar.bz2 |
OMAP4460: OPP/voltage: 1.5GHz needs different SR ntarget
nTarget value for 1.5GHz uses the wrong nTarget which was meant
for 1.2GHz. this can cause instabilities all over the place.
add a 10mV to Vnom of 1.2GHz as the start voltage for 1.5GHz
and use the proper nTarget values meant for 1.5GHz.
Change-Id: Ib0a669a75675149c98a7da208e662a91a9de0b84
Reported-by: Jean-Yves Caron <j-caron@ti.com>
Signed-off-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Oleksandr Kozaruk <oleksandr.kozaruk@ti.com>
Conflicts:
arch/arm/mach-omap2/opp4xxx_data.c
-rw-r--r-- | arch/arm/mach-omap2/control.h | 1 | ||||
-rwxr-xr-x[-rw-r--r--] | arch/arm/mach-omap2/opp4xxx_data.c | 5 |
2 files changed, 5 insertions, 1 deletions
diff --git a/arch/arm/mach-omap2/control.h b/arch/arm/mach-omap2/control.h index ccebb26..5de7bad 100644 --- a/arch/arm/mach-omap2/control.h +++ b/arch/arm/mach-omap2/control.h @@ -193,6 +193,7 @@ #define OMAP44XX_CONTROL_FUSE_MPU_OPP100 0x243 #define OMAP44XX_CONTROL_FUSE_MPU_OPPTURBO 0x246 #define OMAP44XX_CONTROL_FUSE_MPU_OPPNITRO 0x249 +#define OMAP44XX_CONTROL_FUSE_MPU_OPPNITROSB 0x24C #define OMAP44XX_CONTROL_FUSE_CORE_OPP50 0x254 #define OMAP44XX_CONTROL_FUSE_CORE_OPP100 0x257 #define OMAP44XX_CONTROL_FUSE_CORE_OPP100OV 0x25A diff --git a/arch/arm/mach-omap2/opp4xxx_data.c b/arch/arm/mach-omap2/opp4xxx_data.c index 1a17c92..7ff30de 100644..100755 --- a/arch/arm/mach-omap2/opp4xxx_data.c +++ b/arch/arm/mach-omap2/opp4xxx_data.c @@ -160,12 +160,14 @@ static struct omap_opp_def __initdata omap443x_opp_def_list[] = { #define OMAP4460_VDD_MPU_OPP100_UV 1203000 #define OMAP4460_VDD_MPU_OPPTURBO_UV 1317000 #define OMAP4460_VDD_MPU_OPPNITRO_UV 1380000 +#define OMAP4460_VDD_MPU_OPPNITROSB_UV 1390000 struct omap_volt_data omap446x_vdd_mpu_volt_data[] = { VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPP50_UV, 10000, OMAP44XX_CONTROL_FUSE_MPU_OPP50, 0xf4, 0x0c, OMAP_ABB_NOMINAL_OPP), VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPP100_UV, 0, OMAP44XX_CONTROL_FUSE_MPU_OPP100, 0xf9, 0x16, OMAP_ABB_NOMINAL_OPP), VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPPTURBO_UV, 0, OMAP44XX_CONTROL_FUSE_MPU_OPPTURBO, 0xfa, 0x23, OMAP_ABB_NOMINAL_OPP), VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPPNITRO_UV, 0, OMAP44XX_CONTROL_FUSE_MPU_OPPNITRO, 0xfa, 0x27, OMAP_ABB_FAST_OPP), + VOLT_DATA_DEFINE(OMAP4460_VDD_MPU_OPPNITROSB_UV, OMAP44XX_CONTROL_FUSE_MPU_OPPNITROSB, 0xfa, 0x27, OMAP_ABB_FAST_OPP), VOLT_DATA_DEFINE(0, 0, 0, 0, 0, 0), }; @@ -199,6 +201,7 @@ static struct omap_vdd_dep_volt omap446x_vdd_mpu_core_dep_data[] = { {.main_vdd_volt = OMAP4460_VDD_MPU_OPP100_UV, .dep_vdd_volt = OMAP4460_VDD_CORE_OPP100_UV}, {.main_vdd_volt = OMAP4460_VDD_MPU_OPPTURBO_UV, .dep_vdd_volt = OMAP4460_VDD_CORE_OPP100_UV}, {.main_vdd_volt = OMAP4460_VDD_MPU_OPPNITRO_UV, .dep_vdd_volt = OMAP4460_VDD_CORE_OPP100_UV}, + {.main_vdd_volt = OMAP4460_VDD_MPU_OPPNITROSB_UV, .dep_vdd_volt = OMAP4460_VDD_CORE_OPP100_UV}, }; struct omap_vdd_dep_info omap446x_vddmpu_dep_info[] = { @@ -236,7 +239,7 @@ static struct omap_opp_def __initdata omap446x_opp_def_list[] = { /* MPU OPP4 - OPP-Nitro */ OPP_INITIALIZER("mpu", "virt_dpll_mpu_ck", "mpu", false, 1200000000, OMAP4460_VDD_MPU_OPPNITRO_UV), /* MPU OPP4 - OPP-Nitro SpeedBin */ - OPP_INITIALIZER("mpu", "virt_dpll_mpu_ck", "mpu", false, 1500000000, OMAP4460_VDD_MPU_OPPNITRO_UV), + OPP_INITIALIZER("mpu", "virt_dpll_mpu_ck", "mpu", false, 1500000000, OMAP4460_VDD_MPU_OPPNITROSB_UV), /* L3 OPP1 - OPP50 */ OPP_INITIALIZER("l3_main_1", "virt_l3_ck", "core", true, 100000000, OMAP4460_VDD_CORE_OPP50_UV), /* L3 OPP2 - OPP100 */ |