/* VDD2 */ #define OMAP3630_VDD_CORE_OPP50_UV 1000000 #define OMAP3630_VDD_CORE_OPP100_UV 1200000 struct omap_volt_data omap36xx_vddcore_volt_data[] = { VOLT_DATA_DEFINE(OMAP3630_VDD_CORE_OPP50_UV, OMAP3630_CONTROL_FUSE_OPP50_VDD2, 0xf4, 0x0c), VOLT_DATA_DEFINE(OMAP3630_VDD_CORE_OPP100_UV, OMAP3630_CONTROL_FUSE_OPP100_VDD2, 0xf9, 0x16), VOLT_DATA_DEFINE(0, 0, 0, 0), }; /* OPP data */ static struct omap_opp_def __initdata omap34xx_opp_def_list[] = { /* MPU OPP1 */ OPP_INITIALIZER("mpu", true, 125000000, OMAP3430_VDD_MPU_OPP1_UV), /* MPU OPP2 */ OPP_INITIALIZER("mpu", true, 250000000, OMAP3430_VDD_MPU_OPP2_UV), /* MPU OPP3 */ OPP_INITIALIZER("mpu", true, 500000000, OMAP3430_VDD_MPU_OPP3_UV), /* MPU OPP4 */ OPP_INITIALIZER("mpu", true, 550000000, OMAP3430_VDD_MPU_OPP4_UV), /* MPU OPP5 */ OPP_INITIALIZER("mpu", true, 600000000, OMAP3430_VDD_MPU_OPP5_UV), /* MPU OPP6 */ OPP_INITIALIZER("mpu", false, 720000000, 1350000), /* * L3 OPP1 - 41.5 MHz is disabled because: The voltage for that OPP is * almost the same than the one at 83MHz thus providing very little * gain for the power point of view. In term of energy it will even
{.main_vdd_volt = OMAP4430_VDD_IVA_OPP100_UV, .dep_vdd_volt = OMAP4430_VDD_CORE_OPP100_UV}, {.main_vdd_volt = OMAP4430_VDD_IVA_OPPTURBO_UV, .dep_vdd_volt = OMAP4430_VDD_CORE_OPP100_UV}, }; struct omap_vdd_dep_info omap443x_vddiva_dep_info[] = { { .name = "core", .dep_table = omap443x_vdd_iva_core_dep_data, .nr_dep_entries = ARRAY_SIZE(omap443x_vdd_iva_core_dep_data), }, {.name = NULL, .dep_table = NULL, .nr_dep_entries = 0}, }; static struct omap_opp_def __initdata omap443x_opp_def_list[] = { /* MPU OPP1 - OPP50 */ OPP_INITIALIZER("mpu", "dpll_mpu_ck", "mpu", true, 300000000, OMAP4430_VDD_MPU_OPP50_UV), /* MPU OPP2 - OPP100 */ OPP_INITIALIZER("mpu", "dpll_mpu_ck", "mpu", true, 600000000, OMAP4430_VDD_MPU_OPP100_UV), /* MPU OPP3 - OPP-Turbo */ OPP_INITIALIZER("mpu", "dpll_mpu_ck", "mpu", true, 800000000, OMAP4430_VDD_MPU_OPPTURBO_UV), /* MPU OPP4 - OPP-NT */ OPP_INITIALIZER("mpu", "dpll_mpu_ck", "mpu", true, 1008000000, OMAP4430_VDD_MPU_OPPNITRO_UV), /* MPU OPP5 - OPP-SB */ OPP_INITIALIZER("mpu", "dpll_mpu_ck", "mpu", false, 1200000000, OMAP4430_VDD_MPU_OPPNITRO_UV), /* L3 OPP1 - OPP50 */ OPP_INITIALIZER("l3_main_1", "virt_l3_ck", "core", true, 100000000, OMAP4430_VDD_CORE_OPP50_UV), /* L3 OPP2 - OPP100, OPP-Turbo, OPP-SB */ OPP_INITIALIZER("l3_main_1", "virt_l3_ck", "core", true, 200000000, OMAP4430_VDD_CORE_OPP100_UV), /* IVA OPP1 - OPP50 */ OPP_INITIALIZER("iva", "dpll_iva_m5x2_ck", "iva", true, 133000000, OMAP4430_VDD_IVA_OPP50_UV), /* IVA OPP2 - OPP100 */
* kind, whether express or implied; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #include <linux/module.h> #include <linux/opp.h> #include <plat/cpu.h> #include <plat/omap_device.h> #include "omap_opp_data.h" #include "pm.h" static struct omap_opp_def __initdata omap34xx_opp_def_list[] = { /* MPU OPP1 */ OPP_INITIALIZER("mpu", true, 125000000, 975000), /* MPU OPP2 */ OPP_INITIALIZER("mpu", true, 250000000, 1075000), /* MPU OPP3 */ OPP_INITIALIZER("mpu", true, 500000000, 1200000), /* MPU OPP4 */ OPP_INITIALIZER("mpu", true, 550000000, 1270000), /* MPU OPP5 */ OPP_INITIALIZER("mpu", true, 600000000, 1350000), /* MPU OPP6 */ OPP_INITIALIZER("mpu", false, 720000000, 1350000), /* * L3 OPP1 - 41.5 MHz is disabled because: The voltage for that OPP is * almost the same than the one at 83MHz thus providing very little * gain for the power point of view. In term of energy it will even
static struct device_info dsp_dev_info = { .hwmod_name = "dsp_c0", .clk_name = "virt_dpll_dsp_ck", .voltdm_name = "mm", }; static struct device_info gpu_dev_info = { .hwmod_name = "gpu", .clk_name = "dpll_core_h14x2_ck", .voltdm_name = "mm", }; static struct omap_opp_def omap543x_opp_def_list[] = { /* MPU OPP1 - OPPLOW */ OPP_INITIALIZER(&mpu_dev_info, true, 499200000, OMAP54XX_VDD_MPU_OPP_LOW), /* MPU OPP2 - OPPNOM: */ OPP_INITIALIZER(&mpu_dev_info, true, 1000000000, OMAP54XX_VDD_MPU_OPP_NOM), /* MPU OPP3 - OPP-HIGH */ OPP_INITIALIZER(&mpu_dev_info, true, 1500000000, OMAP54XX_VDD_MPU_OPP_HIGH), /* MPU OPP4 - OPP-SPEEDBIN */ OPP_INITIALIZER(&mpu_dev_info, false, 1699200000, OMAP54XX_VDD_MPU_OPP_SB), /* L3 OPP2 - OPPNOM */ OPP_INITIALIZER(&l3_dev_info, true, 265920000, OMAP54XX_VDD_CORE_OPP_NOM), /* HSI OPP2 - OPPNOM */ OPP_INITIALIZER(&hsi_dev_info, true, 192000000, OMAP54XX_VDD_CORE_OPP_NOM), /* CORE_IPU_ISS_BOOST_CLK OPP2 - OPPNOM */ OPP_INITIALIZER(&ipu_dev_info, true, 425500000, OMAP54XX_VDD_CORE_OPP_NOM),
/* VDD2 */ #define OMAP3630_VDD_CORE_OPP50_UV 1000000 #define OMAP3630_VDD_CORE_OPP100_UV 1200000 struct omap_volt_data omap36xx_vddcore_volt_data[] = { VOLT_DATA_DEFINE(OMAP3630_VDD_CORE_OPP50_UV, 0, OMAP3630_CONTROL_FUSE_OPP50_VDD2, 0xf4, 0x0c, OMAP_ABB_NONE), VOLT_DATA_DEFINE(OMAP3630_VDD_CORE_OPP100_UV, 0, OMAP3630_CONTROL_FUSE_OPP100_VDD2, 0xf9, 0x16, OMAP_ABB_NONE), VOLT_DATA_DEFINE(0, 0, 0, 0, 0, 0), }; /* OPP data */ static struct omap_opp_def __initdata omap34xx_opp_def_list[] = { /* MPU OPP1 */ OPP_INITIALIZER("mpu", "dpll1_ck", "mpu_iva", true, 125000000, OMAP3430_VDD_MPU_OPP1_UV), /* MPU OPP2 */ OPP_INITIALIZER("mpu", "dpll1_ck", "mpu_iva", true, 250000000, OMAP3430_VDD_MPU_OPP2_UV), /* MPU OPP3 */ OPP_INITIALIZER("mpu", "dpll1_ck", "mpu_iva", true, 500000000, OMAP3430_VDD_MPU_OPP3_UV), /* MPU OPP4 */ OPP_INITIALIZER("mpu", "dpll1_ck", "mpu_iva", true, 550000000, OMAP3430_VDD_MPU_OPP4_UV), /* MPU OPP5 */ OPP_INITIALIZER("mpu", "dpll1_ck", "mpu_iva", true, 600000000, OMAP3430_VDD_MPU_OPP5_UV), /* * L3 OPP1 - 41.5 MHz is disabled because: The voltage for that OPP is * almost the same than the one at 83MHz thus providing very little * gain for the power point of view. In term of energy it will even * increase the consumption due to the very negative performance * impact that frequency will do to the MPU and the whole system in
VOLT_DATA_DEFINE(0, 0, 0, 0), }; #define OMAP4430_VDD_CORE_OPP50_UV 1025000 #define OMAP4430_VDD_CORE_OPP100_UV 1200000 struct omap_volt_data omap44xx_vdd_core_volt_data[] = { VOLT_DATA_DEFINE(OMAP4430_VDD_CORE_OPP50_UV, OMAP44XX_CONTROL_FUSE_CORE_OPP50, 0xf4, 0x0c), VOLT_DATA_DEFINE(OMAP4430_VDD_CORE_OPP100_UV, OMAP44XX_CONTROL_FUSE_CORE_OPP100, 0xf9, 0x16), VOLT_DATA_DEFINE(0, 0, 0, 0), }; static struct omap_opp_def __initdata omap44xx_opp_def_list[] = { /* MPU OPP1 - OPP50 */ OPP_INITIALIZER("mpu", true, 300000000, OMAP4430_VDD_MPU_OPP50_UV), /* MPU OPP2 - OPP100 */ OPP_INITIALIZER("mpu", true, 600000000, OMAP4430_VDD_MPU_OPP100_UV), /* MPU OPP3 - OPP-Turbo */ OPP_INITIALIZER("mpu", true, 800000000, OMAP4430_VDD_MPU_OPPTURBO_UV), /* MPU OPP4 - OPP-SB */ OPP_INITIALIZER("mpu", true, 1008000000, OMAP4430_VDD_MPU_OPPNITRO_UV), /* L3 OPP1 - OPP50 */ OPP_INITIALIZER("l3_main_1", true, 100000000, OMAP4430_VDD_CORE_OPP50_UV), /* L3 OPP2 - OPP100, OPP-Turbo, OPP-SB */ OPP_INITIALIZER("l3_main_1", true, 200000000, OMAP4430_VDD_CORE_OPP100_UV), /* IVA OPP1 - OPP50 */ OPP_INITIALIZER("iva", true, 133000000, OMAP4430_VDD_IVA_OPP50_UV), /* IVA OPP2 - OPP100 */ OPP_INITIALIZER("iva", true, 266100000, OMAP4430_VDD_IVA_OPP100_UV), /* IVA OPP3 - OPP-Turbo */
}; struct omap_vdd_dep_info omap54xx_vddmm_dep_info[] = { { .name = "core", .dep_table = omap54xx_vdd_mm_core_dep_data, .nr_dep_entries = ARRAY_SIZE(omap54xx_vdd_mm_core_dep_data), }, {.name = NULL, .dep_table = NULL, .nr_dep_entries = 0}, }; static struct omap_opp_def __initdata omap54xx_opp_def_list[] = { #ifdef CONFIG_MACH_OMAP_5430ZEBU /* MPU OPP1 - OPPLOW */ OPP_INITIALIZER("mpu", "virt_dpll_mpu_ck", "mpu", true, 550000000, OMAP5430_VDD_MPU_OPP_LOW), /* MPU OPP2 - OPPNOM */ OPP_INITIALIZER("mpu", "virt_dpll_mpu_ck", "mpu", true, 1100000000, OMAP5430_VDD_MPU_OPP_NOM), /* MPU OPP3 - OPP-HIGH */ OPP_INITIALIZER("mpu", "virt_dpll_mpu_ck", "mpu", false, 1500000000, OMAP5430_VDD_MPU_OPP_HIGH), #else /* MPU OPP1 - OPPLOW */ OPP_INITIALIZER("mpu", "virt_dpll_mpu_ck", "mpu", true, 400000000, OMAP5430_VDD_MPU_OPP_LOW), /* MPU OPP2 - OPPNOM */ OPP_INITIALIZER("mpu", "virt_dpll_mpu_ck", "mpu", true, 800000000, OMAP5430_VDD_MPU_OPP_NOM), /* MPU OPP3 - OPP-HIGH */ OPP_INITIALIZER("mpu", "virt_dpll_mpu_ck", "mpu", false, 1100000000, OMAP5430_VDD_MPU_OPP_HIGH), #endif /* L3 OPP1 - OPPLOW */ OPP_INITIALIZER("l3_main_1", "virt_l3_ck", "core", false, 133000000, OMAP5430_VDD_CORE_OPP_LOW), /* L3 OPP2 - OPPNOM */