diff options
author | Taras Kondratiuk <taras@ti.com> | 2011-10-25 18:16:41 -0500 |
---|---|---|
committer | Ziyann <jaraidaniel@gmail.com> | 2014-10-01 12:55:17 +0200 |
commit | b6f983a2f024da6f62db479b2dd5e460a7efbf70 (patch) | |
tree | b0333164c806857eb4f45fa8b67ddbc8daacfd76 /arch/arm/mach-omap2/opp4xxx_data.c | |
parent | a13903f85f394b45015bd215e17057ba8c8c7712 (diff) | |
download | kernel_samsung_tuna-b6f983a2f024da6f62db479b2dd5e460a7efbf70.zip kernel_samsung_tuna-b6f983a2f024da6f62db479b2dd5e460a7efbf70.tar.gz kernel_samsung_tuna-b6f983a2f024da6f62db479b2dd5e460a7efbf70.tar.bz2 |
OMAP4: voltage: Add 4470 voltage definitions
Add structures containing OMAP4470 voltage supported and various
voltage dependent data for each VDD.
Data is based on Data Manual Operating Condition Addendum v0.2 for 4470.
Change-Id: I8baa6ccf26786b4ee1764fe96f312ae7fb65ccbf
Signed-off-by: Taras Kondratiuk <taras@ti.com>
Diffstat (limited to 'arch/arm/mach-omap2/opp4xxx_data.c')
-rw-r--r-- | arch/arm/mach-omap2/opp4xxx_data.c | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/opp4xxx_data.c b/arch/arm/mach-omap2/opp4xxx_data.c index f58db35..dc7043e 100644 --- a/arch/arm/mach-omap2/opp4xxx_data.c +++ b/arch/arm/mach-omap2/opp4xxx_data.c @@ -285,6 +285,80 @@ static struct omap_opp_def __initdata omap446x_opp_def_list[] = { OPP_INITIALIZER("aess", "abe_clk", "iva", true, 196608000, OMAP4460_VDD_IVA_OPP100_UV), }; +/* + * Structures containing OMAP4470 voltage supported and various + * voltage dependent data for each VDD. + */ +#define OMAP4470_VDD_MPU_OPP50_UV 1025000 +#define OMAP4470_VDD_MPU_OPP100_UV 1200000 +#define OMAP4470_VDD_MPU_OPPTURBO_UV 1312000 +#define OMAP4470_VDD_MPU_OPPNITRO_UV 1375000 + +struct omap_volt_data omap447x_vdd_mpu_volt_data[] = { + VOLT_DATA_DEFINE(OMAP4470_VDD_MPU_OPP50_UV, OMAP44XX_CONTROL_FUSE_MPU_OPP50, 0xf4, 0x0c, OMAP_ABB_NOMINAL_OPP), + VOLT_DATA_DEFINE(OMAP4470_VDD_MPU_OPP100_UV, OMAP44XX_CONTROL_FUSE_MPU_OPP100, 0xf9, 0x16, OMAP_ABB_NOMINAL_OPP), + VOLT_DATA_DEFINE(OMAP4470_VDD_MPU_OPPTURBO_UV, OMAP44XX_CONTROL_FUSE_MPU_OPPTURBO, 0xfa, 0x23, OMAP_ABB_FAST_OPP), + VOLT_DATA_DEFINE(OMAP4470_VDD_MPU_OPPNITRO_UV, OMAP44XX_CONTROL_FUSE_MPU_OPPNITRO, 0xfa, 0x27, OMAP_ABB_FAST_OPP), + VOLT_DATA_DEFINE(0, 0, 0, 0, 0), +}; + +#define OMAP4470_VDD_IVA_OPP50_UV 950000 +#define OMAP4470_VDD_IVA_OPP100_UV 1137000 +#define OMAP4470_VDD_IVA_OPPTURBO_UV 1287000 +#define OMAP4470_VDD_IVA_OPPNITRO_UV 1375000 + +struct omap_volt_data omap447x_vdd_iva_volt_data[] = { + VOLT_DATA_DEFINE(OMAP4470_VDD_IVA_OPP50_UV, OMAP44XX_CONTROL_FUSE_IVA_OPP50, 0xf4, 0x0c, OMAP_ABB_NOMINAL_OPP), + VOLT_DATA_DEFINE(OMAP4470_VDD_IVA_OPP100_UV, OMAP44XX_CONTROL_FUSE_IVA_OPP100, 0xf9, 0x16, OMAP_ABB_NOMINAL_OPP), + VOLT_DATA_DEFINE(OMAP4470_VDD_IVA_OPPTURBO_UV, OMAP44XX_CONTROL_FUSE_IVA_OPPTURBO, 0xfa, 0x23, OMAP_ABB_NOMINAL_OPP), + VOLT_DATA_DEFINE(OMAP4470_VDD_IVA_OPPNITRO_UV, OMAP44XX_CONTROL_FUSE_IVA_OPPNITRO, 0xfa, 0x23, OMAP_ABB_FAST_OPP), + VOLT_DATA_DEFINE(0, 0, 0, 0, 0), +}; + +#define OMAP4470_VDD_CORE_OPP50_UV 962000 +#define OMAP4470_VDD_CORE_OPP100_UV 1125000 +#define OMAP4470_VDD_CORE_OPP100_OV_UV 1250000 + +struct omap_volt_data omap447x_vdd_core_volt_data[] = { + VOLT_DATA_DEFINE(OMAP4470_VDD_CORE_OPP50_UV, OMAP44XX_CONTROL_FUSE_CORE_OPP50, 0xf4, 0x0c, OMAP_ABB_NONE), + VOLT_DATA_DEFINE(OMAP4470_VDD_CORE_OPP100_UV, OMAP44XX_CONTROL_FUSE_CORE_OPP100, 0xf9, 0x16, OMAP_ABB_NONE), + VOLT_DATA_DEFINE(OMAP4470_VDD_CORE_OPP100_OV_UV, OMAP44XX_CONTROL_FUSE_CORE_OPP100OV, 0xf9, 0x16, OMAP_ABB_NONE), + VOLT_DATA_DEFINE(0, 0, 0, 0, 0), +}; + +/* OMAP 4470 MPU Core VDD dependency table */ +static struct omap_vdd_dep_volt omap447x_vdd_mpu_core_dep_data[] = { + {.main_vdd_volt = OMAP4470_VDD_MPU_OPP50_UV, .dep_vdd_volt = OMAP4470_VDD_CORE_OPP50_UV}, + {.main_vdd_volt = OMAP4470_VDD_MPU_OPP100_UV, .dep_vdd_volt = OMAP4470_VDD_CORE_OPP100_UV}, + {.main_vdd_volt = OMAP4470_VDD_MPU_OPPTURBO_UV, .dep_vdd_volt = OMAP4470_VDD_CORE_OPP100_UV}, + {.main_vdd_volt = OMAP4470_VDD_MPU_OPPNITRO_UV, .dep_vdd_volt = OMAP4470_VDD_CORE_OPP100_UV}, +}; + +struct omap_vdd_dep_info omap447x_vddmpu_dep_info[] = { + { + .name = "core", + .dep_table = omap447x_vdd_mpu_core_dep_data, + .nr_dep_entries = ARRAY_SIZE(omap447x_vdd_mpu_core_dep_data), + }, + {.name = NULL, .dep_table = NULL, .nr_dep_entries = 0}, +}; + +/* OMAP 4470 MPU IVA VDD dependency table */ +static struct omap_vdd_dep_volt omap447x_vdd_iva_core_dep_data[] = { + {.main_vdd_volt = OMAP4470_VDD_IVA_OPP50_UV, .dep_vdd_volt = OMAP4470_VDD_CORE_OPP50_UV}, + {.main_vdd_volt = OMAP4470_VDD_IVA_OPP100_UV, .dep_vdd_volt = OMAP4470_VDD_CORE_OPP100_UV}, + {.main_vdd_volt = OMAP4470_VDD_IVA_OPPTURBO_UV, .dep_vdd_volt = OMAP4470_VDD_CORE_OPP100_UV}, + {.main_vdd_volt = OMAP4470_VDD_IVA_OPPNITRO_UV, .dep_vdd_volt = OMAP4470_VDD_CORE_OPP100_UV}, +}; + +struct omap_vdd_dep_info omap447x_vddiva_dep_info[] = { + { + .name = "core", + .dep_table = omap447x_vdd_iva_core_dep_data, + .nr_dep_entries = ARRAY_SIZE(omap447x_vdd_iva_core_dep_data), + }, + {.name = NULL, .dep_table = NULL, .nr_dep_entries = 0}, +}; /** * omap4_mpu_opp_enable() - helper to enable the OPP * @freq: frequency to enable |