Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 19c98825 authored by Linus Walleij's avatar Linus Walleij Committed by Liam Girdwood
Browse files

regulator: switch the ab3100 to use enable_time()



Acked-by: default avatarMark 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: default avatarLinus Walleij <linus.walleij@linaro.org>
Signed-off-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
parent 7a32b589
Loading
Loading
Loading
Loading
+28 −23
Original line number Diff line number Diff line
@@ -206,29 +206,6 @@ static int ab3100_enable_regulator(struct regulator_dev *reg)
		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;
}

@@ -450,11 +427,37 @@ static int ab3100_get_voltage_regulator_external(struct regulator_dev *reg)
	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 = {
	.enable      = ab3100_enable_regulator,
	.disable     = ab3100_disable_regulator,
	.is_enabled  = ab3100_is_enabled_regulator,
	.get_voltage = ab3100_get_voltage_regulator,
	.enable_time = ab3100_enable_time_regulator,
};

static struct regulator_ops regulator_ops_variable = {
@@ -464,6 +467,7 @@ static struct regulator_ops regulator_ops_variable = {
	.get_voltage = ab3100_get_voltage_regulator,
	.set_voltage = ab3100_set_voltage_regulator,
	.list_voltage = ab3100_list_voltage_regulator,
	.enable_time = ab3100_enable_time_regulator,
};

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_suspend_voltage = ab3100_set_suspend_voltage_regulator,
	.list_voltage = ab3100_list_voltage_regulator,
	.enable_time = ab3100_enable_time_regulator,
};

/*