diff options
| author | mattis fjallstrom <mattis@acm.org> | 2015-06-08 10:31:44 -0700 |
|---|---|---|
| committer | mattis fjallstrom <mattis@acm.org> | 2015-06-08 10:31:44 -0700 |
| commit | 9bdcd4a656be073b446823908c98d0a8c441f0df (patch) | |
| tree | 29e28d72a361873a9f36a3dc3766953e9283898b | |
| parent | eff019527fa7b27e872d9e2ec35e2487fd71a90a (diff) | |
| download | olio-linux-3.10-9bdcd4a656be073b446823908c98d0a8c441f0df.tar.xz olio-linux-3.10-9bdcd4a656be073b446823908c98d0a8c441f0df.zip | |
Setting top speed to 800MHz. Depends on the CONFIG_MACH_OMAP3_H1_DVT2 flag being set.
Change-Id: I8ab0d33210e47e4dac861cc6ffcab70cd92a6ea6
| -rw-r--r-- | arch/arm/mach-omap2/omap_opp_data.h | 3 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/opp3xxx_data.c | 41 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/pm-debug.c | 2 | ||||
| -rw-r--r-- | arch/arm/mach-omap2/voltagedomains3xxx_data.c | 5 |
4 files changed, 50 insertions, 1 deletions
diff --git a/arch/arm/mach-omap2/omap_opp_data.h b/arch/arm/mach-omap2/omap_opp_data.h index 336fdfcf88b..93a489969a2 100644 --- a/arch/arm/mach-omap2/omap_opp_data.h +++ b/arch/arm/mach-omap2/omap_opp_data.h @@ -87,6 +87,9 @@ extern int __init omap_init_opp_table(struct omap_opp_def *opp_def, extern struct omap_volt_data omap34xx_vddmpu_volt_data[]; extern struct omap_volt_data omap34xx_vddcore_volt_data[]; extern struct omap_volt_data omap36xx_vddmpu_volt_data[]; +#ifdef CONFIG_MACH_OMAP3_H1_DVT2 +extern struct omap_volt_data omap36xx_olioh1_vddmpu_volt_data[]; +#endif extern struct omap_volt_data omap36xx_vddcore_volt_data[]; extern struct omap_volt_data omap443x_vdd_mpu_volt_data[]; diff --git a/arch/arm/mach-omap2/opp3xxx_data.c b/arch/arm/mach-omap2/opp3xxx_data.c index 0f5af3377af..f715f6ffd1d 100644 --- a/arch/arm/mach-omap2/opp3xxx_data.c +++ b/arch/arm/mach-omap2/opp3xxx_data.c @@ -73,6 +73,16 @@ struct omap_volt_data omap36xx_vddmpu_volt_data[] = { VOLT_DATA_DEFINE(0, 0, 0, 0), }; + +struct omap_volt_data omap36xx_olioh1_vddmpu_volt_data[] = { + VOLT_DATA_DEFINE(OMAP3630_VDD_MPU_OPP50_UV, OMAP3630_CONTROL_FUSE_OPP50_VDD1, 0xf4, 0x0c), + VOLT_DATA_DEFINE(OMAP3630_VDD_MPU_OPP100_UV, OMAP3630_CONTROL_FUSE_OPP100_VDD1, 0xf9, 0x16), + VOLT_DATA_DEFINE(OMAP3630_VDD_MPU_OPP120_UV, OMAP3630_CONTROL_FUSE_OPP120_VDD1, 0xfa, 0x23), + /* VOLT_DATA_DEFINE(OMAP3630_VDD_MPU_OPP1G_UV, OMAP3630_CONTROL_FUSE_OPP1G_VDD1, 0xfa, 0x27), */ + VOLT_DATA_DEFINE(0, 0, 0, 0), +}; + + /* VDD2 */ #define OMAP3630_VDD_CORE_OPP50_UV 1000000 @@ -149,6 +159,32 @@ static struct omap_opp_def __initdata omap36xx_opp_def_list[] = { OPP_INITIALIZER("iva", false, 800000000, OMAP3630_VDD_MPU_OPP1G_UV), }; +static struct omap_opp_def __initdata omap36xx_olioh1_opp_def_list[] = { + /* MPU OPP1 - OPP50 */ + OPP_INITIALIZER("mpu", true, 300000000, OMAP3630_VDD_MPU_OPP50_UV), + /* MPU OPP2 - OPP100 */ + OPP_INITIALIZER("mpu", true, 600000000, OMAP3630_VDD_MPU_OPP100_UV), + /* MPU OPP3 - OPP-Turbo */ + OPP_INITIALIZER("mpu", true, 800000000, OMAP3630_VDD_MPU_OPP120_UV), + /* MPU OPP4 - OPP-SB */ + /* OPP_INITIALIZER("mpu", true, 1000000000, OMAP3630_VDD_MPU_OPP1G_UV), */ + + /* L3 OPP1 - OPP50 */ + OPP_INITIALIZER("l3_main", true, 100000000, OMAP3630_VDD_CORE_OPP50_UV), + /* L3 OPP2 - OPP100, OPP-Turbo, OPP-SB */ + OPP_INITIALIZER("l3_main", true, 200000000, OMAP3630_VDD_CORE_OPP100_UV), + + /* DSP OPP1 - OPP50 */ + OPP_INITIALIZER("iva", true, 260000000, OMAP3630_VDD_MPU_OPP50_UV), + /* DSP OPP2 - OPP100 */ + OPP_INITIALIZER("iva", true, 520000000, OMAP3630_VDD_MPU_OPP100_UV), + /* DSP OPP3 - OPP-Turbo */ + OPP_INITIALIZER("iva", false, 660000000, OMAP3630_VDD_MPU_OPP120_UV), + /* DSP OPP4 - OPP-SB */ + OPP_INITIALIZER("iva", false, 800000000, OMAP3630_VDD_MPU_OPP1G_UV), +}; + + /** * omap3_opp_init() - initialize omap3 opp table */ @@ -160,8 +196,13 @@ int __init omap3_opp_init(void) return r; if (cpu_is_omap3630()) +#ifdef CONFIG_MACH_OMAP3_H1_DVT2 + r = omap_init_opp_table(omap36xx_olioh1_opp_def_list, + ARRAY_SIZE(omap36xx_olioh1_opp_def_list)); +#else r = omap_init_opp_table(omap36xx_opp_def_list, ARRAY_SIZE(omap36xx_opp_def_list)); +#endif else r = omap_init_opp_table(omap34xx_opp_def_list, ARRAY_SIZE(omap34xx_opp_def_list)); diff --git a/arch/arm/mach-omap2/pm-debug.c b/arch/arm/mach-omap2/pm-debug.c index 94036241cec..119e6756883 100644 --- a/arch/arm/mach-omap2/pm-debug.c +++ b/arch/arm/mach-omap2/pm-debug.c @@ -39,7 +39,7 @@ #include "pm-debug-regs.h" /* enable_off_mode is the runtime flag for enable/disable of offmode */ -u32 enable_off_mode; +u32 enable_off_mode = 1; /* * global_disable_off_mode supercedes enable_off_mode and keeps diff --git a/arch/arm/mach-omap2/voltagedomains3xxx_data.c b/arch/arm/mach-omap2/voltagedomains3xxx_data.c index 261bb7cb4e6..c9a39119036 100644 --- a/arch/arm/mach-omap2/voltagedomains3xxx_data.c +++ b/arch/arm/mach-omap2/voltagedomains3xxx_data.c @@ -109,8 +109,13 @@ void __init omap3xxx_voltagedomains_init(void) */ #ifdef CONFIG_PM_OPP if (cpu_is_omap3630()) { +#ifdef CONFIG_MACH_OMAP3_H1_DVT2 + omap3_voltdm_mpu.volt_data = omap36xx_olioh1_vddmpu_volt_data; + omap3_voltdm_core.volt_data = omap36xx_vddcore_volt_data; +#else omap3_voltdm_mpu.volt_data = omap36xx_vddmpu_volt_data; omap3_voltdm_core.volt_data = omap36xx_vddcore_volt_data; +#endif /* CONFIG_MACH_OMAP3_H1_DVT2 */ } else { omap3_voltdm_mpu.volt_data = omap34xx_vddmpu_volt_data; omap3_voltdm_core.volt_data = omap34xx_vddcore_volt_data; |