diff options
author | Kevin Hilman <khilman@ti.com> | 2011-03-22 19:14:57 -0400 |
---|---|---|
committer | Kevin Hilman <khilman@ti.com> | 2011-09-15 14:39:10 -0400 |
commit | d84adcf46b9c235d1f4975b72a8c2763dbfb0081 (patch) | |
tree | 76f5d8877a3c99540267fc9fb63cae7e63f61236 /arch/arm/mach-omap2/vc.c | |
parent | ccd5ca7787df8f1bd267b90f03a09c31c160ffe2 (diff) |
OMAP2+: voltage: move VC into struct voltagedomain, misc. renames
Move the VC instance struct from omap_vdd_info into struct voltagedomain.
While moving, perform some misc. renames for readability.
No functional changes.
Summary of renames:
- rename omap_vc_instance to omap_vc_channel, since there is only
one instance of the VC IP and this actually represents channels
using TRM terminology.
- rename 'vc_common' field of VC channel which led to:
s/vc->vc_common/vc->common/
- remove redundant '_data' suffix
- OMAP3: vc1 --> vc_mpu, vc2 --> vc_core
- omap_vc_bypass_scale_voltage() -> omap_vc_bypass_scale()
Signed-off-by: Kevin Hilman <khilman@ti.com>
merge
Diffstat (limited to 'arch/arm/mach-omap2/vc.c')
-rw-r--r-- | arch/arm/mach-omap2/vc.c | 90 |
1 files changed, 44 insertions, 46 deletions
diff --git a/arch/arm/mach-omap2/vc.c b/arch/arm/mach-omap2/vc.c index 098af2f3a63e..b62363d9d2b7 100644 --- a/arch/arm/mach-omap2/vc.c +++ b/arch/arm/mach-omap2/vc.c | |||
@@ -24,14 +24,12 @@ int omap_vc_pre_scale(struct voltagedomain *voltdm, | |||
24 | unsigned long target_volt, | 24 | unsigned long target_volt, |
25 | u8 *target_vsel, u8 *current_vsel) | 25 | u8 *target_vsel, u8 *current_vsel) |
26 | { | 26 | { |
27 | struct omap_vc_instance_data *vc = voltdm->vdd->vc_data; | 27 | struct omap_vc_channel *vc = voltdm->vc; |
28 | struct omap_vdd_info *vdd = voltdm->vdd; | 28 | struct omap_vdd_info *vdd = voltdm->vdd; |
29 | struct omap_volt_data *volt_data; | 29 | struct omap_volt_data *volt_data; |
30 | const struct omap_vc_common_data *vc_common; | ||
31 | const struct omap_vp_common_data *vp_common; | 30 | const struct omap_vp_common_data *vp_common; |
32 | u32 vc_cmdval, vp_errgain_val; | 31 | u32 vc_cmdval, vp_errgain_val; |
33 | 32 | ||
34 | vc_common = vc->vc_common; | ||
35 | vp_common = vdd->vp_data->vp_common; | 33 | vp_common = vdd->vp_data->vp_common; |
36 | 34 | ||
37 | /* Check if sufficient pmic info is available for this vdd */ | 35 | /* Check if sufficient pmic info is available for this vdd */ |
@@ -63,10 +61,10 @@ int omap_vc_pre_scale(struct voltagedomain *voltdm, | |||
63 | *current_vsel = vdd->read_reg(vdd->vp_data->vp_common->prm_mod, vdd->vp_data->voltage); | 61 | *current_vsel = vdd->read_reg(vdd->vp_data->vp_common->prm_mod, vdd->vp_data->voltage); |
64 | 62 | ||
65 | /* Setting the ON voltage to the new target voltage */ | 63 | /* Setting the ON voltage to the new target voltage */ |
66 | vc_cmdval = vdd->read_reg(vc->vc_common->prm_mod, vc->cmdval_reg); | 64 | vc_cmdval = vdd->read_reg(vc->common->prm_mod, vc->cmdval_reg); |
67 | vc_cmdval &= ~vc_common->cmd_on_mask; | 65 | vc_cmdval &= ~vc->common->cmd_on_mask; |
68 | vc_cmdval |= (*target_vsel << vc_common->cmd_on_shift); | 66 | vc_cmdval |= (*target_vsel << vc->common->cmd_on_shift); |
69 | vdd->write_reg(vc_cmdval, vc->vc_common->prm_mod, vc->cmdval_reg); | 67 | vdd->write_reg(vc_cmdval, vc->common->prm_mod, vc->cmdval_reg); |
70 | 68 | ||
71 | /* Setting vp errorgain based on the voltage */ | 69 | /* Setting vp errorgain based on the voltage */ |
72 | if (volt_data) { | 70 | if (volt_data) { |
@@ -99,11 +97,11 @@ void omap_vc_post_scale(struct voltagedomain *voltdm, | |||
99 | vdd->curr_volt = target_volt; | 97 | vdd->curr_volt = target_volt; |
100 | } | 98 | } |
101 | 99 | ||
102 | /* vc_bypass_scale_voltage - VC bypass method of voltage scaling */ | 100 | /* vc_bypass_scale - VC bypass method of voltage scaling */ |
103 | int omap_vc_bypass_scale_voltage(struct voltagedomain *voltdm, | 101 | int omap_vc_bypass_scale(struct voltagedomain *voltdm, |
104 | unsigned long target_volt) | 102 | unsigned long target_volt) |
105 | { | 103 | { |
106 | struct omap_vc_instance_data *vc = voltdm->vdd->vc_data; | 104 | struct omap_vc_channel *vc = voltdm->vc; |
107 | struct omap_vdd_info *vdd = voltdm->vdd; | 105 | struct omap_vdd_info *vdd = voltdm->vdd; |
108 | u32 loop_cnt = 0, retries_cnt = 0; | 106 | u32 loop_cnt = 0, retries_cnt = 0; |
109 | u32 vc_valid, vc_bypass_val_reg, vc_bypass_value; | 107 | u32 vc_valid, vc_bypass_val_reg, vc_bypass_value; |
@@ -114,19 +112,19 @@ int omap_vc_bypass_scale_voltage(struct voltagedomain *voltdm, | |||
114 | if (ret) | 112 | if (ret) |
115 | return ret; | 113 | return ret; |
116 | 114 | ||
117 | vc_valid = vc->vc_common->valid; | 115 | vc_valid = vc->common->valid; |
118 | vc_bypass_val_reg = vc->vc_common->bypass_val_reg; | 116 | vc_bypass_val_reg = vc->common->bypass_val_reg; |
119 | vc_bypass_value = (target_vsel << vc->vc_common->data_shift) | | 117 | vc_bypass_value = (target_vsel << vc->common->data_shift) | |
120 | (vdd->pmic_info->pmic_reg << | 118 | (vdd->pmic_info->pmic_reg << |
121 | vc->vc_common->regaddr_shift) | | 119 | vc->common->regaddr_shift) | |
122 | (vdd->pmic_info->i2c_slave_addr << | 120 | (vdd->pmic_info->i2c_slave_addr << |
123 | vc->vc_common->slaveaddr_shift); | 121 | vc->common->slaveaddr_shift); |
124 | 122 | ||
125 | vdd->write_reg(vc_bypass_value, vc->vc_common->prm_mod, vc_bypass_val_reg); | 123 | vdd->write_reg(vc_bypass_value, vc->common->prm_mod, vc_bypass_val_reg); |
126 | vdd->write_reg(vc_bypass_value | vc_valid, vc->vc_common->prm_mod, | 124 | vdd->write_reg(vc_bypass_value | vc_valid, vc->common->prm_mod, |
127 | vc_bypass_val_reg); | 125 | vc_bypass_val_reg); |
128 | 126 | ||
129 | vc_bypass_value = vdd->read_reg(vc->vc_common->prm_mod, vc_bypass_val_reg); | 127 | vc_bypass_value = vdd->read_reg(vc->common->prm_mod, vc_bypass_val_reg); |
130 | /* | 128 | /* |
131 | * Loop till the bypass command is acknowledged from the SMPS. | 129 | * Loop till the bypass command is acknowledged from the SMPS. |
132 | * NOTE: This is legacy code. The loop count and retry count needs | 130 | * NOTE: This is legacy code. The loop count and retry count needs |
@@ -145,7 +143,7 @@ int omap_vc_bypass_scale_voltage(struct voltagedomain *voltdm, | |||
145 | loop_cnt = 0; | 143 | loop_cnt = 0; |
146 | udelay(10); | 144 | udelay(10); |
147 | } | 145 | } |
148 | vc_bypass_value = vdd->read_reg(vc->vc_common->prm_mod, | 146 | vc_bypass_value = vdd->read_reg(vc->common->prm_mod, |
149 | vc_bypass_val_reg); | 147 | vc_bypass_val_reg); |
150 | } | 148 | } |
151 | 149 | ||
@@ -155,23 +153,23 @@ int omap_vc_bypass_scale_voltage(struct voltagedomain *voltdm, | |||
155 | 153 | ||
156 | static void __init omap3_vfsm_init(struct voltagedomain *voltdm) | 154 | static void __init omap3_vfsm_init(struct voltagedomain *voltdm) |
157 | { | 155 | { |
158 | struct omap_vc_instance_data *vc = voltdm->vdd->vc_data; | 156 | struct omap_vc_channel *vc = voltdm->vc; |
159 | struct omap_vdd_info *vdd = voltdm->vdd; | 157 | struct omap_vdd_info *vdd = voltdm->vdd; |
160 | 158 | ||
161 | /* | 159 | /* |
162 | * Voltage Manager FSM parameters init | 160 | * Voltage Manager FSM parameters init |
163 | * XXX This data should be passed in from the board file | 161 | * XXX This data should be passed in from the board file |
164 | */ | 162 | */ |
165 | vdd->write_reg(OMAP3_CLKSETUP, vc->vc_common->prm_mod, OMAP3_PRM_CLKSETUP_OFFSET); | 163 | vdd->write_reg(OMAP3_CLKSETUP, vc->common->prm_mod, OMAP3_PRM_CLKSETUP_OFFSET); |
166 | vdd->write_reg(OMAP3_VOLTOFFSET, vc->vc_common->prm_mod, | 164 | vdd->write_reg(OMAP3_VOLTOFFSET, vc->common->prm_mod, |
167 | OMAP3_PRM_VOLTOFFSET_OFFSET); | 165 | OMAP3_PRM_VOLTOFFSET_OFFSET); |
168 | vdd->write_reg(OMAP3_VOLTSETUP2, vc->vc_common->prm_mod, | 166 | vdd->write_reg(OMAP3_VOLTSETUP2, vc->common->prm_mod, |
169 | OMAP3_PRM_VOLTSETUP2_OFFSET); | 167 | OMAP3_PRM_VOLTSETUP2_OFFSET); |
170 | } | 168 | } |
171 | 169 | ||
172 | static void __init omap3_vc_init_channel(struct voltagedomain *voltdm) | 170 | static void __init omap3_vc_init_channel(struct voltagedomain *voltdm) |
173 | { | 171 | { |
174 | struct omap_vc_instance_data *vc = voltdm->vdd->vc_data; | 172 | struct omap_vc_channel *vc = voltdm->vc; |
175 | struct omap_vdd_info *vdd = voltdm->vdd; | 173 | struct omap_vdd_info *vdd = voltdm->vdd; |
176 | static bool is_initialized; | 174 | static bool is_initialized; |
177 | u8 on_vsel, onlp_vsel, ret_vsel, off_vsel; | 175 | u8 on_vsel, onlp_vsel, ret_vsel, off_vsel; |
@@ -185,19 +183,19 @@ static void __init omap3_vc_init_channel(struct voltagedomain *voltdm) | |||
185 | onlp_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->onlp_volt); | 183 | onlp_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->onlp_volt); |
186 | ret_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->ret_volt); | 184 | ret_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->ret_volt); |
187 | off_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->off_volt); | 185 | off_vsel = vdd->pmic_info->uv_to_vsel(vdd->pmic_info->off_volt); |
188 | vc_val = ((on_vsel << vc->vc_common->cmd_on_shift) | | 186 | vc_val = ((on_vsel << vc->common->cmd_on_shift) | |
189 | (onlp_vsel << vc->vc_common->cmd_onlp_shift) | | 187 | (onlp_vsel << vc->common->cmd_onlp_shift) | |
190 | (ret_vsel << vc->vc_common->cmd_ret_shift) | | 188 | (ret_vsel << vc->common->cmd_ret_shift) | |
191 | (off_vsel << vc->vc_common->cmd_off_shift)); | 189 | (off_vsel << vc->common->cmd_off_shift)); |
192 | vdd->write_reg(vc_val, vc->vc_common->prm_mod, vc->cmdval_reg); | 190 | vdd->write_reg(vc_val, vc->common->prm_mod, vc->cmdval_reg); |
193 | 191 | ||
194 | /* | 192 | /* |
195 | * Generic VC parameters init | 193 | * Generic VC parameters init |
196 | * XXX This data should be abstracted out | 194 | * XXX This data should be abstracted out |
197 | */ | 195 | */ |
198 | vdd->write_reg(OMAP3430_CMD1_MASK | OMAP3430_RAV1_MASK, vc->vc_common->prm_mod, | 196 | vdd->write_reg(OMAP3430_CMD1_MASK | OMAP3430_RAV1_MASK, vc->common->prm_mod, |
199 | OMAP3_PRM_VC_CH_CONF_OFFSET); | 197 | OMAP3_PRM_VC_CH_CONF_OFFSET); |
200 | vdd->write_reg(OMAP3430_MCODE_SHIFT | OMAP3430_HSEN_MASK, vc->vc_common->prm_mod, | 198 | vdd->write_reg(OMAP3430_MCODE_SHIFT | OMAP3430_HSEN_MASK, vc->common->prm_mod, |
201 | OMAP3_PRM_VC_I2C_CFG_OFFSET); | 199 | OMAP3_PRM_VC_I2C_CFG_OFFSET); |
202 | 200 | ||
203 | omap3_vfsm_init(voltdm); | 201 | omap3_vfsm_init(voltdm); |
@@ -209,7 +207,7 @@ static void __init omap3_vc_init_channel(struct voltagedomain *voltdm) | |||
209 | /* OMAP4 specific voltage init functions */ | 207 | /* OMAP4 specific voltage init functions */ |
210 | static void __init omap4_vc_init_channel(struct voltagedomain *voltdm) | 208 | static void __init omap4_vc_init_channel(struct voltagedomain *voltdm) |
211 | { | 209 | { |
212 | struct omap_vc_instance_data *vc = voltdm->vdd->vc_data; | 210 | struct omap_vc_channel *vc = voltdm->vc; |
213 | struct omap_vdd_info *vdd = voltdm->vdd; | 211 | struct omap_vdd_info *vdd = voltdm->vdd; |
214 | static bool is_initialized; | 212 | static bool is_initialized; |
215 | u32 vc_val; | 213 | u32 vc_val; |
@@ -226,18 +224,18 @@ static void __init omap4_vc_init_channel(struct voltagedomain *voltdm) | |||
226 | vc_val = (OMAP4430_RAV_VDD_MPU_L_MASK | OMAP4430_CMD_VDD_MPU_L_MASK | | 224 | vc_val = (OMAP4430_RAV_VDD_MPU_L_MASK | OMAP4430_CMD_VDD_MPU_L_MASK | |
227 | OMAP4430_RAV_VDD_IVA_L_MASK | OMAP4430_CMD_VDD_IVA_L_MASK | | 225 | OMAP4430_RAV_VDD_IVA_L_MASK | OMAP4430_CMD_VDD_IVA_L_MASK | |
228 | OMAP4430_RAV_VDD_CORE_L_MASK | OMAP4430_CMD_VDD_CORE_L_MASK); | 226 | OMAP4430_RAV_VDD_CORE_L_MASK | OMAP4430_CMD_VDD_CORE_L_MASK); |
229 | vdd->write_reg(vc_val, vc->vc_common->prm_mod, OMAP4_PRM_VC_CFG_CHANNEL_OFFSET); | 227 | vdd->write_reg(vc_val, vc->common->prm_mod, OMAP4_PRM_VC_CFG_CHANNEL_OFFSET); |
230 | 228 | ||
231 | /* XXX These are magic numbers and do not belong! */ | 229 | /* XXX These are magic numbers and do not belong! */ |
232 | vc_val = (0x60 << OMAP4430_SCLL_SHIFT | 0x26 << OMAP4430_SCLH_SHIFT); | 230 | vc_val = (0x60 << OMAP4430_SCLL_SHIFT | 0x26 << OMAP4430_SCLH_SHIFT); |
233 | vdd->write_reg(vc_val, vc->vc_common->prm_mod, OMAP4_PRM_VC_CFG_I2C_CLK_OFFSET); | 231 | vdd->write_reg(vc_val, vc->common->prm_mod, OMAP4_PRM_VC_CFG_I2C_CLK_OFFSET); |
234 | 232 | ||
235 | is_initialized = true; | 233 | is_initialized = true; |
236 | } | 234 | } |
237 | 235 | ||
238 | void __init omap_vc_init_channel(struct voltagedomain *voltdm) | 236 | void __init omap_vc_init_channel(struct voltagedomain *voltdm) |
239 | { | 237 | { |
240 | struct omap_vc_instance_data *vc = voltdm->vdd->vc_data; | 238 | struct omap_vc_channel *vc = voltdm->vc; |
241 | struct omap_vdd_info *vdd = voltdm->vdd; | 239 | struct omap_vdd_info *vdd = voltdm->vdd; |
242 | u32 vc_val; | 240 | u32 vc_val; |
243 | 241 | ||
@@ -255,27 +253,27 @@ void __init omap_vc_init_channel(struct voltagedomain *voltdm) | |||
255 | } | 253 | } |
256 | 254 | ||
257 | /* Set up the SMPS_SA(i2c slave address in VC */ | 255 | /* Set up the SMPS_SA(i2c slave address in VC */ |
258 | vc_val = vdd->read_reg(vc->vc_common->prm_mod, | 256 | vc_val = vdd->read_reg(vc->common->prm_mod, |
259 | vc->vc_common->smps_sa_reg); | 257 | vc->common->smps_sa_reg); |
260 | vc_val &= ~vc->smps_sa_mask; | 258 | vc_val &= ~vc->smps_sa_mask; |
261 | vc_val |= vdd->pmic_info->i2c_slave_addr << vc->smps_sa_shift; | 259 | vc_val |= vdd->pmic_info->i2c_slave_addr << vc->smps_sa_shift; |
262 | vdd->write_reg(vc_val, vc->vc_common->prm_mod, | 260 | vdd->write_reg(vc_val, vc->common->prm_mod, |
263 | vc->vc_common->smps_sa_reg); | 261 | vc->common->smps_sa_reg); |
264 | 262 | ||
265 | /* Setup the VOLRA(pmic reg addr) in VC */ | 263 | /* Setup the VOLRA(pmic reg addr) in VC */ |
266 | vc_val = vdd->read_reg(vc->vc_common->prm_mod, | 264 | vc_val = vdd->read_reg(vc->common->prm_mod, |
267 | vc->vc_common->smps_volra_reg); | 265 | vc->common->smps_volra_reg); |
268 | vc_val &= ~vc->smps_volra_mask; | 266 | vc_val &= ~vc->smps_volra_mask; |
269 | vc_val |= vdd->pmic_info->pmic_reg << vc->smps_volra_shift; | 267 | vc_val |= vdd->pmic_info->pmic_reg << vc->smps_volra_shift; |
270 | vdd->write_reg(vc_val, vc->vc_common->prm_mod, | 268 | vdd->write_reg(vc_val, vc->common->prm_mod, |
271 | vc->vc_common->smps_volra_reg); | 269 | vc->common->smps_volra_reg); |
272 | 270 | ||
273 | /* Configure the setup times */ | 271 | /* Configure the setup times */ |
274 | vc_val = vdd->read_reg(vc->vc_common->prm_mod, vdd->vfsm->voltsetup_reg); | 272 | vc_val = vdd->read_reg(vc->common->prm_mod, vdd->vfsm->voltsetup_reg); |
275 | vc_val &= ~vdd->vfsm->voltsetup_mask; | 273 | vc_val &= ~vdd->vfsm->voltsetup_mask; |
276 | vc_val |= vdd->pmic_info->volt_setup_time << | 274 | vc_val |= vdd->pmic_info->volt_setup_time << |
277 | vdd->vfsm->voltsetup_shift; | 275 | vdd->vfsm->voltsetup_shift; |
278 | vdd->write_reg(vc_val, vc->vc_common->prm_mod, vdd->vfsm->voltsetup_reg); | 276 | vdd->write_reg(vc_val, vc->common->prm_mod, vdd->vfsm->voltsetup_reg); |
279 | 277 | ||
280 | if (cpu_is_omap34xx()) | 278 | if (cpu_is_omap34xx()) |
281 | omap3_vc_init_channel(voltdm); | 279 | omap3_vc_init_channel(voltdm); |