#include "control.h" #include "omap_opp_data.h" #include "pm.h" /* * Structures containing OMAP4430 voltage supported and various * voltage dependent data for each VDD. */ #define OMAP4430_VDD_MPU_OPP50_UV 1025000 #define OMAP4430_VDD_MPU_OPP100_UV 1200000 #define OMAP4430_VDD_MPU_OPPTURBO_UV 1325000 #define OMAP4430_VDD_MPU_OPPNITRO_UV 1388000 struct omap_volt_data omap443x_vdd_mpu_volt_data[] = { VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPP50_UV, 0, OMAP44XX_CONTROL_FUSE_MPU_OPP50, 0xf4, 0x0c, OMAP_ABB_NOMINAL_OPP), VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPP100_UV, 0, OMAP44XX_CONTROL_FUSE_MPU_OPP100, 0xf9, 0x16, OMAP_ABB_NOMINAL_OPP), VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPPTURBO_UV, 0, OMAP44XX_CONTROL_FUSE_MPU_OPPTURBO, 0xfa, 0x23, OMAP_ABB_NOMINAL_OPP), VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPPNITRO_UV, 0, OMAP44XX_CONTROL_FUSE_MPU_OPPNITRO, 0xfa, 0x27, OMAP_ABB_FAST_OPP), VOLT_DATA_DEFINE(0, 0, 0, 0, 0, 0), }; #define OMAP4430_VDD_IVA_OPP50_UV 950000 #define OMAP4430_VDD_IVA_OPP100_UV 1114000 #define OMAP4430_VDD_IVA_OPPTURBO_UV 1291000 struct omap_volt_data omap443x_vdd_iva_volt_data[] = { VOLT_DATA_DEFINE(OMAP4430_VDD_IVA_OPP50_UV, 0, OMAP44XX_CONTROL_FUSE_IVA_OPP50, 0xf4, 0x0c, OMAP_ABB_NOMINAL_OPP), VOLT_DATA_DEFINE(OMAP4430_VDD_IVA_OPP100_UV, 0, OMAP44XX_CONTROL_FUSE_IVA_OPP100, 0xf9, 0x16, OMAP_ABB_NOMINAL_OPP), VOLT_DATA_DEFINE(OMAP4430_VDD_IVA_OPPTURBO_UV, 0, OMAP44XX_CONTROL_FUSE_IVA_OPPTURBO, 0xfa, 0x23, OMAP_ABB_NOMINAL_OPP), VOLT_DATA_DEFINE(0, 0, 0, 0, 0, 0),
#include "control.h" #include "omap_opp_data.h" #include "pm.h" /* 34xx */ /* VDD1 */ #define OMAP3430_VDD_MPU_OPP1_UV 975000 #define OMAP3430_VDD_MPU_OPP2_UV 1075000 #define OMAP3430_VDD_MPU_OPP3_UV 1200000 #define OMAP3430_VDD_MPU_OPP4_UV 1270000 #define OMAP3430_VDD_MPU_OPP5_UV 1350000 struct omap_volt_data omap34xx_vddmpu_volt_data[] = { VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP1_UV, OMAP343X_CONTROL_FUSE_OPP1_VDD1, 0xf4, 0x0c), VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP2_UV, OMAP343X_CONTROL_FUSE_OPP2_VDD1, 0xf4, 0x0c), VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP3_UV, OMAP343X_CONTROL_FUSE_OPP3_VDD1, 0xf9, 0x18), VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP4_UV, OMAP343X_CONTROL_FUSE_OPP4_VDD1, 0xf9, 0x18), VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP5_UV, OMAP343X_CONTROL_FUSE_OPP5_VDD1, 0xf9, 0x18), VOLT_DATA_DEFINE(0, 0, 0, 0), }; /* VDD2 */ #define OMAP3430_VDD_CORE_OPP1_UV 975000 #define OMAP3430_VDD_CORE_OPP2_UV 1050000 #define OMAP3430_VDD_CORE_OPP3_UV 1150000 struct omap_volt_data omap34xx_vddcore_volt_data[] = { VOLT_DATA_DEFINE(OMAP3430_VDD_CORE_OPP1_UV, OMAP343X_CONTROL_FUSE_OPP1_VDD2, 0xf4, 0x0c),
#define OMAP54XX_VDD_MM_OPP_LOW 880000 #define OMAP54XX_VDD_MM_OPP_NOM 1025000 #define OMAP54XX_VDD_MM_OPP_OD 1120000 struct omap_volt_data omap543x_vdd_mm_volt_data[] = { OMAP5_VOLT_DATA_DEFINE(OMAP54XX_VDD_MM_OPP_LOW, OMAP54XX_CONTROL_FUSE_MM_SVT_OPP_LOW, OMAP54XX_CONTROL_FUSE_MM_LVT_OPP_LOW, 0xf4, 0x0c, OMAP_ABB_NOMINAL_OPP), OMAP5_VOLT_DATA_DEFINE(OMAP54XX_VDD_MM_OPP_NOM, OMAP54XX_CONTROL_FUSE_MM_SVT_OPP_NOM, OMAP54XX_CONTROL_FUSE_MM_LVT_OPP_NOM, 0xf9, 0x16, OMAP_ABB_NOMINAL_OPP), OMAP5_VOLT_DATA_DEFINE(OMAP54XX_VDD_MM_OPP_OD, OMAP54XX_CONTROL_FUSE_MM_SVT_OPP_OD, OMAP54XX_CONTROL_FUSE_MM_LVT_OPP_OD, 0xfa, 0x23, OMAP_ABB_NOMINAL_OPP), OMAP5_VOLT_DATA_DEFINE(0, 0, 0, 0, 0, 0), }; #define OMAP54XX_VDD_CORE_OPP_NOM 1040000 struct omap_volt_data omap543x_vdd_core_volt_data[] = { VOLT_DATA_DEFINE(OMAP54XX_VDD_CORE_OPP_NOM, OMAP54XX_CONTROL_FUSE_CORE_OPP_NOM, 0xf9, 0x16, OMAP_ABB_NO_LDO), VOLT_DATA_DEFINE(0, 0, 0, 0, 0), }; /* Dependency of domains are as follows for OMAP543x (OPP based): * MPU IVA CORE * 50 50 100 * 50 100+ 100 * 100+ 50 100 * 100+ 100+ 100 */ /* OMAP 5430 MPU Core VDD dependency table */ static struct omap_vdd_dep_volt omap543x_vdd_mpu_core_dep_data[] = { {.main_vdd_volt = OMAP54XX_VDD_MPU_OPP_LOW, .dep_vdd_volt = OMAP54XX_VDD_CORE_OPP_NOM}, {.main_vdd_volt = OMAP54XX_VDD_MPU_OPP_NOM, .dep_vdd_volt = OMAP54XX_VDD_CORE_OPP_NOM},
#include <plat/common.h> struct omap_opp_def omap36xx_opp_def_list_shared[15]; /*shared*/ /* 34xx */ /* VDD1 */ #define OMAP3430_VDD_MPU_OPP1_UV 975000 #define OMAP3430_VDD_MPU_OPP2_UV 1075000 #define OMAP3430_VDD_MPU_OPP3_UV 1200000 #define OMAP3430_VDD_MPU_OPP4_UV 1270000 #define OMAP3430_VDD_MPU_OPP5_UV 1350000 struct omap_volt_data omap34xx_vddmpu_volt_data[] = { VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP1_UV, 0, OMAP343X_CONTROL_FUSE_OPP1_VDD1, 0xf4, 0x0c, OMAP_ABB_NONE), VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP2_UV, 0, OMAP343X_CONTROL_FUSE_OPP2_VDD1, 0xf4, 0x0c, OMAP_ABB_NONE), VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP3_UV, 0, OMAP343X_CONTROL_FUSE_OPP3_VDD1, 0xf9, 0x18, OMAP_ABB_NONE), VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP4_UV, 0, OMAP343X_CONTROL_FUSE_OPP4_VDD1, 0xf9, 0x18, OMAP_ABB_NONE), VOLT_DATA_DEFINE(OMAP3430_VDD_MPU_OPP5_UV, 0, OMAP343X_CONTROL_FUSE_OPP5_VDD1, 0xf9, 0x18, OMAP_ABB_NONE), VOLT_DATA_DEFINE(0, 0, 0, 0, 0, 0), }; /* VDD2 */ #define OMAP3430_VDD_CORE_OPP1_UV 975000 #define OMAP3430_VDD_CORE_OPP2_UV 1050000 #define OMAP3430_VDD_CORE_OPP3_UV 1150000 struct omap_volt_data omap34xx_vddcore_volt_data[] = { VOLT_DATA_DEFINE(OMAP3430_VDD_CORE_OPP1_UV, 0, OMAP343X_CONTROL_FUSE_OPP1_VDD2, 0xf4, 0x0c, OMAP_ABB_NONE),
#include "control.h" #include "omap_opp_data.h" #include "pm.h" /* * Structures containing OMAP4430 voltage supported and various * voltage dependent data for each VDD. */ #define OMAP4430_VDD_MPU_OPP50_UV 1025000 #define OMAP4430_VDD_MPU_OPP100_UV 1200000 #define OMAP4430_VDD_MPU_OPPTURBO_UV 1313000 #define OMAP4430_VDD_MPU_OPPNITRO_UV 1375000 struct omap_volt_data omap44xx_vdd_mpu_volt_data[] = { VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPP50_UV, OMAP44XX_CONTROL_FUSE_MPU_OPP50, 0xf4, 0x0c), VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPP100_UV, OMAP44XX_CONTROL_FUSE_MPU_OPP100, 0xf9, 0x16), VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPPTURBO_UV, OMAP44XX_CONTROL_FUSE_MPU_OPPTURBO, 0xfa, 0x23), VOLT_DATA_DEFINE(OMAP4430_VDD_MPU_OPPNITRO_UV, OMAP44XX_CONTROL_FUSE_MPU_OPPNITRO, 0xfa, 0x27), VOLT_DATA_DEFINE(0, 0, 0, 0), }; #define OMAP4430_VDD_IVA_OPP50_UV 1013000 #define OMAP4430_VDD_IVA_OPP100_UV 1188000 #define OMAP4430_VDD_IVA_OPPTURBO_UV 1300000 struct omap_volt_data omap44xx_vdd_iva_volt_data[] = { VOLT_DATA_DEFINE(OMAP4430_VDD_IVA_OPP50_UV, OMAP44XX_CONTROL_FUSE_IVA_OPP50, 0xf4, 0x0c), VOLT_DATA_DEFINE(OMAP4430_VDD_IVA_OPP100_UV, OMAP44XX_CONTROL_FUSE_IVA_OPP100, 0xf9, 0x16), VOLT_DATA_DEFINE(OMAP4430_VDD_IVA_OPPTURBO_UV, OMAP44XX_CONTROL_FUSE_IVA_OPPTURBO, 0xfa, 0x23), VOLT_DATA_DEFINE(0, 0, 0, 0),
.vddmin = OMAP5_VP_MM_VLIMITTO_VDDMIN, .vddmax = OMAP5_VP_MM_VLIMITTO_VDDMAX, }; struct omap_vc_param omap54xx_mm_vc_data = { .on = OMAP5_ON_VOLTAGE_UV, .onlp = OMAP5_ONLP_VOLTAGE_UV, .ret = OMAP5_RET_VOLTAGE_UV, .off = OMAP5_OFF_VOLTAGE_UV, }; #define OMAP5430_VDD_CORE_OPP_LOW 1150000 #define OMAP5430_VDD_CORE_OPP_NOM 1150000 struct omap_volt_data omap54xx_vdd_core_volt_data[] = { VOLT_DATA_DEFINE(OMAP5430_VDD_CORE_OPP_LOW, 0, OMAP54XX_CONTROL_FUSE_CORE_OPP50, 0xf4, 0x0c, OMAP_ABB_NO_LDO), VOLT_DATA_DEFINE(OMAP5430_VDD_CORE_OPP_NOM, 0, OMAP54XX_CONTROL_FUSE_CORE_OPP100, 0xf9, 0x16, OMAP_ABB_NO_LDO), VOLT_DATA_DEFINE(0, 0, 0, 0, 0, 0), }; struct omap_vp_param omap54xx_core_vp_data = { .vddmin = OMAP5_VP_CORE_VLIMITTO_VDDMIN, .vddmax = OMAP5_VP_CORE_VLIMITTO_VDDMAX, }; struct omap_vc_param omap54xx_core_vc_data = { .on = OMAP5_ON_VOLTAGE_UV, .onlp = OMAP5_ONLP_VOLTAGE_UV, .ret = OMAP5_RET_VOLTAGE_UV, .off = OMAP5_OFF_VOLTAGE_UV, };