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: Kevin Hilman <khilman@ti.com>
This commit is contained in:
parent
667216d6a4
commit
0f01565a35
@ -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)
|
|||||||
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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -258,23 +252,19 @@ int omap_voltage_register_pmic(struct voltagedomain *voltdm,
|
|||||||
* defined in voltage.h
|
* defined in voltage.h
|
||||||
*/
|
*/
|
||||||
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)
|
|||||||
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 {
|
|||||||
* @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 {
|
|||||||
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 {
|
|||||||
* @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,
|
||||||
|
Loading…
Reference in New Issue
Block a user