regulator: lp3971: Use regulator_list_voltage_table()
Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
parent
055917ac56
commit
cad8d76e20
|
@ -65,11 +65,11 @@ static const int buck_base_addr[] = {
|
|||
#define LP3971_BUCK_TARGET_VOL1_REG(x) (buck_base_addr[x])
|
||||
#define LP3971_BUCK_TARGET_VOL2_REG(x) (buck_base_addr[x]+1)
|
||||
|
||||
static const int buck_voltage_map[] = {
|
||||
0, 800, 850, 900, 950, 1000, 1050, 1100,
|
||||
1150, 1200, 1250, 1300, 1350, 1400, 1450, 1500,
|
||||
1550, 1600, 1650, 1700, 1800, 1900, 2500, 2800,
|
||||
3000, 3300,
|
||||
static const unsigned int buck_voltage_map[] = {
|
||||
0, 800000, 850000, 900000, 950000, 1000000, 1050000, 1100000,
|
||||
1150000, 1200000, 1250000, 1300000, 1350000, 1400000, 1450000, 1500000,
|
||||
1550000, 1600000, 1650000, 1700000, 1800000, 1900000, 2500000, 2800000,
|
||||
3000000, 3300000,
|
||||
};
|
||||
|
||||
#define BUCK_TARGET_VOL_MASK 0x3f
|
||||
|
@ -98,39 +98,19 @@ static const int buck_voltage_map[] = {
|
|||
#define LDO_VOL_CONTR_SHIFT(x) ((x & 1) << 2)
|
||||
#define LDO_VOL_CONTR_MASK 0x0f
|
||||
|
||||
static const int ldo45_voltage_map[] = {
|
||||
1000, 1050, 1100, 1150, 1200, 1250, 1300, 1350,
|
||||
1400, 1500, 1800, 1900, 2500, 2800, 3000, 3300,
|
||||
static const unsigned int ldo45_voltage_map[] = {
|
||||
1000000, 1050000, 1100000, 1150000, 1200000, 1250000, 1300000, 1350000,
|
||||
1400000, 1500000, 1800000, 1900000, 2500000, 2800000, 3000000, 3300000,
|
||||
};
|
||||
|
||||
static const int ldo123_voltage_map[] = {
|
||||
1800, 1900, 2000, 2100, 2200, 2300, 2400, 2500,
|
||||
2600, 2700, 2800, 2900, 3000, 3100, 3200, 3300,
|
||||
static const unsigned int ldo123_voltage_map[] = {
|
||||
1800000, 1900000, 2000000, 2100000, 2200000, 2300000, 2400000, 2500000,
|
||||
2600000, 2700000, 2800000, 2900000, 3000000, 3100000, 3200000, 3300000,
|
||||
};
|
||||
|
||||
static const int *ldo_voltage_map[] = {
|
||||
ldo123_voltage_map, /* LDO1 */
|
||||
ldo123_voltage_map, /* LDO2 */
|
||||
ldo123_voltage_map, /* LDO3 */
|
||||
ldo45_voltage_map, /* LDO4 */
|
||||
ldo45_voltage_map, /* LDO5 */
|
||||
};
|
||||
|
||||
#define LDO_VOL_VALUE_MAP(x) (ldo_voltage_map[(x - LP3971_LDO1)])
|
||||
|
||||
#define LDO_VOL_MIN_IDX 0x00
|
||||
#define LDO_VOL_MAX_IDX 0x0f
|
||||
|
||||
static int lp3971_ldo_list_voltage(struct regulator_dev *dev, unsigned index)
|
||||
{
|
||||
int ldo = rdev_get_id(dev) - LP3971_LDO1;
|
||||
|
||||
if (index > LDO_VOL_MAX_IDX)
|
||||
return -EINVAL;
|
||||
|
||||
return 1000 * LDO_VOL_VALUE_MAP(ldo)[index];
|
||||
}
|
||||
|
||||
static int lp3971_ldo_is_enabled(struct regulator_dev *dev)
|
||||
{
|
||||
struct lp3971 *lp3971 = rdev_get_drvdata(dev);
|
||||
|
@ -169,7 +149,7 @@ static int lp3971_ldo_get_voltage(struct regulator_dev *dev)
|
|||
reg = lp3971_reg_read(lp3971, LP3971_LDO_VOL_CONTR_REG(ldo));
|
||||
val = (reg >> LDO_VOL_CONTR_SHIFT(ldo)) & LDO_VOL_CONTR_MASK;
|
||||
|
||||
return 1000 * LDO_VOL_VALUE_MAP(ldo)[val];
|
||||
return dev->desc->volt_table[val];
|
||||
}
|
||||
|
||||
static int lp3971_ldo_set_voltage_sel(struct regulator_dev *dev,
|
||||
|
@ -184,7 +164,7 @@ static int lp3971_ldo_set_voltage_sel(struct regulator_dev *dev,
|
|||
}
|
||||
|
||||
static struct regulator_ops lp3971_ldo_ops = {
|
||||
.list_voltage = lp3971_ldo_list_voltage,
|
||||
.list_voltage = regulator_list_voltage_table,
|
||||
.is_enabled = lp3971_ldo_is_enabled,
|
||||
.enable = lp3971_ldo_enable,
|
||||
.disable = lp3971_ldo_disable,
|
||||
|
@ -192,14 +172,6 @@ static struct regulator_ops lp3971_ldo_ops = {
|
|||
.set_voltage_sel = lp3971_ldo_set_voltage_sel,
|
||||
};
|
||||
|
||||
static int lp3971_dcdc_list_voltage(struct regulator_dev *dev, unsigned index)
|
||||
{
|
||||
if (index < BUCK_TARGET_VOL_MIN_IDX || index > BUCK_TARGET_VOL_MAX_IDX)
|
||||
return -EINVAL;
|
||||
|
||||
return 1000 * buck_voltage_map[index];
|
||||
}
|
||||
|
||||
static int lp3971_dcdc_is_enabled(struct regulator_dev *dev)
|
||||
{
|
||||
struct lp3971 *lp3971 = rdev_get_drvdata(dev);
|
||||
|
@ -240,7 +212,7 @@ static int lp3971_dcdc_get_voltage(struct regulator_dev *dev)
|
|||
reg &= BUCK_TARGET_VOL_MASK;
|
||||
|
||||
if (reg <= BUCK_TARGET_VOL_MAX_IDX)
|
||||
val = 1000 * buck_voltage_map[reg];
|
||||
val = buck_voltage_map[reg];
|
||||
else {
|
||||
val = 0;
|
||||
dev_warn(&dev->dev, "chip reported incorrect voltage value.\n");
|
||||
|
@ -273,7 +245,7 @@ static int lp3971_dcdc_set_voltage_sel(struct regulator_dev *dev,
|
|||
}
|
||||
|
||||
static struct regulator_ops lp3971_dcdc_ops = {
|
||||
.list_voltage = lp3971_dcdc_list_voltage,
|
||||
.list_voltage = regulator_list_voltage_table,
|
||||
.is_enabled = lp3971_dcdc_is_enabled,
|
||||
.enable = lp3971_dcdc_enable,
|
||||
.disable = lp3971_dcdc_disable,
|
||||
|
@ -287,6 +259,7 @@ static const struct regulator_desc regulators[] = {
|
|||
.id = LP3971_LDO1,
|
||||
.ops = &lp3971_ldo_ops,
|
||||
.n_voltages = ARRAY_SIZE(ldo123_voltage_map),
|
||||
.volt_table = ldo123_voltage_map,
|
||||
.type = REGULATOR_VOLTAGE,
|
||||
.owner = THIS_MODULE,
|
||||
},
|
||||
|
@ -295,6 +268,7 @@ static const struct regulator_desc regulators[] = {
|
|||
.id = LP3971_LDO2,
|
||||
.ops = &lp3971_ldo_ops,
|
||||
.n_voltages = ARRAY_SIZE(ldo123_voltage_map),
|
||||
.volt_table = ldo123_voltage_map,
|
||||
.type = REGULATOR_VOLTAGE,
|
||||
.owner = THIS_MODULE,
|
||||
},
|
||||
|
@ -303,6 +277,7 @@ static const struct regulator_desc regulators[] = {
|
|||
.id = LP3971_LDO3,
|
||||
.ops = &lp3971_ldo_ops,
|
||||
.n_voltages = ARRAY_SIZE(ldo123_voltage_map),
|
||||
.volt_table = ldo123_voltage_map,
|
||||
.type = REGULATOR_VOLTAGE,
|
||||
.owner = THIS_MODULE,
|
||||
},
|
||||
|
@ -311,6 +286,7 @@ static const struct regulator_desc regulators[] = {
|
|||
.id = LP3971_LDO4,
|
||||
.ops = &lp3971_ldo_ops,
|
||||
.n_voltages = ARRAY_SIZE(ldo45_voltage_map),
|
||||
.volt_table = ldo45_voltage_map,
|
||||
.type = REGULATOR_VOLTAGE,
|
||||
.owner = THIS_MODULE,
|
||||
},
|
||||
|
@ -319,6 +295,7 @@ static const struct regulator_desc regulators[] = {
|
|||
.id = LP3971_LDO5,
|
||||
.ops = &lp3971_ldo_ops,
|
||||
.n_voltages = ARRAY_SIZE(ldo45_voltage_map),
|
||||
.volt_table = ldo45_voltage_map,
|
||||
.type = REGULATOR_VOLTAGE,
|
||||
.owner = THIS_MODULE,
|
||||
},
|
||||
|
@ -327,6 +304,7 @@ static const struct regulator_desc regulators[] = {
|
|||
.id = LP3971_DCDC1,
|
||||
.ops = &lp3971_dcdc_ops,
|
||||
.n_voltages = ARRAY_SIZE(buck_voltage_map),
|
||||
.volt_table = buck_voltage_map,
|
||||
.type = REGULATOR_VOLTAGE,
|
||||
.owner = THIS_MODULE,
|
||||
},
|
||||
|
@ -335,6 +313,7 @@ static const struct regulator_desc regulators[] = {
|
|||
.id = LP3971_DCDC2,
|
||||
.ops = &lp3971_dcdc_ops,
|
||||
.n_voltages = ARRAY_SIZE(buck_voltage_map),
|
||||
.volt_table = buck_voltage_map,
|
||||
.type = REGULATOR_VOLTAGE,
|
||||
.owner = THIS_MODULE,
|
||||
},
|
||||
|
@ -343,6 +322,7 @@ static const struct regulator_desc regulators[] = {
|
|||
.id = LP3971_DCDC3,
|
||||
.ops = &lp3971_dcdc_ops,
|
||||
.n_voltages = ARRAY_SIZE(buck_voltage_map),
|
||||
.volt_table = buck_voltage_map,
|
||||
.type = REGULATOR_VOLTAGE,
|
||||
.owner = THIS_MODULE,
|
||||
},
|
||||
|
|
Loading…
Reference in a new issue