Commit 0f01565a authored by Kevin Hilman's avatar Kevin Hilman

OMAP3+: VP: move voltage scale function pointer into struct voltagedomain

Function pointer used for actual voltage scaling (e.g. VP force update
or VC bypass) is moved from omap_vdd_info into struct voltagedomain,
resulting in renames s/vdd->volt_scale/voltdm->scale/

No functional changes.
Signed-off-by: default avatarKevin Hilman <khilman@ti.com>
parent 667216d6
...@@ -45,10 +45,8 @@ static LIST_HEAD(voltdm_list); ...@@ -45,10 +45,8 @@ static LIST_HEAD(voltdm_list);
static int __init _config_common_vdd_data(struct voltagedomain *voltdm) static int __init _config_common_vdd_data(struct voltagedomain *voltdm)
{ {
struct omap_vdd_info *vdd = voltdm->vdd;
/* Generic voltage parameters */ /* Generic voltage parameters */
vdd->volt_scale = omap_vp_forceupdate_scale; voltdm->scale = omap_vp_forceupdate_scale;
return 0; return 0;
} }
...@@ -107,22 +105,18 @@ unsigned long omap_voltage_get_nom_volt(struct voltagedomain *voltdm) ...@@ -107,22 +105,18 @@ unsigned long omap_voltage_get_nom_volt(struct voltagedomain *voltdm)
int omap_voltage_scale_vdd(struct voltagedomain *voltdm, int omap_voltage_scale_vdd(struct voltagedomain *voltdm,
unsigned long target_volt) unsigned long target_volt)
{ {
struct omap_vdd_info *vdd;
if (!voltdm || IS_ERR(voltdm)) { if (!voltdm || IS_ERR(voltdm)) {
pr_warning("%s: VDD specified does not exist!\n", __func__); pr_warning("%s: VDD specified does not exist!\n", __func__);
return -EINVAL; return -EINVAL;
} }
vdd = voltdm->vdd; if (!voltdm->scale) {
if (!vdd->volt_scale) {
pr_err("%s: No voltage scale API registered for vdd_%s\n", pr_err("%s: No voltage scale API registered for vdd_%s\n",
__func__, voltdm->name); __func__, voltdm->name);
return -ENODATA; return -ENODATA;
} }
return vdd->volt_scale(voltdm, target_volt); return voltdm->scale(voltdm, target_volt);
} }
/** /**
...@@ -260,21 +254,17 @@ int omap_voltage_register_pmic(struct voltagedomain *voltdm, ...@@ -260,21 +254,17 @@ int omap_voltage_register_pmic(struct voltagedomain *voltdm,
void omap_change_voltscale_method(struct voltagedomain *voltdm, void omap_change_voltscale_method(struct voltagedomain *voltdm,
int voltscale_method) int voltscale_method)
{ {
struct omap_vdd_info *vdd;
if (!voltdm || IS_ERR(voltdm)) { if (!voltdm || IS_ERR(voltdm)) {
pr_warning("%s: VDD specified does not exist!\n", __func__); pr_warning("%s: VDD specified does not exist!\n", __func__);
return; return;
} }
vdd = voltdm->vdd;
switch (voltscale_method) { switch (voltscale_method) {
case VOLTSCALE_VPFORCEUPDATE: case VOLTSCALE_VPFORCEUPDATE:
vdd->volt_scale = omap_vp_forceupdate_scale; voltdm->scale = omap_vp_forceupdate_scale;
return; return;
case VOLTSCALE_VCBYPASS: case VOLTSCALE_VCBYPASS:
vdd->volt_scale = omap_vc_bypass_scale; voltdm->scale = omap_vc_bypass_scale;
return; return;
default: default:
pr_warning("%s: Trying to change the method of voltage scaling" pr_warning("%s: Trying to change the method of voltage scaling"
...@@ -315,7 +305,7 @@ int __init omap_voltage_late_init(void) ...@@ -315,7 +305,7 @@ int __init omap_voltage_late_init(void)
clk_put(sys_ck); clk_put(sys_ck);
if (voltdm->vc) { if (voltdm->vc) {
voltdm->vdd->volt_scale = omap_vc_bypass_scale; voltdm->scale = omap_vc_bypass_scale;
omap_vc_init_channel(voltdm); omap_vc_init_channel(voltdm);
} }
......
...@@ -61,6 +61,7 @@ struct omap_vfsm_instance { ...@@ -61,6 +61,7 @@ struct omap_vfsm_instance {
* @read: read-modify-write a VC/VP register * @read: read-modify-write a VC/VP register
* @sys_clk: system clock name/frequency, used for various timing calculations * @sys_clk: system clock name/frequency, used for various timing calculations
* @vdd: to be removed * @vdd: to be removed
* @scale: function used to scale the voltage of the voltagedomain
*/ */
struct voltagedomain { struct voltagedomain {
char *name; char *name;
...@@ -82,6 +83,9 @@ struct voltagedomain { ...@@ -82,6 +83,9 @@ struct voltagedomain {
u32 rate; u32 rate;
} sys_clk; } sys_clk;
int (*scale) (struct voltagedomain *voltdm,
unsigned long target_volt);
struct omap_vdd_info *vdd; struct omap_vdd_info *vdd;
}; };
...@@ -145,14 +149,10 @@ struct omap_voltdm_pmic { ...@@ -145,14 +149,10 @@ struct omap_voltdm_pmic {
* @volt_data : voltage table having the distinct voltages supported * @volt_data : voltage table having the distinct voltages supported
* by the domain and other associated per voltage data. * by the domain and other associated per voltage data.
* @curr_volt : current voltage for this vdd. * @curr_volt : current voltage for this vdd.
* @volt_scale : API to scale the voltage of the vdd.
*/ */
struct omap_vdd_info { struct omap_vdd_info {
struct omap_volt_data *volt_data; struct omap_volt_data *volt_data;
u32 curr_volt; u32 curr_volt;
int (*volt_scale) (struct voltagedomain *voltdm,
unsigned long target_volt);
}; };
int omap_voltage_scale_vdd(struct voltagedomain *voltdm, int omap_voltage_scale_vdd(struct voltagedomain *voltdm,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment