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

Commit e277e656 authored by Axel Lin's avatar Axel Lin Committed by Mark Brown
Browse files

regulator: Remove max_uV from struct regulator_linear_range



linear ranges means each range has linear voltage settings.
So we can calculate max_uV for each linear range in regulator core rather than
set the max_uV field in drivers.

Signed-off-by: default avatarAxel Lin <axel.lin@ingics.com>
Signed-off-by: default avatarMark Brown <broonie@linaro.org>
parent 813de3c6
Loading
Loading
Loading
Loading
+6 −8
Original line number Diff line number Diff line
@@ -141,18 +141,16 @@ struct pm800_regulators {

/* Ranges are sorted in ascending order. */
static const struct regulator_linear_range buck1_volt_range[] = {
	{ .min_uV = 600000, .max_uV = 1587500, .min_sel = 0, .max_sel = 0x4f,
	  .uV_step = 12500 },
	{ .min_uV = 1600000, .max_uV = 1800000, .min_sel = 0x50,
	  .max_sel = 0x54, .uV_step = 50000 },
	{ .min_uV = 600000, .min_sel = 0, .max_sel = 0x4f, .uV_step = 12500 },
	{ .min_uV = 1600000, .min_sel = 0x50, .max_sel = 0x54,
	  .uV_step = 50000 },
};

/* BUCK 2~5 have same ranges. */
static const struct regulator_linear_range buck2_5_volt_range[] = {
	{ .min_uV = 600000, .max_uV = 1587500,	.min_sel = 0, .max_sel = 0x4f,
	  .uV_step = 12500 },
	{ .min_uV = 1600000, .max_uV = 3300000, .min_sel = 0x50,
	  .max_sel = 0x72, .uV_step = 50000 },
	{ .min_uV = 600000, .min_sel = 0, .max_sel = 0x4f, .uV_step = 12500 },
	{ .min_uV = 1600000, .min_sel = 0x50, .max_sel = 0x72,
	  .uV_step = 50000 },
};

static const unsigned int ldo1_volt_table[] = {
+11 −14
Original line number Diff line number Diff line
@@ -117,26 +117,23 @@ static struct regulator_ops as3711_dldo_ops = {
};

static const struct regulator_linear_range as3711_sd_ranges[] = {
	{ .min_uV = 612500, .max_uV = 1400000,
	  .min_sel = 0x1, .max_sel = 0x40, .uV_step = 12500 },
	{ .min_uV = 1425000, .max_uV = 2600000,
	  .min_sel = 0x41, .max_sel = 0x70, .uV_step = 25000 },
	{ .min_uV = 2650000, .max_uV = 3350000,
	  .min_sel = 0x71, .max_sel = 0x7f, .uV_step = 50000 },
	{ .min_uV = 612500, .min_sel = 0x1, .max_sel = 0x40, .uV_step = 12500 },
	{ .min_uV = 1425000, .min_sel = 0x41, .max_sel = 0x70,
	  .uV_step = 25000 },
	{ .min_uV = 2650000, .min_sel = 0x71, .max_sel = 0x7f,
	  .uV_step = 50000 },
};

static const struct regulator_linear_range as3711_aldo_ranges[] = {
	{ .min_uV = 1200000, .max_uV = 1950000,
	  .min_sel = 0, .max_sel = 0xf, .uV_step = 50000 },
	{ .min_uV = 1800000, .max_uV = 3300000,
	  .min_sel = 0x10, .max_sel = 0x1f, .uV_step = 100000 },
	{ .min_uV = 1200000, .min_sel = 0, .max_sel = 0xf, .uV_step = 50000 },
	{ .min_uV = 1800000, .min_sel = 0x10, .max_sel = 0x1f,
	  .uV_step = 100000 },
};

static const struct regulator_linear_range as3711_dldo_ranges[] = {
	{ .min_uV = 900000, .max_uV = 1700000,
	  .min_sel = 0, .max_sel = 0x10, .uV_step = 50000 },
	{ .min_uV = 1750000, .max_uV = 3300000,
	  .min_sel = 0x20, .max_sel = 0x3f, .uV_step = 50000 },
	{ .min_uV = 900000, .min_sel = 0, .max_sel = 0x10, .uV_step = 50000 },
	{ .min_uV = 1750000, .min_sel = 0x20, .max_sel = 0x3f,
	  .uV_step = 50000 },
};

#define AS3711_REG(_id, _en_reg, _en_bit, _vmask, _vshift, _min_uV, _max_uV, _sfx)	\
+0 −1
Original line number Diff line number Diff line
@@ -441,7 +441,6 @@ static struct regulator_ops as3722_ldo3_extcntrl_ops = {
		.max_sel = _max_sel,					\
		.uV_step = _step_uV,					\
		.min_uV = _min_uV,					\
		.max_uV = _min_uV + (_max_sel - _min_sel) * _step_uV,	\
	}

static const struct regulator_linear_range as3722_ldo_ranges[] = {
+2 −4
Original line number Diff line number Diff line
@@ -253,10 +253,8 @@ static int da9034_set_dvc_voltage_sel(struct regulator_dev *rdev,
}

static const struct regulator_linear_range da9034_ldo12_ranges[] = {
	{ .min_uV = 1700000, .max_uV = 2050000, .min_sel =  0, .max_sel = 7,
	  .uV_step =  50000 },
	{ .min_uV = 2700000, .max_uV = 3050000, .min_sel =  8, .max_sel = 15,
	  .uV_step =  50000 },
	{ .min_uV = 1700000, .min_sel =  0, .max_sel = 7, .uV_step =  50000 },
	{ .min_uV = 2700000, .min_sel =  8, .max_sel = 15, .uV_step =  50000 },
};

static struct regulator_ops da903x_regulator_ldo_ops = {
+5 −1
Original line number Diff line number Diff line
@@ -284,9 +284,13 @@ int regulator_map_voltage_linear_range(struct regulator_dev *rdev,
	}

	for (i = 0; i < rdev->desc->n_linear_ranges; i++) {
		int linear_max_uV;

		range = &rdev->desc->linear_ranges[i];
		linear_max_uV = range->min_uV +
			(range->max_sel - range->min_sel) * range->uV_step;

		if (!(min_uV <= range->max_uV && max_uV >= range->min_uV))
		if (!(min_uV <= linear_max_uV && max_uV >= range->min_uV))
			continue;

		if (min_uV <= range->min_uV)
Loading