regulator: switch the ab3100 to use enable_time()

Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>

This switches the ab3100 core to use the enable_time()
infrastructure from the regulator core.

Cc: Mattias Wallin <mattias.wallin@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
This commit is contained in:
Linus Walleij 2011-03-11 16:26:18 +01:00 committed by Liam Girdwood
parent 7a32b589a9
commit 19c9882594
1 changed files with 28 additions and 23 deletions

View File

@ -206,29 +206,6 @@ static int ab3100_enable_regulator(struct regulator_dev *reg)
return err; return err;
} }
/* Per-regulator power on delay from spec */
switch (abreg->regreg) {
case AB3100_LDO_A: /* Fallthrough */
case AB3100_LDO_C: /* Fallthrough */
case AB3100_LDO_D: /* Fallthrough */
case AB3100_LDO_E: /* Fallthrough */
case AB3100_LDO_H: /* Fallthrough */
case AB3100_LDO_K:
udelay(200);
break;
case AB3100_LDO_F:
udelay(600);
break;
case AB3100_LDO_G:
udelay(400);
break;
case AB3100_BUCK:
mdelay(1);
break;
default:
break;
}
return 0; return 0;
} }
@ -450,11 +427,37 @@ static int ab3100_get_voltage_regulator_external(struct regulator_dev *reg)
return abreg->plfdata->external_voltage; return abreg->plfdata->external_voltage;
} }
static int ab3100_enable_time_regulator(struct regulator_dev *reg)
{
struct ab3100_regulator *abreg = reg->reg_data;
/* Per-regulator power on delay from spec */
switch (abreg->regreg) {
case AB3100_LDO_A: /* Fallthrough */
case AB3100_LDO_C: /* Fallthrough */
case AB3100_LDO_D: /* Fallthrough */
case AB3100_LDO_E: /* Fallthrough */
case AB3100_LDO_H: /* Fallthrough */
case AB3100_LDO_K:
return 200;
case AB3100_LDO_F:
return 600;
case AB3100_LDO_G:
return 400;
case AB3100_BUCK:
return 1000;
default:
break;
}
return 0;
}
static struct regulator_ops regulator_ops_fixed = { static struct regulator_ops regulator_ops_fixed = {
.enable = ab3100_enable_regulator, .enable = ab3100_enable_regulator,
.disable = ab3100_disable_regulator, .disable = ab3100_disable_regulator,
.is_enabled = ab3100_is_enabled_regulator, .is_enabled = ab3100_is_enabled_regulator,
.get_voltage = ab3100_get_voltage_regulator, .get_voltage = ab3100_get_voltage_regulator,
.enable_time = ab3100_enable_time_regulator,
}; };
static struct regulator_ops regulator_ops_variable = { static struct regulator_ops regulator_ops_variable = {
@ -464,6 +467,7 @@ static struct regulator_ops regulator_ops_variable = {
.get_voltage = ab3100_get_voltage_regulator, .get_voltage = ab3100_get_voltage_regulator,
.set_voltage = ab3100_set_voltage_regulator, .set_voltage = ab3100_set_voltage_regulator,
.list_voltage = ab3100_list_voltage_regulator, .list_voltage = ab3100_list_voltage_regulator,
.enable_time = ab3100_enable_time_regulator,
}; };
static struct regulator_ops regulator_ops_variable_sleepable = { static struct regulator_ops regulator_ops_variable_sleepable = {
@ -474,6 +478,7 @@ static struct regulator_ops regulator_ops_variable_sleepable = {
.set_voltage = ab3100_set_voltage_regulator, .set_voltage = ab3100_set_voltage_regulator,
.set_suspend_voltage = ab3100_set_suspend_voltage_regulator, .set_suspend_voltage = ab3100_set_suspend_voltage_regulator,
.list_voltage = ab3100_list_voltage_regulator, .list_voltage = ab3100_list_voltage_regulator,
.enable_time = ab3100_enable_time_regulator,
}; };
/* /*