diff options
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-omap2/vc.c | 69 | ||||
-rw-r--r-- | arch/arm/mach-omap2/vc.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/vc3xxx_data.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-omap2/vc44xx_data.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-omap2/voltage.c | 31 | ||||
-rw-r--r-- | arch/arm/mach-omap2/voltage.h | 10 | ||||
-rw-r--r-- | arch/arm/mach-omap2/voltagedomains3xxx_data.c | 6 | ||||
-rw-r--r-- | arch/arm/mach-omap2/voltagedomains44xx_data.c | 9 | ||||
-rw-r--r-- | arch/arm/mach-omap2/vp.c | 57 | ||||
-rw-r--r-- | arch/arm/mach-omap2/vp.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-omap2/vp3xxx_data.c | 1 | ||||
-rw-r--r-- | arch/arm/mach-omap2/vp44xx_data.c | 1 |
12 files changed, 79 insertions, 111 deletions
diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c index 1bdbe7c1561..f1c73cbe3cb 100644 --- a/arch/arm/mach-omap2/vc.c +++ b/arch/arm/mach-omap2/vc.c | |||
@@ -46,7 +46,7 @@ int omap_vc_pre_scale(struct voltagedomain *voltdm, | |||
46 | return -ENODATA; | 46 | return -ENODATA; |
47 | } | 47 | } |
48 | 48 | ||
49 | if (!vdd->read_reg || !vdd->write_reg) { | 49 | if (!voltdm->read || !voltdm->write) { |
50 | pr_err("%s: No read/write API for accessing vdd_%s regs\n", | 50 | pr_err("%s: No read/write API for accessing vdd_%s regs\n", |
51 | __func__, voltdm->name); | 51 | __func__, voltdm->name); |
52 | return -EINVAL; | 52 | return -EINVAL; |
@@ -58,24 +58,22 @@ int omap_vc_pre_scale(struct voltagedomain *voltdm, | |||
58 | volt_data = NULL; | 58 | volt_data = NULL; |
59 | 59 | ||
60 | *target_vsel = vdd->pmic_info->uv_to_vsel(target_volt); | 60 | *target_vsel = vdd->pmic_info->uv_to_vsel(target_volt); |
61 | *current_vsel = vdd->read_reg(vdd->vp_data->vp_common->prm_mod, vdd->vp_data->voltage); | 61 | *current_vsel = voltdm->read(vdd->vp_data->voltage); |
62 | 62 | ||
63 | /* Setting the ON voltage to the new target voltage */ | 63 | /* Setting the ON voltage to the new target voltage */ |
64 | vc_cmdval = vdd->read_reg(vc->common->prm_mod, vc->cmdval_reg); | 64 | vc_cmdval = voltdm->read(vc->cmdval_reg); |
65 | vc_cmdval &= ~vc->common->cmd_on_mask; | 65 | vc_cmdval &= ~vc->common->cmd_on_mask; |
66 | vc_cmdval |= (*target_vsel << vc->common->cmd_on_shift); | 66 | vc_cmdval |= (*target_vsel << vc->common->cmd_on_shift); |
67 | vdd->write_reg(vc_cmdval, vc->common->prm_mod, vc->cmdval_reg); | 67 | voltdm->write(vc_cmdval, vc->cmdval_reg); |
68 | 68 | ||
69 | /* Setting vp errorgain based on the voltage */ | 69 | /* Setting vp errorgain based on the voltage */ |
70 | if (volt_data) { | 70 | if (volt_data) { |
71 | vp_errgain_val = vdd->read_reg(vdd->vp_data->vp_common->prm_mod, | 71 | vp_errgain_val = voltdm->read(vdd->vp_data->vpconfig); |
72 | vdd->vp_data->vpconfig); | ||
73 | vdd->vp_rt_data.vpconfig_errorgain = volt_data->vp_errgain; | 72 | vdd->vp_rt_data.vpconfig_errorgain = volt_data->vp_errgain; |
74 | vp_errgain_val &= ~vp_common->vpconfig_errorgain_mask; | 73 | vp_errgain_val &= ~vp_common->vpconfig_errorgain_mask; |
75 | vp_errgain_val |= vdd->vp_rt_data.vpconfig_errorgain << | 74 | vp_errgain_val |= vdd->vp_rt_data.vpconfig_errorgain << |
76 | vp_common->vpconfig_errorgain_shift; | 75 | vp_common->vpconfig_errorgain_shift; |
77 | vdd->write_reg(vp_errgain_val, vdd->vp_data->vp_common->prm_mod, | 76 | voltdm->write(vp_errgain_val, vdd->vp_data->vpconfig); |
78 | vdd->vp_data->vpconfig); | ||
79 | } | 77 | } |
80 | 78 | ||
81 | return 0; | 79 | return 0; |
@@ -120,11 +118,10 @@ int omap_vc_bypass_scale(struct voltagedomain *voltdm, | |||
120 | (vdd->pmic_info->i2c_slave_addr << | 118 | (vdd->pmic_info->i2c_slave_addr << |
121 | vc->common->slaveaddr_shift); | 119 | vc->common->slaveaddr_shift); |
122 | 120 | ||
123 | vdd->write_reg(vc_bypass_value, vc->common->prm_mod, vc_bypass_val_reg); | 121 | voltdm->write(vc_bypass_value, vc_bypass_val_reg); |
124 | vdd->write_reg(vc_bypass_value | vc_valid, vc->common->prm_mod, | 122 | voltdm->write(vc_bypass_value | vc_valid, vc_bypass_val_reg); |
125 | vc_bypass_val_reg); | ||
126 | 123 | ||
127 | vc_bypass_value = vdd->read_reg(vc->common->prm_mod, vc_bypass_val_reg); | 124 | vc_bypass_value = voltdm->read(vc_bypass_val_reg); |
128 | /* | 125 | /* |
129 | * Loop till the bypass command is acknowledged from the SMPS. | 126 | * Loop till the bypass command is acknowledged from the SMPS. |
130 | * NOTE: This is legacy code. The loop count and retry count needs | 127 | * NOTE: This is legacy code. The loop count and retry count needs |
@@ -143,8 +140,7 @@ int omap_vc_bypass_scale(struct voltagedomain *voltdm, | |||
143 | loop_cnt = 0; | 140 | loop_cnt = 0; |
144 | udelay(10); | 141 | udelay(10); |
145 | } | 142 | } |
146 | vc_bypass_value = vdd->read_reg(vc->common->prm_mod, | 143 | vc_bypass_value = voltdm->read(vc_bypass_val_reg); |
147 | vc_bypass_val_reg); | ||
148 | } | 144 | } |
149 | 145 | ||
150 | omap_vc_post_scale(voltdm, target_volt, target_vsel, current_vsel); | 146 | omap_vc_post_scale(voltdm, target_volt, target_vsel, current_vsel); |
@@ -153,18 +149,13 @@ int omap_vc_bypass_scale(struct voltagedomain *voltdm, | |||
153 | 149 | ||
154 | static void __init omap3_vfsm_init(struct voltagedomain *voltdm) | 150 | static void __init omap3_vfsm_init(struct voltagedomain *voltdm) |
155 | { | 151 | { |
156 | struct omap_vc_channel *vc = voltdm->vc; | ||
157 | struct omap_vdd_info *vdd = voltdm->vdd; | ||
158 | |||
159 | /* | 152 | /* |
160 | * Voltage Manager FSM parameters init | 153 | * Voltage Manager FSM parameters init |
161 | * XXX This data should be passed in from the board file | 154 | * XXX This data should be passed in from the board file |
162 | */ | 155 | */ |
163 | vdd->write_reg(OMAP3_CLKSETUP, vc->common->prm_mod, OMAP3_PRM_CLKSETUP_OFFSET); | 156 | voltdm->write(OMAP3_CLKSETUP, OMAP3_PRM_CLKSETUP_OFFSET); |
164 | vdd->write_reg(OMAP3_VOLTOFFSET, vc->common->prm_mod, | 157 | voltdm->write(OMAP3_VOLTOFFSET, OMAP3_PRM_VOLTOFFSET_OFFSET); |
165 | OMAP3_PRM_VOLTOFFSET_OFFSET); | 158 | voltdm->write(OMAP3_VOLTSETUP2, OMAP3_PRM_VOLTSETUP2_OFFSET); |
166 | vdd->write_reg(OMAP3_VOLTSETUP2, vc->common->prm_mod, | ||
167 | OMAP3_PRM_VOLTSETUP2_OFFSET); | ||
168 | } | 159 | } |
169 | 160 | ||
170 | static void __init omap3_vc_init_channel(struct voltagedomain *voltdm) | 161 | static void __init omap3_vc_init_channel(struct voltagedomain *voltdm) |
@@ -187,16 +178,16 @@ static void __init omap3_vc_init_channel(struct voltagedomain *voltdm) | |||
187 | (onlp_vsel << vc->common->cmd_onlp_shift) | | 178 | (onlp_vsel << vc->common->cmd_onlp_shift) | |
188 | (ret_vsel << vc->common->cmd_ret_shift) | | 179 | (ret_vsel << vc->common->cmd_ret_shift) | |
189 | (off_vsel << vc->common->cmd_off_shift)); | 180 | (off_vsel << vc->common->cmd_off_shift)); |
190 | vdd->write_reg(vc_val, vc->common->prm_mod, vc->cmdval_reg); | 181 | voltdm->write(vc_val, vc->cmdval_reg); |
191 | 182 | ||
192 | /* | 183 | /* |
193 | * Generic VC parameters init | 184 | * Generic VC parameters init |
194 | * XXX This data should be abstracted out | 185 | * XXX This data should be abstracted out |
195 | */ | 186 | */ |
196 | vdd->write_reg(OMAP3430_CMD1_MASK | OMAP3430_RAV1_MASK, vc->common->prm_mod, | 187 | voltdm->write(OMAP3430_CMD1_MASK | OMAP3430_RAV1_MASK, |
197 | OMAP3_PRM_VC_CH_CONF_OFFSET); | 188 | OMAP3_PRM_VC_CH_CONF_OFFSET); |
198 | vdd->write_reg(OMAP3430_MCODE_SHIFT | OMAP3430_HSEN_MASK, vc->common->prm_mod, | 189 | voltdm->write(OMAP3430_MCODE_SHIFT | OMAP3430_HSEN_MASK, |
199 | OMAP3_PRM_VC_I2C_CFG_OFFSET); | 190 | OMAP3_PRM_VC_I2C_CFG_OFFSET); |
200 | 191 | ||
201 | omap3_vfsm_init(voltdm); | 192 | omap3_vfsm_init(voltdm); |
202 | 193 | ||
@@ -207,8 +198,6 @@ static void __init omap3_vc_init_channel(struct voltagedomain *voltdm) | |||
207 | /* OMAP4 specific voltage init functions */ | 198 | /* OMAP4 specific voltage init functions */ |
208 | static void __init omap4_vc_init_channel(struct voltagedomain *voltdm) | 199 | static void __init omap4_vc_init_channel(struct voltagedomain *voltdm) |
209 | { | 200 | { |
210 | struct omap_vc_channel *vc = voltdm->vc; | ||
211 | struct omap_vdd_info *vdd = voltdm->vdd; | ||
212 | static bool is_initialized; | 201 | static bool is_initialized; |
213 | u32 vc_val; | 202 | u32 vc_val; |
214 | 203 | ||
@@ -224,11 +213,11 @@ static void __init omap4_vc_init_channel(struct voltagedomain *voltdm) | |||
224 | vc_val = (OMAP4430_RAV_VDD_MPU_L_MASK | OMAP4430_CMD_VDD_MPU_L_MASK | | 213 | vc_val = (OMAP4430_RAV_VDD_MPU_L_MASK | OMAP4430_CMD_VDD_MPU_L_MASK | |
225 | OMAP4430_RAV_VDD_IVA_L_MASK | OMAP4430_CMD_VDD_IVA_L_MASK | | 214 | OMAP4430_RAV_VDD_IVA_L_MASK | OMAP4430_CMD_VDD_IVA_L_MASK | |
226 | OMAP4430_RAV_VDD_CORE_L_MASK | OMAP4430_CMD_VDD_CORE_L_MASK); | 215 | OMAP4430_RAV_VDD_CORE_L_MASK | OMAP4430_CMD_VDD_CORE_L_MASK); |
227 | vdd->write_reg(vc_val, vc->common->prm_mod, OMAP4_PRM_VC_CFG_CHANNEL_OFFSET); | 216 | voltdm->write(vc_val, OMAP4_PRM_VC_CFG_CHANNEL_OFFSET); |
228 | 217 | ||
229 | /* XXX These are magic numbers and do not belong! */ | 218 | /* XXX These are magic numbers and do not belong! */ |
230 | vc_val = (0x60 << OMAP4430_SCLL_SHIFT | 0x26 << OMAP4430_SCLH_SHIFT); | 219 | vc_val = (0x60 << OMAP4430_SCLL_SHIFT | 0x26 << OMAP4430_SCLH_SHIFT); |
231 | vdd->write_reg(vc_val, vc->common->prm_mod, OMAP4_PRM_VC_CFG_I2C_CLK_OFFSET); | 220 | voltdm->write(vc_val, OMAP4_PRM_VC_CFG_I2C_CLK_OFFSET); |
232 | 221 | ||
233 | is_initialized = true; | 222 | is_initialized = true; |
234 | } | 223 | } |
@@ -246,34 +235,30 @@ void __init omap_vc_init_channel(struct voltagedomain *voltdm) | |||
246 | return; | 235 | return; |
247 | } | 236 | } |
248 | 237 | ||
249 | if (!vdd->read_reg || !vdd->write_reg) { | 238 | if (!voltdm->read || !voltdm->write) { |
250 | pr_err("%s: No read/write API for accessing vdd_%s regs\n", | 239 | pr_err("%s: No read/write API for accessing vdd_%s regs\n", |
251 | __func__, voltdm->name); | 240 | __func__, voltdm->name); |
252 | return; | 241 | return; |
253 | } | 242 | } |
254 | 243 | ||
255 | /* Set up the SMPS_SA(i2c slave address in VC */ | 244 | /* Set up the SMPS_SA(i2c slave address in VC */ |
256 | vc_val = vdd->read_reg(vc->common->prm_mod, | 245 | vc_val = voltdm->read(vc->common->smps_sa_reg); |
257 | vc->common->smps_sa_reg); | ||
258 | vc_val &= ~vc->smps_sa_mask; | 246 | vc_val &= ~vc->smps_sa_mask; |
259 | vc_val |= vdd->pmic_info->i2c_slave_addr << vc->smps_sa_shift; | 247 | vc_val |= vdd->pmic_info->i2c_slave_addr << vc->smps_sa_shift; |
260 | vdd->write_reg(vc_val, vc->common->prm_mod, | 248 | voltdm->write(vc_val, vc->common->smps_sa_reg); |
261 | vc->common->smps_sa_reg); | ||
262 | 249 | ||
263 | /* Setup the VOLRA(pmic reg addr) in VC */ | 250 | /* Setup the VOLRA(pmic reg addr) in VC */ |
264 | vc_val = vdd->read_reg(vc->common->prm_mod, | 251 | vc_val = voltdm->read(vc->common->smps_volra_reg); |
265 | vc->common->smps_volra_reg); | ||
266 | vc_val &= ~vc->smps_volra_mask; | 252 | vc_val &= ~vc->smps_volra_mask; |
267 | vc_val |= vdd->pmic_info->volt_reg_addr << vc->smps_volra_shift; | 253 | vc_val |= vdd->pmic_info->volt_reg_addr << vc->smps_volra_shift; |
268 | vdd->write_reg(vc_val, vc->common->prm_mod, | 254 | voltdm->write(vc_val, vc->common->smps_volra_reg); |
269 | vc->common->smps_volra_reg); | ||
270 | 255 | ||
271 | /* Configure the setup times */ | 256 | /* Configure the setup times */ |
272 | vc_val = vdd->read_reg(vc->common->prm_mod, vdd->vfsm->voltsetup_reg); | 257 | vc_val = voltdm->read(vdd->vfsm->voltsetup_reg); |
273 | vc_val &= ~vdd->vfsm->voltsetup_mask; | 258 | vc_val &= ~vdd->vfsm->voltsetup_mask; |
274 | vc_val |= vdd->pmic_info->volt_setup_time << | 259 | vc_val |= vdd->pmic_info->volt_setup_time << |
275 | vdd->vfsm->voltsetup_shift; | 260 | vdd->vfsm->voltsetup_shift; |
276 | vdd->write_reg(vc_val, vc->common->prm_mod, vdd->vfsm->voltsetup_reg); | 261 | voltdm->write(vc_val, vdd->vfsm->voltsetup_reg); |
277 | 262 | ||
278 | if (cpu_is_omap34xx()) | 263 | if (cpu_is_omap34xx()) |
279 | omap3_vc_init_channel(voltdm); | 264 | omap3_vc_init_channel(voltdm); |
diff --git a/arch/arm/mach-omap2/vc.h b/arch/arm/mach-omap2/vc.h index 51d36a80b13..d0050f0ee6d 100644 --- a/arch/arm/mach-omap2/vc.h +++ b/arch/arm/mach-omap2/vc.h | |||
@@ -25,7 +25,6 @@ struct voltagedomain; | |||
25 | * struct omap_vc_common - per-VC register/bitfield data | 25 | * struct omap_vc_common - per-VC register/bitfield data |
26 | * @cmd_on_mask: ON bitmask in PRM_VC_CMD_VAL* register | 26 | * @cmd_on_mask: ON bitmask in PRM_VC_CMD_VAL* register |
27 | * @valid: VALID bitmask in PRM_VC_BYPASS_VAL register | 27 | * @valid: VALID bitmask in PRM_VC_BYPASS_VAL register |
28 | * @prm_mod: PRM module id used for PRM register access | ||
29 | * @smps_sa_reg: Offset of PRM_VC_SMPS_SA reg from PRM start | 28 | * @smps_sa_reg: Offset of PRM_VC_SMPS_SA reg from PRM start |
30 | * @smps_volra_reg: Offset of PRM_VC_SMPS_VOL_RA reg from PRM start | 29 | * @smps_volra_reg: Offset of PRM_VC_SMPS_VOL_RA reg from PRM start |
31 | * @bypass_val_reg: Offset of PRM_VC_BYPASS_VAL reg from PRM start | 30 | * @bypass_val_reg: Offset of PRM_VC_BYPASS_VAL reg from PRM start |
@@ -43,7 +42,6 @@ struct voltagedomain; | |||
43 | struct omap_vc_common { | 42 | struct omap_vc_common { |
44 | u32 cmd_on_mask; | 43 | u32 cmd_on_mask; |
45 | u32 valid; | 44 | u32 valid; |
46 | s16 prm_mod; | ||
47 | u8 smps_sa_reg; | 45 | u8 smps_sa_reg; |
48 | u8 smps_volra_reg; | 46 | u8 smps_volra_reg; |
49 | u8 bypass_val_reg; | 47 | u8 bypass_val_reg; |
diff --git a/arch/arm/mach-omap2/vc3xxx_data.c b/arch/arm/mach-omap2/vc3xxx_data.c index 1a17ed459cc..6b672030134 100644 --- a/arch/arm/mach-omap2/vc3xxx_data.c +++ b/arch/arm/mach-omap2/vc3xxx_data.c | |||
@@ -30,7 +30,6 @@ | |||
30 | * XXX This stuff presumably belongs in the vc3xxx.c or vc.c file. | 30 | * XXX This stuff presumably belongs in the vc3xxx.c or vc.c file. |
31 | */ | 31 | */ |
32 | static struct omap_vc_common omap3_vc_common = { | 32 | static struct omap_vc_common omap3_vc_common = { |
33 | .prm_mod = OMAP3430_GR_MOD, | ||
34 | .smps_sa_reg = OMAP3_PRM_VC_SMPS_SA_OFFSET, | 33 | .smps_sa_reg = OMAP3_PRM_VC_SMPS_SA_OFFSET, |
35 | .smps_volra_reg = OMAP3_PRM_VC_SMPS_VOL_RA_OFFSET, | 34 | .smps_volra_reg = OMAP3_PRM_VC_SMPS_VOL_RA_OFFSET, |
36 | .bypass_val_reg = OMAP3_PRM_VC_BYPASS_VAL_OFFSET, | 35 | .bypass_val_reg = OMAP3_PRM_VC_BYPASS_VAL_OFFSET, |
diff --git a/arch/arm/mach-omap2/vc44xx_data.c b/arch/arm/mach-omap2/vc44xx_data.c index 56f3f4a3787..e3125a370fa 100644 --- a/arch/arm/mach-omap2/vc44xx_data.c +++ b/arch/arm/mach-omap2/vc44xx_data.c | |||
@@ -31,7 +31,6 @@ | |||
31 | * XXX This stuff presumably belongs in the vc3xxx.c or vc.c file. | 31 | * XXX This stuff presumably belongs in the vc3xxx.c or vc.c file. |
32 | */ | 32 | */ |
33 | static const struct omap_vc_common omap4_vc_common = { | 33 | static const struct omap_vc_common omap4_vc_common = { |
34 | .prm_mod = OMAP4430_PRM_DEVICE_INST, | ||
35 | .smps_sa_reg = OMAP4_PRM_VC_SMPS_SA_OFFSET, | 34 | .smps_sa_reg = OMAP4_PRM_VC_SMPS_SA_OFFSET, |
36 | .smps_volra_reg = OMAP4_PRM_VC_VAL_SMPS_RA_VOL_OFFSET, | 35 | .smps_volra_reg = OMAP4_PRM_VC_VAL_SMPS_RA_VOL_OFFSET, |
37 | .bypass_val_reg = OMAP4_PRM_VC_VAL_BYPASS_OFFSET, | 36 | .bypass_val_reg = OMAP4_PRM_VC_VAL_BYPASS_OFFSET, |
diff --git a/arch/arm/mach-omap2/voltage.c b/arch/arm/mach-omap2/voltage.c index 9b9f01973d1..9f9f01465f6 100644 --- a/arch/arm/mach-omap2/voltage.c +++ b/arch/arm/mach-omap2/voltage.c | |||
@@ -46,27 +46,6 @@ static LIST_HEAD(voltdm_list); | |||
46 | #define VOLTAGE_DIR_SIZE 16 | 46 | #define VOLTAGE_DIR_SIZE 16 |
47 | static struct dentry *voltage_dir; | 47 | static struct dentry *voltage_dir; |
48 | 48 | ||
49 | static u32 omap3_voltage_read_reg(u16 mod, u8 offset) | ||
50 | { | ||
51 | return omap2_prm_read_mod_reg(mod, offset); | ||
52 | } | ||
53 | |||
54 | static void omap3_voltage_write_reg(u32 val, u16 mod, u8 offset) | ||
55 | { | ||
56 | omap2_prm_write_mod_reg(val, mod, offset); | ||
57 | } | ||
58 | |||
59 | static u32 omap4_voltage_read_reg(u16 mod, u8 offset) | ||
60 | { | ||
61 | return omap4_prminst_read_inst_reg(OMAP4430_PRM_PARTITION, | ||
62 | mod, offset); | ||
63 | } | ||
64 | |||
65 | static void omap4_voltage_write_reg(u32 val, u16 mod, u8 offset) | ||
66 | { | ||
67 | omap4_prminst_write_inst_reg(val, OMAP4430_PRM_PARTITION, mod, offset); | ||
68 | } | ||
69 | |||
70 | static int __init _config_common_vdd_data(struct voltagedomain *voltdm) | 49 | static int __init _config_common_vdd_data(struct voltagedomain *voltdm) |
71 | { | 50 | { |
72 | char *sys_ck_name; | 51 | char *sys_ck_name; |
@@ -183,15 +162,7 @@ static int __init omap_vdd_data_configure(struct voltagedomain *voltdm) | |||
183 | if (IS_ERR_VALUE(_config_common_vdd_data(voltdm))) | 162 | if (IS_ERR_VALUE(_config_common_vdd_data(voltdm))) |
184 | goto ovdc_out; | 163 | goto ovdc_out; |
185 | 164 | ||
186 | if (cpu_is_omap34xx()) { | 165 | ret = 0; |
187 | vdd->read_reg = omap3_voltage_read_reg; | ||
188 | vdd->write_reg = omap3_voltage_write_reg; | ||
189 | ret = 0; | ||
190 | } else if (cpu_is_omap44xx()) { | ||
191 | vdd->read_reg = omap4_voltage_read_reg; | ||
192 | vdd->write_reg = omap4_voltage_write_reg; | ||
193 | ret = 0; | ||
194 | } | ||
195 | 166 | ||
196 | ovdc_out: | 167 | ovdc_out: |
197 | return ret; | 168 | return ret; |
diff --git a/arch/arm/mach-omap2/voltage.h b/arch/arm/mach-omap2/voltage.h index 04e06266dbd..6a19cf39118 100644 --- a/arch/arm/mach-omap2/voltage.h +++ b/arch/arm/mach-omap2/voltage.h | |||
@@ -59,6 +59,9 @@ struct omap_vfsm_instance_data { | |||
59 | * @node: list_head linking all voltage domains | 59 | * @node: list_head linking all voltage domains |
60 | * @pwrdm_list: list_head linking all powerdomains in this voltagedomain | 60 | * @pwrdm_list: list_head linking all powerdomains in this voltagedomain |
61 | * @vc: pointer to VC channel associated with this voltagedomain | 61 | * @vc: pointer to VC channel associated with this voltagedomain |
62 | * @read: read a VC/VP register | ||
63 | * @write: write a VC/VP register | ||
64 | * @read: read-modify-write a VC/VP register | ||
62 | * @vdd: to be removed | 65 | * @vdd: to be removed |
63 | */ | 66 | */ |
64 | struct voltagedomain { | 67 | struct voltagedomain { |
@@ -68,6 +71,11 @@ struct voltagedomain { | |||
68 | struct list_head pwrdm_list; | 71 | struct list_head pwrdm_list; |
69 | struct omap_vc_channel *vc; | 72 | struct omap_vc_channel *vc; |
70 | 73 | ||
74 | /* VC/VP register access functions: SoC specific */ | ||
75 | u32 (*read) (u8 offset); | ||
76 | void (*write) (u32 val, u8 offset); | ||
77 | u32 (*rmw)(u32 mask, u32 bits, u8 offset); | ||
78 | |||
71 | struct omap_vdd_info *vdd; | 79 | struct omap_vdd_info *vdd; |
72 | }; | 80 | }; |
73 | 81 | ||
@@ -146,8 +154,6 @@ struct omap_vdd_info { | |||
146 | u32 curr_volt; | 154 | u32 curr_volt; |
147 | bool vp_enabled; | 155 | bool vp_enabled; |
148 | 156 | ||
149 | u32 (*read_reg) (u16 mod, u8 offset); | ||
150 | void (*write_reg) (u32 val, u16 mod, u8 offset); | ||
151 | int (*volt_scale) (struct voltagedomain *voltdm, | 157 | int (*volt_scale) (struct voltagedomain *voltdm, |
152 | unsigned long target_volt); | 158 | unsigned long target_volt); |
153 | }; | 159 | }; |
diff --git a/arch/arm/mach-omap2/voltagedomains3xxx_data.c b/arch/arm/mach-omap2/voltagedomains3xxx_data.c index ad8f05b6a88..1d667490bc9 100644 --- a/arch/arm/mach-omap2/voltagedomains3xxx_data.c +++ b/arch/arm/mach-omap2/voltagedomains3xxx_data.c | |||
@@ -56,6 +56,9 @@ static struct omap_vdd_info omap3_vdd2_info = { | |||
56 | static struct voltagedomain omap3_voltdm_mpu = { | 56 | static struct voltagedomain omap3_voltdm_mpu = { |
57 | .name = "mpu_iva", | 57 | .name = "mpu_iva", |
58 | .scalable = true, | 58 | .scalable = true, |
59 | .read = omap3_prm_vcvp_read, | ||
60 | .write = omap3_prm_vcvp_write, | ||
61 | .rmw = omap3_prm_vcvp_rmw, | ||
59 | .vc = &omap3_vc_mpu, | 62 | .vc = &omap3_vc_mpu, |
60 | .vdd = &omap3_vdd1_info, | 63 | .vdd = &omap3_vdd1_info, |
61 | }; | 64 | }; |
@@ -63,6 +66,9 @@ static struct voltagedomain omap3_voltdm_mpu = { | |||
63 | static struct voltagedomain omap3_voltdm_core = { | 66 | static struct voltagedomain omap3_voltdm_core = { |
64 | .name = "core", | 67 | .name = "core", |
65 | .scalable = true, | 68 | .scalable = true, |
69 | .read = omap3_prm_vcvp_read, | ||
70 | .write = omap3_prm_vcvp_write, | ||
71 | .rmw = omap3_prm_vcvp_rmw, | ||
66 | .vc = &omap3_vc_core, | 72 | .vc = &omap3_vc_core, |
67 | .vdd = &omap3_vdd2_info, | 73 | .vdd = &omap3_vdd2_info, |
68 | }; | 74 | }; |
diff --git a/arch/arm/mach-omap2/voltagedomains44xx_data.c b/arch/arm/mach-omap2/voltagedomains44xx_data.c index 43e1d381724..e435795d61b 100644 --- a/arch/arm/mach-omap2/voltagedomains44xx_data.c +++ b/arch/arm/mach-omap2/voltagedomains44xx_data.c | |||
@@ -62,6 +62,9 @@ static struct omap_vdd_info omap4_vdd_core_info = { | |||
62 | static struct voltagedomain omap4_voltdm_mpu = { | 62 | static struct voltagedomain omap4_voltdm_mpu = { |
63 | .name = "mpu", | 63 | .name = "mpu", |
64 | .scalable = true, | 64 | .scalable = true, |
65 | .read = omap4_prm_vcvp_read, | ||
66 | .write = omap4_prm_vcvp_write, | ||
67 | .rmw = omap4_prm_vcvp_rmw, | ||
65 | .vc = &omap4_vc_mpu, | 68 | .vc = &omap4_vc_mpu, |
66 | .vdd = &omap4_vdd_mpu_info, | 69 | .vdd = &omap4_vdd_mpu_info, |
67 | }; | 70 | }; |
@@ -69,6 +72,9 @@ static struct voltagedomain omap4_voltdm_mpu = { | |||
69 | static struct voltagedomain omap4_voltdm_iva = { | 72 | static struct voltagedomain omap4_voltdm_iva = { |
70 | .name = "iva", | 73 | .name = "iva", |
71 | .scalable = true, | 74 | .scalable = true, |
75 | .read = omap4_prm_vcvp_read, | ||
76 | .write = omap4_prm_vcvp_write, | ||
77 | .rmw = omap4_prm_vcvp_rmw, | ||
72 | .vc = &omap4_vc_iva, | 78 | .vc = &omap4_vc_iva, |
73 | .vdd = &omap4_vdd_iva_info, | 79 | .vdd = &omap4_vdd_iva_info, |
74 | }; | 80 | }; |
@@ -76,6 +82,9 @@ static struct voltagedomain omap4_voltdm_iva = { | |||
76 | static struct voltagedomain omap4_voltdm_core = { | 82 | static struct voltagedomain omap4_voltdm_core = { |
77 | .name = "core", | 83 | .name = "core", |
78 | .scalable = true, | 84 | .scalable = true, |
85 | .read = omap4_prm_vcvp_read, | ||
86 | .write = omap4_prm_vcvp_write, | ||
87 | .rmw = omap4_prm_vcvp_rmw, | ||
79 | .vc = &omap4_vc_core, | 88 | .vc = &omap4_vc_core, |
80 | .vdd = &omap4_vdd_core_info, | 89 | .vdd = &omap4_vdd_core_info, |
81 | }; | 90 | }; |
diff --git a/arch/arm/mach-omap2/vp.c b/arch/arm/mach-omap2/vp.c index 113c839f6e2..88ac742a38c 100644 --- a/arch/arm/mach-omap2/vp.c +++ b/arch/arm/mach-omap2/vp.c | |||
@@ -35,19 +35,19 @@ static void vp_latch_vsel(struct voltagedomain *voltdm) | |||
35 | 35 | ||
36 | vsel = vdd->pmic_info->uv_to_vsel(uvdc); | 36 | vsel = vdd->pmic_info->uv_to_vsel(uvdc); |
37 | 37 | ||
38 | vpconfig = vdd->read_reg(vp->vp_common->prm_mod, vp->vpconfig); | 38 | vpconfig = voltdm->read(vp->vpconfig); |
39 | vpconfig &= ~(vp->vp_common->vpconfig_initvoltage_mask | | 39 | vpconfig &= ~(vp->vp_common->vpconfig_initvoltage_mask | |
40 | vp->vp_common->vpconfig_initvdd); | 40 | vp->vp_common->vpconfig_initvdd); |
41 | vpconfig |= vsel << vp->vp_common->vpconfig_initvoltage_shift; | 41 | vpconfig |= vsel << vp->vp_common->vpconfig_initvoltage_shift; |
42 | 42 | ||
43 | vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig); | 43 | voltdm->write(vpconfig, vp->vpconfig); |
44 | 44 | ||
45 | /* Trigger initVDD value copy to voltage processor */ | 45 | /* Trigger initVDD value copy to voltage processor */ |
46 | vdd->write_reg((vpconfig | vp->vp_common->vpconfig_initvdd), | 46 | voltdm->write((vpconfig | vp->vp_common->vpconfig_initvdd), |
47 | vp->vp_common->prm_mod, vp->vpconfig); | 47 | vp->vpconfig); |
48 | 48 | ||
49 | /* Clear initVDD copy trigger bit */ | 49 | /* Clear initVDD copy trigger bit */ |
50 | vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig); | 50 | voltdm->write(vpconfig, vp->vpconfig); |
51 | } | 51 | } |
52 | 52 | ||
53 | /* Generic voltage init functions */ | 53 | /* Generic voltage init functions */ |
@@ -57,7 +57,7 @@ void __init omap_vp_init(struct voltagedomain *voltdm) | |||
57 | struct omap_vdd_info *vdd = voltdm->vdd; | 57 | struct omap_vdd_info *vdd = voltdm->vdd; |
58 | u32 vp_val; | 58 | u32 vp_val; |
59 | 59 | ||
60 | if (!vdd->read_reg || !vdd->write_reg) { | 60 | if (!voltdm->read || !voltdm->write) { |
61 | pr_err("%s: No read/write API for accessing vdd_%s regs\n", | 61 | pr_err("%s: No read/write API for accessing vdd_%s regs\n", |
62 | __func__, voltdm->name); | 62 | __func__, voltdm->name); |
63 | return; | 63 | return; |
@@ -67,19 +67,19 @@ void __init omap_vp_init(struct voltagedomain *voltdm) | |||
67 | (vdd->vp_rt_data.vpconfig_errorgain << | 67 | (vdd->vp_rt_data.vpconfig_errorgain << |
68 | vp->vp_common->vpconfig_errorgain_shift) | | 68 | vp->vp_common->vpconfig_errorgain_shift) | |
69 | vp->vp_common->vpconfig_timeouten; | 69 | vp->vp_common->vpconfig_timeouten; |
70 | vdd->write_reg(vp_val, vp->vp_common->prm_mod, vp->vpconfig); | 70 | voltdm->write(vp_val, vp->vpconfig); |
71 | 71 | ||
72 | vp_val = ((vdd->vp_rt_data.vstepmin_smpswaittimemin << | 72 | vp_val = ((vdd->vp_rt_data.vstepmin_smpswaittimemin << |
73 | vp->vp_common->vstepmin_smpswaittimemin_shift) | | 73 | vp->vp_common->vstepmin_smpswaittimemin_shift) | |
74 | (vdd->vp_rt_data.vstepmin_stepmin << | 74 | (vdd->vp_rt_data.vstepmin_stepmin << |
75 | vp->vp_common->vstepmin_stepmin_shift)); | 75 | vp->vp_common->vstepmin_stepmin_shift)); |
76 | vdd->write_reg(vp_val, vp->vp_common->prm_mod, vp->vstepmin); | 76 | voltdm->write(vp_val, vp->vstepmin); |
77 | 77 | ||
78 | vp_val = ((vdd->vp_rt_data.vstepmax_smpswaittimemax << | 78 | vp_val = ((vdd->vp_rt_data.vstepmax_smpswaittimemax << |
79 | vp->vp_common->vstepmax_smpswaittimemax_shift) | | 79 | vp->vp_common->vstepmax_smpswaittimemax_shift) | |
80 | (vdd->vp_rt_data.vstepmax_stepmax << | 80 | (vdd->vp_rt_data.vstepmax_stepmax << |
81 | vp->vp_common->vstepmax_stepmax_shift)); | 81 | vp->vp_common->vstepmax_stepmax_shift)); |
82 | vdd->write_reg(vp_val, vp->vp_common->prm_mod, vp->vstepmax); | 82 | voltdm->write(vp_val, vp->vstepmax); |
83 | 83 | ||
84 | vp_val = ((vdd->vp_rt_data.vlimitto_vddmax << | 84 | vp_val = ((vdd->vp_rt_data.vlimitto_vddmax << |
85 | vp->vp_common->vlimitto_vddmax_shift) | | 85 | vp->vp_common->vlimitto_vddmax_shift) | |
@@ -87,7 +87,7 @@ void __init omap_vp_init(struct voltagedomain *voltdm) | |||
87 | vp->vp_common->vlimitto_vddmin_shift) | | 87 | vp->vp_common->vlimitto_vddmin_shift) | |
88 | (vdd->vp_rt_data.vlimitto_timeout << | 88 | (vdd->vp_rt_data.vlimitto_timeout << |
89 | vp->vp_common->vlimitto_timeout_shift)); | 89 | vp->vp_common->vlimitto_timeout_shift)); |
90 | vdd->write_reg(vp_val, vp->vp_common->prm_mod, vp->vlimitto); | 90 | voltdm->write(vp_val, vp->vlimitto); |
91 | 91 | ||
92 | vp_debugfs_init(voltdm); | 92 | vp_debugfs_init(voltdm); |
93 | } | 93 | } |
@@ -97,7 +97,6 @@ int omap_vp_forceupdate_scale(struct voltagedomain *voltdm, | |||
97 | unsigned long target_volt) | 97 | unsigned long target_volt) |
98 | { | 98 | { |
99 | struct omap_vp_instance_data *vp = voltdm->vdd->vp_data; | 99 | struct omap_vp_instance_data *vp = voltdm->vdd->vp_data; |
100 | struct omap_vdd_info *vdd = voltdm->vdd; | ||
101 | u32 vpconfig; | 100 | u32 vpconfig; |
102 | u8 target_vsel, current_vsel; | 101 | u8 target_vsel, current_vsel; |
103 | int ret, timeout = 0; | 102 | int ret, timeout = 0; |
@@ -123,21 +122,21 @@ int omap_vp_forceupdate_scale(struct voltagedomain *voltdm, | |||
123 | } | 122 | } |
124 | 123 | ||
125 | /* Configure for VP-Force Update */ | 124 | /* Configure for VP-Force Update */ |
126 | vpconfig = vdd->read_reg(vp->vp_common->prm_mod, vp->vpconfig); | 125 | vpconfig = voltdm->read(vp->vpconfig); |
127 | vpconfig &= ~(vp->vp_common->vpconfig_initvdd | | 126 | vpconfig &= ~(vp->vp_common->vpconfig_initvdd | |
128 | vp->vp_common->vpconfig_forceupdate | | 127 | vp->vp_common->vpconfig_forceupdate | |
129 | vp->vp_common->vpconfig_initvoltage_mask); | 128 | vp->vp_common->vpconfig_initvoltage_mask); |
130 | vpconfig |= ((target_vsel << | 129 | vpconfig |= ((target_vsel << |
131 | vp->vp_common->vpconfig_initvoltage_shift)); | 130 | vp->vp_common->vpconfig_initvoltage_shift)); |
132 | vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig); | 131 | voltdm->write(vpconfig, vp->vpconfig); |
133 | 132 | ||
134 | /* Trigger initVDD value copy to voltage processor */ | 133 | /* Trigger initVDD value copy to voltage processor */ |
135 | vpconfig |= vp->vp_common->vpconfig_initvdd; | 134 | vpconfig |= vp->vp_common->vpconfig_initvdd; |
136 | vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig); | 135 | voltdm->write(vpconfig, vp->vpconfig); |
137 | 136 | ||
138 | /* Force update of voltage */ | 137 | /* Force update of voltage */ |
139 | vpconfig |= vp->vp_common->vpconfig_forceupdate; | 138 | vpconfig |= vp->vp_common->vpconfig_forceupdate; |
140 | vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig); | 139 | voltdm->write(vpconfig, vp->vpconfig); |
141 | 140 | ||
142 | /* | 141 | /* |
143 | * Wait for TransactionDone. Typical latency is <200us. | 142 | * Wait for TransactionDone. Typical latency is <200us. |
@@ -170,13 +169,13 @@ int omap_vp_forceupdate_scale(struct voltagedomain *voltdm, | |||
170 | "to clear the TRANXDONE status\n", | 169 | "to clear the TRANXDONE status\n", |
171 | __func__, voltdm->name); | 170 | __func__, voltdm->name); |
172 | 171 | ||
173 | vpconfig = vdd->read_reg(vp->vp_common->prm_mod, vp->vpconfig); | 172 | vpconfig = voltdm->read(vp->vpconfig); |
174 | /* Clear initVDD copy trigger bit */ | 173 | /* Clear initVDD copy trigger bit */ |
175 | vpconfig &= ~vp->vp_common->vpconfig_initvdd; | 174 | vpconfig &= ~vp->vp_common->vpconfig_initvdd; |
176 | vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig); | 175 | voltdm->write(vpconfig, vp->vpconfig); |
177 | /* Clear force bit */ | 176 | /* Clear force bit */ |
178 | vpconfig &= ~vp->vp_common->vpconfig_forceupdate; | 177 | vpconfig &= ~vp->vp_common->vpconfig_forceupdate; |
179 | vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig); | 178 | voltdm->write(vpconfig, vp->vpconfig); |
180 | 179 | ||
181 | return 0; | 180 | return 0; |
182 | } | 181 | } |
@@ -199,13 +198,13 @@ unsigned long omap_vp_get_curr_volt(struct voltagedomain *voltdm) | |||
199 | } | 198 | } |
200 | 199 | ||
201 | vdd = voltdm->vdd; | 200 | vdd = voltdm->vdd; |
202 | if (!vdd->read_reg) { | 201 | if (!voltdm->read) { |
203 | pr_err("%s: No read API for reading vdd_%s regs\n", | 202 | pr_err("%s: No read API for reading vdd_%s regs\n", |
204 | __func__, voltdm->name); | 203 | __func__, voltdm->name); |
205 | return 0; | 204 | return 0; |
206 | } | 205 | } |
207 | 206 | ||
208 | curr_vsel = vdd->read_reg(vp->vp_common->prm_mod, vp->voltage); | 207 | curr_vsel = voltdm->read(vp->voltage); |
209 | 208 | ||
210 | if (!vdd->pmic_info || !vdd->pmic_info->vsel_to_uv) { | 209 | if (!vdd->pmic_info || !vdd->pmic_info->vsel_to_uv) { |
211 | pr_warning("%s: PMIC function to convert vsel to voltage" | 210 | pr_warning("%s: PMIC function to convert vsel to voltage" |
@@ -236,7 +235,7 @@ void omap_vp_enable(struct voltagedomain *voltdm) | |||
236 | 235 | ||
237 | vdd = voltdm->vdd; | 236 | vdd = voltdm->vdd; |
238 | vp = voltdm->vdd->vp_data; | 237 | vp = voltdm->vdd->vp_data; |
239 | if (!vdd->read_reg || !vdd->write_reg) { | 238 | if (!voltdm->read || !voltdm->write) { |
240 | pr_err("%s: No read/write API for accessing vdd_%s regs\n", | 239 | pr_err("%s: No read/write API for accessing vdd_%s regs\n", |
241 | __func__, voltdm->name); | 240 | __func__, voltdm->name); |
242 | return; | 241 | return; |
@@ -249,9 +248,9 @@ void omap_vp_enable(struct voltagedomain *voltdm) | |||
249 | vp_latch_vsel(voltdm); | 248 | vp_latch_vsel(voltdm); |
250 | 249 | ||
251 | /* Enable VP */ | 250 | /* Enable VP */ |
252 | vpconfig = vdd->read_reg(vp->vp_common->prm_mod, vp->vpconfig); | 251 | vpconfig = voltdm->read(vp->vpconfig); |
253 | vpconfig |= vp->vp_common->vpconfig_vpenable; | 252 | vpconfig |= vp->vp_common->vpconfig_vpenable; |
254 | vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig); | 253 | voltdm->write(vpconfig, vp->vpconfig); |
255 | vdd->vp_enabled = true; | 254 | vdd->vp_enabled = true; |
256 | } | 255 | } |
257 | 256 | ||
@@ -276,7 +275,7 @@ void omap_vp_disable(struct voltagedomain *voltdm) | |||
276 | 275 | ||
277 | vdd = voltdm->vdd; | 276 | vdd = voltdm->vdd; |
278 | vp = voltdm->vdd->vp_data; | 277 | vp = voltdm->vdd->vp_data; |
279 | if (!vdd->read_reg || !vdd->write_reg) { | 278 | if (!voltdm->read || !voltdm->write) { |
280 | pr_err("%s: No read/write API for accessing vdd_%s regs\n", | 279 | pr_err("%s: No read/write API for accessing vdd_%s regs\n", |
281 | __func__, voltdm->name); | 280 | __func__, voltdm->name); |
282 | return; | 281 | return; |
@@ -290,15 +289,15 @@ void omap_vp_disable(struct voltagedomain *voltdm) | |||
290 | } | 289 | } |
291 | 290 | ||
292 | /* Disable VP */ | 291 | /* Disable VP */ |
293 | vpconfig = vdd->read_reg(vp->vp_common->prm_mod, vp->vpconfig); | 292 | vpconfig = voltdm->read(vp->vpconfig); |
294 | vpconfig &= ~vp->vp_common->vpconfig_vpenable; | 293 | vpconfig &= ~vp->vp_common->vpconfig_vpenable; |
295 | vdd->write_reg(vpconfig, vp->vp_common->prm_mod, vp->vpconfig); | 294 | voltdm->write(vpconfig, vp->vpconfig); |
296 | 295 | ||
297 | /* | 296 | /* |
298 | * Wait for VP idle Typical latency is <2us. Maximum latency is ~100us | 297 | * Wait for VP idle Typical latency is <2us. Maximum latency is ~100us |
299 | */ | 298 | */ |
300 | omap_test_timeout((vdd->read_reg(vp->vp_common->prm_mod, vp->vstatus)), | 299 | omap_test_timeout((voltdm->read(vp->vstatus)), |
301 | VP_IDLE_TIMEOUT, timeout); | 300 | VP_IDLE_TIMEOUT, timeout); |
302 | 301 | ||
303 | if (timeout >= VP_IDLE_TIMEOUT) | 302 | if (timeout >= VP_IDLE_TIMEOUT) |
304 | pr_warning("%s: vdd_%s idle timedout\n", | 303 | pr_warning("%s: vdd_%s idle timedout\n", |
@@ -322,7 +321,7 @@ static int vp_volt_debug_get(void *data, u64 *val) | |||
322 | return -EINVAL; | 321 | return -EINVAL; |
323 | } | 322 | } |
324 | 323 | ||
325 | vsel = vdd->read_reg(vp->vp_common->prm_mod, vp->voltage); | 324 | vsel = voltdm->read(vp->voltage); |
326 | 325 | ||
327 | if (!vdd->pmic_info->vsel_to_uv) { | 326 | if (!vdd->pmic_info->vsel_to_uv) { |
328 | pr_warning("PMIC function to convert vsel to voltage" | 327 | pr_warning("PMIC function to convert vsel to voltage" |
diff --git a/arch/arm/mach-omap2/vp.h b/arch/arm/mach-omap2/vp.h index 1ccf7419a36..382fef13dbc 100644 --- a/arch/arm/mach-omap2/vp.h +++ b/arch/arm/mach-omap2/vp.h | |||
@@ -62,7 +62,6 @@ struct omap_vp_ops { | |||
62 | * @vpconfig_vlimitto_vddmin_shift: VDDMIN field shift in PRM_VP*_VLIMITTO reg | 62 | * @vpconfig_vlimitto_vddmin_shift: VDDMIN field shift in PRM_VP*_VLIMITTO reg |
63 | * @vpconfig_vlimitto_vddmax_shift: VDDMAX field shift in PRM_VP*_VLIMITTO reg | 63 | * @vpconfig_vlimitto_vddmax_shift: VDDMAX field shift in PRM_VP*_VLIMITTO reg |
64 | * @vpconfig_vlimitto_timeout_shift: TIMEOUT field shift in PRM_VP*_VLIMITTO reg | 64 | * @vpconfig_vlimitto_timeout_shift: TIMEOUT field shift in PRM_VP*_VLIMITTO reg |
65 | * @prm_mod: PRM module id used for PRM register access | ||
66 | * | 65 | * |
67 | * XXX It it not necessary to have both a mask and a shift for the same | 66 | * XXX It it not necessary to have both a mask and a shift for the same |
68 | * bitfield - remove one | 67 | * bitfield - remove one |
@@ -75,7 +74,6 @@ struct omap_vp_common_data { | |||
75 | u32 vpconfig_initvdd; | 74 | u32 vpconfig_initvdd; |
76 | u32 vpconfig_forceupdate; | 75 | u32 vpconfig_forceupdate; |
77 | u32 vpconfig_vpenable; | 76 | u32 vpconfig_vpenable; |
78 | s16 prm_mod; | ||
79 | u8 vpconfig_erroroffset_shift; | 77 | u8 vpconfig_erroroffset_shift; |
80 | u8 vpconfig_errorgain_shift; | 78 | u8 vpconfig_errorgain_shift; |
81 | u8 vpconfig_initvoltage_shift; | 79 | u8 vpconfig_initvoltage_shift; |
diff --git a/arch/arm/mach-omap2/vp3xxx_data.c b/arch/arm/mach-omap2/vp3xxx_data.c index 0372c1ab567..b01d33325d5 100644 --- a/arch/arm/mach-omap2/vp3xxx_data.c +++ b/arch/arm/mach-omap2/vp3xxx_data.c | |||
@@ -37,7 +37,6 @@ static const struct omap_vp_ops omap3_vp_ops = { | |||
37 | * XXX This stuff presumably belongs in the vp3xxx.c or vp.c file. | 37 | * XXX This stuff presumably belongs in the vp3xxx.c or vp.c file. |
38 | */ | 38 | */ |
39 | static const struct omap_vp_common_data omap3_vp_common = { | 39 | static const struct omap_vp_common_data omap3_vp_common = { |
40 | .prm_mod = OMAP3430_GR_MOD, | ||
41 | .vpconfig_erroroffset_shift = OMAP3430_ERROROFFSET_SHIFT, | 40 | .vpconfig_erroroffset_shift = OMAP3430_ERROROFFSET_SHIFT, |
42 | .vpconfig_errorgain_mask = OMAP3430_ERRORGAIN_MASK, | 41 | .vpconfig_errorgain_mask = OMAP3430_ERRORGAIN_MASK, |
43 | .vpconfig_errorgain_shift = OMAP3430_ERRORGAIN_SHIFT, | 42 | .vpconfig_errorgain_shift = OMAP3430_ERRORGAIN_SHIFT, |
diff --git a/arch/arm/mach-omap2/vp44xx_data.c b/arch/arm/mach-omap2/vp44xx_data.c index 738ba04f5cf..9704c7ba9e9 100644 --- a/arch/arm/mach-omap2/vp44xx_data.c +++ b/arch/arm/mach-omap2/vp44xx_data.c | |||
@@ -37,7 +37,6 @@ static const struct omap_vp_ops omap4_vp_ops = { | |||
37 | * XXX This stuff presumably belongs in the vp44xx.c or vp.c file. | 37 | * XXX This stuff presumably belongs in the vp44xx.c or vp.c file. |
38 | */ | 38 | */ |
39 | static const struct omap_vp_common_data omap4_vp_common = { | 39 | static const struct omap_vp_common_data omap4_vp_common = { |
40 | .prm_mod = OMAP4430_PRM_DEVICE_INST, | ||
41 | .vpconfig_erroroffset_shift = OMAP4430_ERROROFFSET_SHIFT, | 40 | .vpconfig_erroroffset_shift = OMAP4430_ERROROFFSET_SHIFT, |
42 | .vpconfig_errorgain_mask = OMAP4430_ERRORGAIN_MASK, | 41 | .vpconfig_errorgain_mask = OMAP4430_ERRORGAIN_MASK, |
43 | .vpconfig_errorgain_shift = OMAP4430_ERRORGAIN_SHIFT, | 42 | .vpconfig_errorgain_shift = OMAP4430_ERRORGAIN_SHIFT, |