regulator: tps65090: Set voltage for fixed regulators
According to the tps65090 data manual [0], the DCDC1 and DCDC2 step-down converters and the LDO's have a fixed output voltage. Add this information to the driver since these fixed regulators can be used as parent input supply for switches that don't have an output voltage defined. So the regulator core needs to fetch the FET parent output voltage if the child voltage is queried. [0]: http://www.ti.com/lit/gpn/tps65090 Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk> Signed-off-by: Mark Brown <broonie@linaro.org>
This commit is contained in:
parent
7171511eae
commit
4f2352cf52
@ -192,12 +192,14 @@ static struct regulator_ops tps65090_fet_control_ops = {
|
||||
static struct regulator_ops tps65090_ldo_ops = {
|
||||
};
|
||||
|
||||
#define tps65090_REG_DESC(_id, _sname, _en_reg, _en_bits, _ops) \
|
||||
#define tps65090_REG_DESC(_id, _sname, _en_reg, _en_bits, _nvolt, _volt, _ops) \
|
||||
{ \
|
||||
.name = "TPS65090_RAILS"#_id, \
|
||||
.supply_name = _sname, \
|
||||
.id = TPS65090_REGULATOR_##_id, \
|
||||
.n_voltages = _nvolt, \
|
||||
.ops = &_ops, \
|
||||
.fixed_uV = _volt, \
|
||||
.enable_reg = _en_reg, \
|
||||
.enable_val = _en_bits, \
|
||||
.enable_mask = _en_bits, \
|
||||
@ -205,39 +207,45 @@ static struct regulator_ops tps65090_ldo_ops = {
|
||||
.owner = THIS_MODULE, \
|
||||
}
|
||||
|
||||
#define tps65090_REG_FIXEDV(_id, _sname, en_reg, _en_bits, _volt, _ops) \
|
||||
tps65090_REG_DESC(_id, _sname, en_reg, _en_bits, 1, _volt, _ops)
|
||||
|
||||
#define tps65090_REG_SWITCH(_id, _sname, en_reg, _en_bits, _ops) \
|
||||
tps65090_REG_DESC(_id, _sname, en_reg, _en_bits, 0, 0, _ops)
|
||||
|
||||
static struct regulator_desc tps65090_regulator_desc[] = {
|
||||
tps65090_REG_DESC(DCDC1, "vsys1", 0x0C, BIT(CTRL_EN_BIT),
|
||||
tps65090_REG_FIXEDV(DCDC1, "vsys1", 0x0C, BIT(CTRL_EN_BIT), 5000000,
|
||||
tps65090_reg_control_ops),
|
||||
tps65090_REG_DESC(DCDC2, "vsys2", 0x0D, BIT(CTRL_EN_BIT),
|
||||
tps65090_REG_FIXEDV(DCDC2, "vsys2", 0x0D, BIT(CTRL_EN_BIT), 3300000,
|
||||
tps65090_reg_control_ops),
|
||||
tps65090_REG_DESC(DCDC3, "vsys3", 0x0E, BIT(CTRL_EN_BIT),
|
||||
tps65090_REG_SWITCH(DCDC3, "vsys3", 0x0E, BIT(CTRL_EN_BIT),
|
||||
tps65090_reg_control_ops),
|
||||
|
||||
tps65090_REG_DESC(FET1, "infet1", 0x0F,
|
||||
tps65090_REG_SWITCH(FET1, "infet1", 0x0F,
|
||||
BIT(CTRL_EN_BIT) | BIT(CTRL_PG_BIT),
|
||||
tps65090_fet_control_ops),
|
||||
tps65090_REG_DESC(FET2, "infet2", 0x10,
|
||||
tps65090_REG_SWITCH(FET2, "infet2", 0x10,
|
||||
BIT(CTRL_EN_BIT) | BIT(CTRL_PG_BIT),
|
||||
tps65090_fet_control_ops),
|
||||
tps65090_REG_DESC(FET3, "infet3", 0x11,
|
||||
tps65090_REG_SWITCH(FET3, "infet3", 0x11,
|
||||
BIT(CTRL_EN_BIT) | BIT(CTRL_PG_BIT),
|
||||
tps65090_fet_control_ops),
|
||||
tps65090_REG_DESC(FET4, "infet4", 0x12,
|
||||
tps65090_REG_SWITCH(FET4, "infet4", 0x12,
|
||||
BIT(CTRL_EN_BIT) | BIT(CTRL_PG_BIT),
|
||||
tps65090_fet_control_ops),
|
||||
tps65090_REG_DESC(FET5, "infet5", 0x13,
|
||||
tps65090_REG_SWITCH(FET5, "infet5", 0x13,
|
||||
BIT(CTRL_EN_BIT) | BIT(CTRL_PG_BIT),
|
||||
tps65090_fet_control_ops),
|
||||
tps65090_REG_DESC(FET6, "infet6", 0x14,
|
||||
tps65090_REG_SWITCH(FET6, "infet6", 0x14,
|
||||
BIT(CTRL_EN_BIT) | BIT(CTRL_PG_BIT),
|
||||
tps65090_fet_control_ops),
|
||||
tps65090_REG_DESC(FET7, "infet7", 0x15,
|
||||
tps65090_REG_SWITCH(FET7, "infet7", 0x15,
|
||||
BIT(CTRL_EN_BIT) | BIT(CTRL_PG_BIT),
|
||||
tps65090_fet_control_ops),
|
||||
|
||||
tps65090_REG_DESC(LDO1, "vsys-l1", 0, 0,
|
||||
tps65090_REG_FIXEDV(LDO1, "vsys-l1", 0, 0, 5000000,
|
||||
tps65090_ldo_ops),
|
||||
tps65090_REG_DESC(LDO2, "vsys-l2", 0, 0,
|
||||
tps65090_REG_FIXEDV(LDO2, "vsys-l2", 0, 0, 3300000,
|
||||
tps65090_ldo_ops),
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user