forked from Minki/linux
Merge branch 'regulator-5.0' into regulator-linus
This commit is contained in:
commit
c364098fe8
@ -573,7 +573,7 @@ static const struct regulator_desc axp22x_regulators[] = {
|
|||||||
AXP22X_DCDC3_V_OUT, AXP22X_DCDC3_V_OUT_MASK,
|
AXP22X_DCDC3_V_OUT, AXP22X_DCDC3_V_OUT_MASK,
|
||||||
AXP22X_PWR_OUT_CTRL1, AXP22X_PWR_OUT_DCDC3_MASK),
|
AXP22X_PWR_OUT_CTRL1, AXP22X_PWR_OUT_DCDC3_MASK),
|
||||||
AXP_DESC(AXP22X, DCDC4, "dcdc4", "vin4", 600, 1540, 20,
|
AXP_DESC(AXP22X, DCDC4, "dcdc4", "vin4", 600, 1540, 20,
|
||||||
AXP22X_DCDC4_V_OUT, AXP22X_DCDC4_V_OUT,
|
AXP22X_DCDC4_V_OUT, AXP22X_DCDC4_V_OUT_MASK,
|
||||||
AXP22X_PWR_OUT_CTRL1, AXP22X_PWR_OUT_DCDC4_MASK),
|
AXP22X_PWR_OUT_CTRL1, AXP22X_PWR_OUT_DCDC4_MASK),
|
||||||
AXP_DESC(AXP22X, DCDC5, "dcdc5", "vin5", 1000, 2550, 50,
|
AXP_DESC(AXP22X, DCDC5, "dcdc5", "vin5", 1000, 2550, 50,
|
||||||
AXP22X_DCDC5_V_OUT, AXP22X_DCDC5_V_OUT_MASK,
|
AXP22X_DCDC5_V_OUT, AXP22X_DCDC5_V_OUT_MASK,
|
||||||
@ -719,7 +719,7 @@ static const struct regulator_desc axp803_regulators[] = {
|
|||||||
AXP22X_ALDO1_V_OUT, AXP22X_ALDO1_V_OUT_MASK,
|
AXP22X_ALDO1_V_OUT, AXP22X_ALDO1_V_OUT_MASK,
|
||||||
AXP22X_PWR_OUT_CTRL3, AXP806_PWR_OUT_ALDO1_MASK),
|
AXP22X_PWR_OUT_CTRL3, AXP806_PWR_OUT_ALDO1_MASK),
|
||||||
AXP_DESC(AXP803, ALDO2, "aldo2", "aldoin", 700, 3300, 100,
|
AXP_DESC(AXP803, ALDO2, "aldo2", "aldoin", 700, 3300, 100,
|
||||||
AXP22X_ALDO2_V_OUT, AXP22X_ALDO2_V_OUT,
|
AXP22X_ALDO2_V_OUT, AXP22X_ALDO2_V_OUT_MASK,
|
||||||
AXP22X_PWR_OUT_CTRL3, AXP806_PWR_OUT_ALDO2_MASK),
|
AXP22X_PWR_OUT_CTRL3, AXP806_PWR_OUT_ALDO2_MASK),
|
||||||
AXP_DESC(AXP803, ALDO3, "aldo3", "aldoin", 700, 3300, 100,
|
AXP_DESC(AXP803, ALDO3, "aldo3", "aldoin", 700, 3300, 100,
|
||||||
AXP22X_ALDO3_V_OUT, AXP22X_ALDO3_V_OUT_MASK,
|
AXP22X_ALDO3_V_OUT, AXP22X_ALDO3_V_OUT_MASK,
|
||||||
@ -729,7 +729,7 @@ static const struct regulator_desc axp803_regulators[] = {
|
|||||||
AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_DLDO1_MASK),
|
AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_DLDO1_MASK),
|
||||||
AXP_DESC_RANGES(AXP803, DLDO2, "dldo2", "dldoin",
|
AXP_DESC_RANGES(AXP803, DLDO2, "dldo2", "dldoin",
|
||||||
axp803_dldo2_ranges, AXP803_DLDO2_NUM_VOLTAGES,
|
axp803_dldo2_ranges, AXP803_DLDO2_NUM_VOLTAGES,
|
||||||
AXP22X_DLDO2_V_OUT, AXP22X_DLDO2_V_OUT,
|
AXP22X_DLDO2_V_OUT, AXP22X_DLDO2_V_OUT_MASK,
|
||||||
AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_DLDO2_MASK),
|
AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_DLDO2_MASK),
|
||||||
AXP_DESC(AXP803, DLDO3, "dldo3", "dldoin", 700, 3300, 100,
|
AXP_DESC(AXP803, DLDO3, "dldo3", "dldoin", 700, 3300, 100,
|
||||||
AXP22X_DLDO3_V_OUT, AXP22X_DLDO3_V_OUT_MASK,
|
AXP22X_DLDO3_V_OUT, AXP22X_DLDO3_V_OUT_MASK,
|
||||||
@ -744,7 +744,7 @@ static const struct regulator_desc axp803_regulators[] = {
|
|||||||
AXP22X_ELDO2_V_OUT, AXP22X_ELDO2_V_OUT_MASK,
|
AXP22X_ELDO2_V_OUT, AXP22X_ELDO2_V_OUT_MASK,
|
||||||
AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_ELDO2_MASK),
|
AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_ELDO2_MASK),
|
||||||
AXP_DESC(AXP803, ELDO3, "eldo3", "eldoin", 700, 1900, 50,
|
AXP_DESC(AXP803, ELDO3, "eldo3", "eldoin", 700, 1900, 50,
|
||||||
AXP22X_ELDO3_V_OUT, AXP22X_ELDO3_V_OUT,
|
AXP22X_ELDO3_V_OUT, AXP22X_ELDO3_V_OUT_MASK,
|
||||||
AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_ELDO3_MASK),
|
AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_ELDO3_MASK),
|
||||||
AXP_DESC(AXP803, FLDO1, "fldo1", "fldoin", 700, 1450, 50,
|
AXP_DESC(AXP803, FLDO1, "fldo1", "fldoin", 700, 1450, 50,
|
||||||
AXP803_FLDO1_V_OUT, AXP803_FLDO1_V_OUT_MASK,
|
AXP803_FLDO1_V_OUT, AXP803_FLDO1_V_OUT_MASK,
|
||||||
@ -791,7 +791,7 @@ static const struct regulator_desc axp806_regulators[] = {
|
|||||||
AXP806_DCDCA_V_CTRL, AXP806_DCDCA_V_CTRL_MASK,
|
AXP806_DCDCA_V_CTRL, AXP806_DCDCA_V_CTRL_MASK,
|
||||||
AXP806_PWR_OUT_CTRL1, AXP806_PWR_OUT_DCDCA_MASK),
|
AXP806_PWR_OUT_CTRL1, AXP806_PWR_OUT_DCDCA_MASK),
|
||||||
AXP_DESC(AXP806, DCDCB, "dcdcb", "vinb", 1000, 2550, 50,
|
AXP_DESC(AXP806, DCDCB, "dcdcb", "vinb", 1000, 2550, 50,
|
||||||
AXP806_DCDCB_V_CTRL, AXP806_DCDCB_V_CTRL,
|
AXP806_DCDCB_V_CTRL, AXP806_DCDCB_V_CTRL_MASK,
|
||||||
AXP806_PWR_OUT_CTRL1, AXP806_PWR_OUT_DCDCB_MASK),
|
AXP806_PWR_OUT_CTRL1, AXP806_PWR_OUT_DCDCB_MASK),
|
||||||
AXP_DESC_RANGES(AXP806, DCDCC, "dcdcc", "vinc",
|
AXP_DESC_RANGES(AXP806, DCDCC, "dcdcc", "vinc",
|
||||||
axp806_dcdca_ranges, AXP806_DCDCA_NUM_VOLTAGES,
|
axp806_dcdca_ranges, AXP806_DCDCA_NUM_VOLTAGES,
|
||||||
@ -817,7 +817,7 @@ static const struct regulator_desc axp806_regulators[] = {
|
|||||||
AXP806_BLDO1_V_CTRL, AXP806_BLDO1_V_CTRL_MASK,
|
AXP806_BLDO1_V_CTRL, AXP806_BLDO1_V_CTRL_MASK,
|
||||||
AXP806_PWR_OUT_CTRL2, AXP806_PWR_OUT_BLDO1_MASK),
|
AXP806_PWR_OUT_CTRL2, AXP806_PWR_OUT_BLDO1_MASK),
|
||||||
AXP_DESC(AXP806, BLDO2, "bldo2", "bldoin", 700, 1900, 100,
|
AXP_DESC(AXP806, BLDO2, "bldo2", "bldoin", 700, 1900, 100,
|
||||||
AXP806_BLDO2_V_CTRL, AXP806_BLDO2_V_CTRL,
|
AXP806_BLDO2_V_CTRL, AXP806_BLDO2_V_CTRL_MASK,
|
||||||
AXP806_PWR_OUT_CTRL2, AXP806_PWR_OUT_BLDO2_MASK),
|
AXP806_PWR_OUT_CTRL2, AXP806_PWR_OUT_BLDO2_MASK),
|
||||||
AXP_DESC(AXP806, BLDO3, "bldo3", "bldoin", 700, 1900, 100,
|
AXP_DESC(AXP806, BLDO3, "bldo3", "bldoin", 700, 1900, 100,
|
||||||
AXP806_BLDO3_V_CTRL, AXP806_BLDO3_V_CTRL_MASK,
|
AXP806_BLDO3_V_CTRL, AXP806_BLDO3_V_CTRL_MASK,
|
||||||
@ -952,7 +952,7 @@ static const struct regulator_desc axp813_regulators[] = {
|
|||||||
AXP22X_ALDO1_V_OUT, AXP22X_ALDO1_V_OUT_MASK,
|
AXP22X_ALDO1_V_OUT, AXP22X_ALDO1_V_OUT_MASK,
|
||||||
AXP22X_PWR_OUT_CTRL3, AXP806_PWR_OUT_ALDO1_MASK),
|
AXP22X_PWR_OUT_CTRL3, AXP806_PWR_OUT_ALDO1_MASK),
|
||||||
AXP_DESC(AXP813, ALDO2, "aldo2", "aldoin", 700, 3300, 100,
|
AXP_DESC(AXP813, ALDO2, "aldo2", "aldoin", 700, 3300, 100,
|
||||||
AXP22X_ALDO2_V_OUT, AXP22X_ALDO2_V_OUT,
|
AXP22X_ALDO2_V_OUT, AXP22X_ALDO2_V_OUT_MASK,
|
||||||
AXP22X_PWR_OUT_CTRL3, AXP806_PWR_OUT_ALDO2_MASK),
|
AXP22X_PWR_OUT_CTRL3, AXP806_PWR_OUT_ALDO2_MASK),
|
||||||
AXP_DESC(AXP813, ALDO3, "aldo3", "aldoin", 700, 3300, 100,
|
AXP_DESC(AXP813, ALDO3, "aldo3", "aldoin", 700, 3300, 100,
|
||||||
AXP22X_ALDO3_V_OUT, AXP22X_ALDO3_V_OUT_MASK,
|
AXP22X_ALDO3_V_OUT, AXP22X_ALDO3_V_OUT_MASK,
|
||||||
@ -962,7 +962,7 @@ static const struct regulator_desc axp813_regulators[] = {
|
|||||||
AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_DLDO1_MASK),
|
AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_DLDO1_MASK),
|
||||||
AXP_DESC_RANGES(AXP813, DLDO2, "dldo2", "dldoin",
|
AXP_DESC_RANGES(AXP813, DLDO2, "dldo2", "dldoin",
|
||||||
axp803_dldo2_ranges, AXP803_DLDO2_NUM_VOLTAGES,
|
axp803_dldo2_ranges, AXP803_DLDO2_NUM_VOLTAGES,
|
||||||
AXP22X_DLDO2_V_OUT, AXP22X_DLDO2_V_OUT,
|
AXP22X_DLDO2_V_OUT, AXP22X_DLDO2_V_OUT_MASK,
|
||||||
AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_DLDO2_MASK),
|
AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_DLDO2_MASK),
|
||||||
AXP_DESC(AXP813, DLDO3, "dldo3", "dldoin", 700, 3300, 100,
|
AXP_DESC(AXP813, DLDO3, "dldo3", "dldoin", 700, 3300, 100,
|
||||||
AXP22X_DLDO3_V_OUT, AXP22X_DLDO3_V_OUT_MASK,
|
AXP22X_DLDO3_V_OUT, AXP22X_DLDO3_V_OUT_MASK,
|
||||||
@ -977,7 +977,7 @@ static const struct regulator_desc axp813_regulators[] = {
|
|||||||
AXP22X_ELDO2_V_OUT, AXP22X_ELDO2_V_OUT_MASK,
|
AXP22X_ELDO2_V_OUT, AXP22X_ELDO2_V_OUT_MASK,
|
||||||
AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_ELDO2_MASK),
|
AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_ELDO2_MASK),
|
||||||
AXP_DESC(AXP813, ELDO3, "eldo3", "eldoin", 700, 1900, 50,
|
AXP_DESC(AXP813, ELDO3, "eldo3", "eldoin", 700, 1900, 50,
|
||||||
AXP22X_ELDO3_V_OUT, AXP22X_ELDO3_V_OUT,
|
AXP22X_ELDO3_V_OUT, AXP22X_ELDO3_V_OUT_MASK,
|
||||||
AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_ELDO3_MASK),
|
AXP22X_PWR_OUT_CTRL2, AXP22X_PWR_OUT_ELDO3_MASK),
|
||||||
/* to do / check ... */
|
/* to do / check ... */
|
||||||
AXP_DESC(AXP813, FLDO1, "fldo1", "fldoin", 700, 1450, 50,
|
AXP_DESC(AXP813, FLDO1, "fldo1", "fldoin", 700, 1450, 50,
|
||||||
|
@ -242,8 +242,12 @@ static int bcm590xx_get_enable_register(int id)
|
|||||||
case BCM590XX_REG_SDSR2:
|
case BCM590XX_REG_SDSR2:
|
||||||
reg = BCM590XX_SDSR2PMCTRL1;
|
reg = BCM590XX_SDSR2PMCTRL1;
|
||||||
break;
|
break;
|
||||||
|
case BCM590XX_REG_VSR:
|
||||||
|
reg = BCM590XX_VSRPMCTRL1;
|
||||||
|
break;
|
||||||
case BCM590XX_REG_VBUS:
|
case BCM590XX_REG_VBUS:
|
||||||
reg = BCM590XX_OTG_CTRL;
|
reg = BCM590XX_OTG_CTRL;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1349,7 +1349,9 @@ static int set_machine_constraints(struct regulator_dev *rdev,
|
|||||||
* We'll only apply the initial system load if an
|
* We'll only apply the initial system load if an
|
||||||
* initial mode wasn't specified.
|
* initial mode wasn't specified.
|
||||||
*/
|
*/
|
||||||
|
regulator_lock(rdev);
|
||||||
drms_uA_update(rdev);
|
drms_uA_update(rdev);
|
||||||
|
regulator_unlock(rdev);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((rdev->constraints->ramp_delay || rdev->constraints->ramp_disable)
|
if ((rdev->constraints->ramp_delay || rdev->constraints->ramp_disable)
|
||||||
@ -2058,15 +2060,7 @@ static void _regulator_put(struct regulator *regulator)
|
|||||||
debugfs_remove_recursive(regulator->debugfs);
|
debugfs_remove_recursive(regulator->debugfs);
|
||||||
|
|
||||||
if (regulator->dev) {
|
if (regulator->dev) {
|
||||||
int count = 0;
|
device_link_remove(regulator->dev, &rdev->dev);
|
||||||
struct regulator *r;
|
|
||||||
|
|
||||||
list_for_each_entry(r, &rdev->consumer_list, list)
|
|
||||||
if (r->dev == regulator->dev)
|
|
||||||
count++;
|
|
||||||
|
|
||||||
if (count == 1)
|
|
||||||
device_link_remove(regulator->dev, &rdev->dev);
|
|
||||||
|
|
||||||
/* remove any sysfs entries */
|
/* remove any sysfs entries */
|
||||||
sysfs_remove_link(&rdev->dev.kobj, regulator->supply_name);
|
sysfs_remove_link(&rdev->dev.kobj, regulator->supply_name);
|
||||||
|
@ -290,10 +290,10 @@ static const struct regulator_ops da9052_ldo_ops = {
|
|||||||
.disable = regulator_disable_regmap,
|
.disable = regulator_disable_regmap,
|
||||||
};
|
};
|
||||||
|
|
||||||
#define DA9052_LDO(_id, step, min, max, sbits, ebits, abits) \
|
#define DA9052_LDO(_id, _name, step, min, max, sbits, ebits, abits) \
|
||||||
{\
|
{\
|
||||||
.reg_desc = {\
|
.reg_desc = {\
|
||||||
.name = #_id,\
|
.name = #_name,\
|
||||||
.ops = &da9052_ldo_ops,\
|
.ops = &da9052_ldo_ops,\
|
||||||
.type = REGULATOR_VOLTAGE,\
|
.type = REGULATOR_VOLTAGE,\
|
||||||
.id = DA9052_ID_##_id,\
|
.id = DA9052_ID_##_id,\
|
||||||
@ -310,10 +310,10 @@ static const struct regulator_ops da9052_ldo_ops = {
|
|||||||
.activate_bit = (abits),\
|
.activate_bit = (abits),\
|
||||||
}
|
}
|
||||||
|
|
||||||
#define DA9052_DCDC(_id, step, min, max, sbits, ebits, abits) \
|
#define DA9052_DCDC(_id, _name, step, min, max, sbits, ebits, abits) \
|
||||||
{\
|
{\
|
||||||
.reg_desc = {\
|
.reg_desc = {\
|
||||||
.name = #_id,\
|
.name = #_name,\
|
||||||
.ops = &da9052_dcdc_ops,\
|
.ops = &da9052_dcdc_ops,\
|
||||||
.type = REGULATOR_VOLTAGE,\
|
.type = REGULATOR_VOLTAGE,\
|
||||||
.id = DA9052_ID_##_id,\
|
.id = DA9052_ID_##_id,\
|
||||||
@ -331,37 +331,37 @@ static const struct regulator_ops da9052_ldo_ops = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static struct da9052_regulator_info da9052_regulator_info[] = {
|
static struct da9052_regulator_info da9052_regulator_info[] = {
|
||||||
DA9052_DCDC(BUCK1, 25, 500, 2075, 6, 6, DA9052_SUPPLY_VBCOREGO),
|
DA9052_DCDC(BUCK1, buck1, 25, 500, 2075, 6, 6, DA9052_SUPPLY_VBCOREGO),
|
||||||
DA9052_DCDC(BUCK2, 25, 500, 2075, 6, 6, DA9052_SUPPLY_VBPROGO),
|
DA9052_DCDC(BUCK2, buck2, 25, 500, 2075, 6, 6, DA9052_SUPPLY_VBPROGO),
|
||||||
DA9052_DCDC(BUCK3, 25, 950, 2525, 6, 6, DA9052_SUPPLY_VBMEMGO),
|
DA9052_DCDC(BUCK3, buck3, 25, 950, 2525, 6, 6, DA9052_SUPPLY_VBMEMGO),
|
||||||
DA9052_DCDC(BUCK4, 50, 1800, 3600, 5, 6, 0),
|
DA9052_DCDC(BUCK4, buck4, 50, 1800, 3600, 5, 6, 0),
|
||||||
DA9052_LDO(LDO1, 50, 600, 1800, 5, 6, 0),
|
DA9052_LDO(LDO1, ldo1, 50, 600, 1800, 5, 6, 0),
|
||||||
DA9052_LDO(LDO2, 25, 600, 1800, 6, 6, DA9052_SUPPLY_VLDO2GO),
|
DA9052_LDO(LDO2, ldo2, 25, 600, 1800, 6, 6, DA9052_SUPPLY_VLDO2GO),
|
||||||
DA9052_LDO(LDO3, 25, 1725, 3300, 6, 6, DA9052_SUPPLY_VLDO3GO),
|
DA9052_LDO(LDO3, ldo3, 25, 1725, 3300, 6, 6, DA9052_SUPPLY_VLDO3GO),
|
||||||
DA9052_LDO(LDO4, 25, 1725, 3300, 6, 6, 0),
|
DA9052_LDO(LDO4, ldo4, 25, 1725, 3300, 6, 6, 0),
|
||||||
DA9052_LDO(LDO5, 50, 1200, 3600, 6, 6, 0),
|
DA9052_LDO(LDO5, ldo5, 50, 1200, 3600, 6, 6, 0),
|
||||||
DA9052_LDO(LDO6, 50, 1200, 3600, 6, 6, 0),
|
DA9052_LDO(LDO6, ldo6, 50, 1200, 3600, 6, 6, 0),
|
||||||
DA9052_LDO(LDO7, 50, 1200, 3600, 6, 6, 0),
|
DA9052_LDO(LDO7, ldo7, 50, 1200, 3600, 6, 6, 0),
|
||||||
DA9052_LDO(LDO8, 50, 1200, 3600, 6, 6, 0),
|
DA9052_LDO(LDO8, ldo8, 50, 1200, 3600, 6, 6, 0),
|
||||||
DA9052_LDO(LDO9, 50, 1250, 3650, 6, 6, 0),
|
DA9052_LDO(LDO9, ldo9, 50, 1250, 3650, 6, 6, 0),
|
||||||
DA9052_LDO(LDO10, 50, 1200, 3600, 6, 6, 0),
|
DA9052_LDO(LDO10, ldo10, 50, 1200, 3600, 6, 6, 0),
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct da9052_regulator_info da9053_regulator_info[] = {
|
static struct da9052_regulator_info da9053_regulator_info[] = {
|
||||||
DA9052_DCDC(BUCK1, 25, 500, 2075, 6, 6, DA9052_SUPPLY_VBCOREGO),
|
DA9052_DCDC(BUCK1, buck1, 25, 500, 2075, 6, 6, DA9052_SUPPLY_VBCOREGO),
|
||||||
DA9052_DCDC(BUCK2, 25, 500, 2075, 6, 6, DA9052_SUPPLY_VBPROGO),
|
DA9052_DCDC(BUCK2, buck2, 25, 500, 2075, 6, 6, DA9052_SUPPLY_VBPROGO),
|
||||||
DA9052_DCDC(BUCK3, 25, 950, 2525, 6, 6, DA9052_SUPPLY_VBMEMGO),
|
DA9052_DCDC(BUCK3, buck3, 25, 950, 2525, 6, 6, DA9052_SUPPLY_VBMEMGO),
|
||||||
DA9052_DCDC(BUCK4, 25, 950, 2525, 6, 6, 0),
|
DA9052_DCDC(BUCK4, buck4, 25, 950, 2525, 6, 6, 0),
|
||||||
DA9052_LDO(LDO1, 50, 600, 1800, 5, 6, 0),
|
DA9052_LDO(LDO1, ldo1, 50, 600, 1800, 5, 6, 0),
|
||||||
DA9052_LDO(LDO2, 25, 600, 1800, 6, 6, DA9052_SUPPLY_VLDO2GO),
|
DA9052_LDO(LDO2, ldo2, 25, 600, 1800, 6, 6, DA9052_SUPPLY_VLDO2GO),
|
||||||
DA9052_LDO(LDO3, 25, 1725, 3300, 6, 6, DA9052_SUPPLY_VLDO3GO),
|
DA9052_LDO(LDO3, ldo3, 25, 1725, 3300, 6, 6, DA9052_SUPPLY_VLDO3GO),
|
||||||
DA9052_LDO(LDO4, 25, 1725, 3300, 6, 6, 0),
|
DA9052_LDO(LDO4, ldo4, 25, 1725, 3300, 6, 6, 0),
|
||||||
DA9052_LDO(LDO5, 50, 1200, 3600, 6, 6, 0),
|
DA9052_LDO(LDO5, ldo5, 50, 1200, 3600, 6, 6, 0),
|
||||||
DA9052_LDO(LDO6, 50, 1200, 3600, 6, 6, 0),
|
DA9052_LDO(LDO6, ldo6, 50, 1200, 3600, 6, 6, 0),
|
||||||
DA9052_LDO(LDO7, 50, 1200, 3600, 6, 6, 0),
|
DA9052_LDO(LDO7, ldo7, 50, 1200, 3600, 6, 6, 0),
|
||||||
DA9052_LDO(LDO8, 50, 1200, 3600, 6, 6, 0),
|
DA9052_LDO(LDO8, ldo8, 50, 1200, 3600, 6, 6, 0),
|
||||||
DA9052_LDO(LDO9, 50, 1250, 3650, 6, 6, 0),
|
DA9052_LDO(LDO9, ldo9, 50, 1250, 3650, 6, 6, 0),
|
||||||
DA9052_LDO(LDO10, 50, 1200, 3600, 6, 6, 0),
|
DA9052_LDO(LDO10, ldo10, 50, 1200, 3600, 6, 6, 0),
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline struct da9052_regulator_info *find_regulator_info(u8 chip_id,
|
static inline struct da9052_regulator_info *find_regulator_info(u8 chip_id,
|
||||||
|
@ -194,7 +194,7 @@ static const struct regulator_desc lochnagar_regulators[] = {
|
|||||||
.name = "VDDCORE",
|
.name = "VDDCORE",
|
||||||
.supply_name = "SYSVDD",
|
.supply_name = "SYSVDD",
|
||||||
.type = REGULATOR_VOLTAGE,
|
.type = REGULATOR_VOLTAGE,
|
||||||
.n_voltages = 57,
|
.n_voltages = 66,
|
||||||
.ops = &lochnagar_vddcore_ops,
|
.ops = &lochnagar_vddcore_ops,
|
||||||
|
|
||||||
.id = LOCHNAGAR_VDDCORE,
|
.id = LOCHNAGAR_VDDCORE,
|
||||||
@ -226,7 +226,7 @@ static const struct of_device_id lochnagar_of_match[] = {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
.compatible = "cirrus,lochnagar2-mic2vdd",
|
.compatible = "cirrus,lochnagar2-mic2vdd",
|
||||||
.data = &lochnagar_regulators[LOCHNAGAR_MIC1VDD],
|
.data = &lochnagar_regulators[LOCHNAGAR_MIC2VDD],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.compatible = "cirrus,lochnagar2-vddcore",
|
.compatible = "cirrus,lochnagar2-vddcore",
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* Maxim MAX77620 Regulator driver
|
* Maxim MAX77620 Regulator driver
|
||||||
*
|
*
|
||||||
* Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
|
* Copyright (c) 2016-2018, NVIDIA CORPORATION. All rights reserved.
|
||||||
*
|
*
|
||||||
* Author: Mallikarjun Kasoju <mkasoju@nvidia.com>
|
* Author: Mallikarjun Kasoju <mkasoju@nvidia.com>
|
||||||
* Laxman Dewangan <ldewangan@nvidia.com>
|
* Laxman Dewangan <ldewangan@nvidia.com>
|
||||||
@ -803,6 +803,14 @@ static int max77620_regulator_probe(struct platform_device *pdev)
|
|||||||
rdesc = &rinfo[id].desc;
|
rdesc = &rinfo[id].desc;
|
||||||
pmic->rinfo[id] = &max77620_regs_info[id];
|
pmic->rinfo[id] = &max77620_regs_info[id];
|
||||||
pmic->enable_power_mode[id] = MAX77620_POWER_MODE_NORMAL;
|
pmic->enable_power_mode[id] = MAX77620_POWER_MODE_NORMAL;
|
||||||
|
pmic->reg_pdata[id].active_fps_src = -1;
|
||||||
|
pmic->reg_pdata[id].active_fps_pd_slot = -1;
|
||||||
|
pmic->reg_pdata[id].active_fps_pu_slot = -1;
|
||||||
|
pmic->reg_pdata[id].suspend_fps_src = -1;
|
||||||
|
pmic->reg_pdata[id].suspend_fps_pd_slot = -1;
|
||||||
|
pmic->reg_pdata[id].suspend_fps_pu_slot = -1;
|
||||||
|
pmic->reg_pdata[id].power_ok = -1;
|
||||||
|
pmic->reg_pdata[id].ramp_rate_setting = -1;
|
||||||
|
|
||||||
ret = max77620_read_slew_rate(pmic, id);
|
ret = max77620_read_slew_rate(pmic, id);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
|
@ -228,67 +228,67 @@ static const unsigned int mc13783_pwgtdrv_val[] = {
|
|||||||
|
|
||||||
static struct regulator_ops mc13783_gpo_regulator_ops;
|
static struct regulator_ops mc13783_gpo_regulator_ops;
|
||||||
|
|
||||||
#define MC13783_DEFINE(prefix, name, reg, vsel_reg, voltages) \
|
#define MC13783_DEFINE(prefix, name, node, reg, vsel_reg, voltages) \
|
||||||
MC13xxx_DEFINE(MC13783_REG_, name, reg, vsel_reg, voltages, \
|
MC13xxx_DEFINE(MC13783_REG_, name, node, reg, vsel_reg, voltages, \
|
||||||
mc13xxx_regulator_ops)
|
mc13xxx_regulator_ops)
|
||||||
|
|
||||||
#define MC13783_FIXED_DEFINE(prefix, name, reg, voltages) \
|
#define MC13783_FIXED_DEFINE(prefix, name, node, reg, voltages) \
|
||||||
MC13xxx_FIXED_DEFINE(MC13783_REG_, name, reg, voltages, \
|
MC13xxx_FIXED_DEFINE(MC13783_REG_, name, node, reg, voltages, \
|
||||||
mc13xxx_fixed_regulator_ops)
|
mc13xxx_fixed_regulator_ops)
|
||||||
|
|
||||||
#define MC13783_GPO_DEFINE(prefix, name, reg, voltages) \
|
#define MC13783_GPO_DEFINE(prefix, name, node, reg, voltages) \
|
||||||
MC13xxx_GPO_DEFINE(MC13783_REG_, name, reg, voltages, \
|
MC13xxx_GPO_DEFINE(MC13783_REG_, name, node, reg, voltages, \
|
||||||
mc13783_gpo_regulator_ops)
|
mc13783_gpo_regulator_ops)
|
||||||
|
|
||||||
#define MC13783_DEFINE_SW(_name, _reg, _vsel_reg, _voltages) \
|
#define MC13783_DEFINE_SW(_name, _node, _reg, _vsel_reg, _voltages) \
|
||||||
MC13783_DEFINE(REG, _name, _reg, _vsel_reg, _voltages)
|
MC13783_DEFINE(REG, _name, _node, _reg, _vsel_reg, _voltages)
|
||||||
#define MC13783_DEFINE_REGU(_name, _reg, _vsel_reg, _voltages) \
|
#define MC13783_DEFINE_REGU(_name, _node, _reg, _vsel_reg, _voltages) \
|
||||||
MC13783_DEFINE(REG, _name, _reg, _vsel_reg, _voltages)
|
MC13783_DEFINE(REG, _name, _node, _reg, _vsel_reg, _voltages)
|
||||||
|
|
||||||
static struct mc13xxx_regulator mc13783_regulators[] = {
|
static struct mc13xxx_regulator mc13783_regulators[] = {
|
||||||
MC13783_DEFINE_SW(SW1A, SWITCHERS0, SWITCHERS0, mc13783_sw1x_val),
|
MC13783_DEFINE_SW(SW1A, sw1a, SWITCHERS0, SWITCHERS0, mc13783_sw1x_val),
|
||||||
MC13783_DEFINE_SW(SW1B, SWITCHERS1, SWITCHERS1, mc13783_sw1x_val),
|
MC13783_DEFINE_SW(SW1B, sw1b, SWITCHERS1, SWITCHERS1, mc13783_sw1x_val),
|
||||||
MC13783_DEFINE_SW(SW2A, SWITCHERS2, SWITCHERS2, mc13783_sw2x_val),
|
MC13783_DEFINE_SW(SW2A, sw2a, SWITCHERS2, SWITCHERS2, mc13783_sw2x_val),
|
||||||
MC13783_DEFINE_SW(SW2B, SWITCHERS3, SWITCHERS3, mc13783_sw2x_val),
|
MC13783_DEFINE_SW(SW2B, sw2b, SWITCHERS3, SWITCHERS3, mc13783_sw2x_val),
|
||||||
MC13783_DEFINE_SW(SW3, SWITCHERS5, SWITCHERS5, mc13783_sw3_val),
|
MC13783_DEFINE_SW(SW3, sw3, SWITCHERS5, SWITCHERS5, mc13783_sw3_val),
|
||||||
|
|
||||||
MC13783_FIXED_DEFINE(REG, VAUDIO, REGULATORMODE0, mc13783_vaudio_val),
|
MC13783_FIXED_DEFINE(REG, VAUDIO, vaudio, REGULATORMODE0, mc13783_vaudio_val),
|
||||||
MC13783_FIXED_DEFINE(REG, VIOHI, REGULATORMODE0, mc13783_viohi_val),
|
MC13783_FIXED_DEFINE(REG, VIOHI, viohi, REGULATORMODE0, mc13783_viohi_val),
|
||||||
MC13783_DEFINE_REGU(VIOLO, REGULATORMODE0, REGULATORSETTING0,
|
MC13783_DEFINE_REGU(VIOLO, violo, REGULATORMODE0, REGULATORSETTING0,
|
||||||
mc13783_violo_val),
|
mc13783_violo_val),
|
||||||
MC13783_DEFINE_REGU(VDIG, REGULATORMODE0, REGULATORSETTING0,
|
MC13783_DEFINE_REGU(VDIG, vdig, REGULATORMODE0, REGULATORSETTING0,
|
||||||
mc13783_vdig_val),
|
mc13783_vdig_val),
|
||||||
MC13783_DEFINE_REGU(VGEN, REGULATORMODE0, REGULATORSETTING0,
|
MC13783_DEFINE_REGU(VGEN, vgen, REGULATORMODE0, REGULATORSETTING0,
|
||||||
mc13783_vgen_val),
|
mc13783_vgen_val),
|
||||||
MC13783_DEFINE_REGU(VRFDIG, REGULATORMODE0, REGULATORSETTING0,
|
MC13783_DEFINE_REGU(VRFDIG, vrfdig, REGULATORMODE0, REGULATORSETTING0,
|
||||||
mc13783_vrfdig_val),
|
mc13783_vrfdig_val),
|
||||||
MC13783_DEFINE_REGU(VRFREF, REGULATORMODE0, REGULATORSETTING0,
|
MC13783_DEFINE_REGU(VRFREF, vrfref, REGULATORMODE0, REGULATORSETTING0,
|
||||||
mc13783_vrfref_val),
|
mc13783_vrfref_val),
|
||||||
MC13783_DEFINE_REGU(VRFCP, REGULATORMODE0, REGULATORSETTING0,
|
MC13783_DEFINE_REGU(VRFCP, vrfcp, REGULATORMODE0, REGULATORSETTING0,
|
||||||
mc13783_vrfcp_val),
|
mc13783_vrfcp_val),
|
||||||
MC13783_DEFINE_REGU(VSIM, REGULATORMODE1, REGULATORSETTING0,
|
MC13783_DEFINE_REGU(VSIM, vsim, REGULATORMODE1, REGULATORSETTING0,
|
||||||
mc13783_vsim_val),
|
mc13783_vsim_val),
|
||||||
MC13783_DEFINE_REGU(VESIM, REGULATORMODE1, REGULATORSETTING0,
|
MC13783_DEFINE_REGU(VESIM, vesim, REGULATORMODE1, REGULATORSETTING0,
|
||||||
mc13783_vesim_val),
|
mc13783_vesim_val),
|
||||||
MC13783_DEFINE_REGU(VCAM, REGULATORMODE1, REGULATORSETTING0,
|
MC13783_DEFINE_REGU(VCAM, vcam, REGULATORMODE1, REGULATORSETTING0,
|
||||||
mc13783_vcam_val),
|
mc13783_vcam_val),
|
||||||
MC13783_FIXED_DEFINE(REG, VRFBG, REGULATORMODE1, mc13783_vrfbg_val),
|
MC13783_FIXED_DEFINE(REG, VRFBG, vrfbg, REGULATORMODE1, mc13783_vrfbg_val),
|
||||||
MC13783_DEFINE_REGU(VVIB, REGULATORMODE1, REGULATORSETTING1,
|
MC13783_DEFINE_REGU(VVIB, vvib, REGULATORMODE1, REGULATORSETTING1,
|
||||||
mc13783_vvib_val),
|
mc13783_vvib_val),
|
||||||
MC13783_DEFINE_REGU(VRF1, REGULATORMODE1, REGULATORSETTING1,
|
MC13783_DEFINE_REGU(VRF1, vrf1, REGULATORMODE1, REGULATORSETTING1,
|
||||||
mc13783_vrf_val),
|
mc13783_vrf_val),
|
||||||
MC13783_DEFINE_REGU(VRF2, REGULATORMODE1, REGULATORSETTING1,
|
MC13783_DEFINE_REGU(VRF2, vrf2, REGULATORMODE1, REGULATORSETTING1,
|
||||||
mc13783_vrf_val),
|
mc13783_vrf_val),
|
||||||
MC13783_DEFINE_REGU(VMMC1, REGULATORMODE1, REGULATORSETTING1,
|
MC13783_DEFINE_REGU(VMMC1, vmmc1, REGULATORMODE1, REGULATORSETTING1,
|
||||||
mc13783_vmmc_val),
|
mc13783_vmmc_val),
|
||||||
MC13783_DEFINE_REGU(VMMC2, REGULATORMODE1, REGULATORSETTING1,
|
MC13783_DEFINE_REGU(VMMC2, vmmc2, REGULATORMODE1, REGULATORSETTING1,
|
||||||
mc13783_vmmc_val),
|
mc13783_vmmc_val),
|
||||||
MC13783_GPO_DEFINE(REG, GPO1, POWERMISC, mc13783_gpo_val),
|
MC13783_GPO_DEFINE(REG, GPO1, gpo1, POWERMISC, mc13783_gpo_val),
|
||||||
MC13783_GPO_DEFINE(REG, GPO2, POWERMISC, mc13783_gpo_val),
|
MC13783_GPO_DEFINE(REG, GPO2, gpo1, POWERMISC, mc13783_gpo_val),
|
||||||
MC13783_GPO_DEFINE(REG, GPO3, POWERMISC, mc13783_gpo_val),
|
MC13783_GPO_DEFINE(REG, GPO3, gpo1, POWERMISC, mc13783_gpo_val),
|
||||||
MC13783_GPO_DEFINE(REG, GPO4, POWERMISC, mc13783_gpo_val),
|
MC13783_GPO_DEFINE(REG, GPO4, gpo1, POWERMISC, mc13783_gpo_val),
|
||||||
MC13783_GPO_DEFINE(REG, PWGT1SPI, POWERMISC, mc13783_pwgtdrv_val),
|
MC13783_GPO_DEFINE(REG, PWGT1SPI, pwgt1spi, POWERMISC, mc13783_pwgtdrv_val),
|
||||||
MC13783_GPO_DEFINE(REG, PWGT2SPI, POWERMISC, mc13783_pwgtdrv_val),
|
MC13783_GPO_DEFINE(REG, PWGT2SPI, pwgt2spi, POWERMISC, mc13783_pwgtdrv_val),
|
||||||
};
|
};
|
||||||
|
|
||||||
static int mc13783_powermisc_rmw(struct mc13xxx_regulator_priv *priv, u32 mask,
|
static int mc13783_powermisc_rmw(struct mc13xxx_regulator_priv *priv, u32 mask,
|
||||||
|
@ -246,57 +246,57 @@ static struct regulator_ops mc13892_gpo_regulator_ops;
|
|||||||
static struct regulator_ops mc13892_sw_regulator_ops;
|
static struct regulator_ops mc13892_sw_regulator_ops;
|
||||||
|
|
||||||
|
|
||||||
#define MC13892_FIXED_DEFINE(name, reg, voltages) \
|
#define MC13892_FIXED_DEFINE(name, node, reg, voltages) \
|
||||||
MC13xxx_FIXED_DEFINE(MC13892_, name, reg, voltages, \
|
MC13xxx_FIXED_DEFINE(MC13892_, name, node, reg, voltages, \
|
||||||
mc13xxx_fixed_regulator_ops)
|
mc13xxx_fixed_regulator_ops)
|
||||||
|
|
||||||
#define MC13892_GPO_DEFINE(name, reg, voltages) \
|
#define MC13892_GPO_DEFINE(name, node, reg, voltages) \
|
||||||
MC13xxx_GPO_DEFINE(MC13892_, name, reg, voltages, \
|
MC13xxx_GPO_DEFINE(MC13892_, name, node, reg, voltages, \
|
||||||
mc13892_gpo_regulator_ops)
|
mc13892_gpo_regulator_ops)
|
||||||
|
|
||||||
#define MC13892_SW_DEFINE(name, reg, vsel_reg, voltages) \
|
#define MC13892_SW_DEFINE(name, node, reg, vsel_reg, voltages) \
|
||||||
MC13xxx_DEFINE(MC13892_, name, reg, vsel_reg, voltages, \
|
MC13xxx_DEFINE(MC13892_, name, node, reg, vsel_reg, voltages, \
|
||||||
mc13892_sw_regulator_ops)
|
mc13892_sw_regulator_ops)
|
||||||
|
|
||||||
#define MC13892_DEFINE_REGU(name, reg, vsel_reg, voltages) \
|
#define MC13892_DEFINE_REGU(name, node, reg, vsel_reg, voltages) \
|
||||||
MC13xxx_DEFINE(MC13892_, name, reg, vsel_reg, voltages, \
|
MC13xxx_DEFINE(MC13892_, name, node, reg, vsel_reg, voltages, \
|
||||||
mc13xxx_regulator_ops)
|
mc13xxx_regulator_ops)
|
||||||
|
|
||||||
static struct mc13xxx_regulator mc13892_regulators[] = {
|
static struct mc13xxx_regulator mc13892_regulators[] = {
|
||||||
MC13892_DEFINE_REGU(VCOINCELL, POWERCTL0, POWERCTL0, mc13892_vcoincell),
|
MC13892_DEFINE_REGU(VCOINCELL, vcoincell, POWERCTL0, POWERCTL0, mc13892_vcoincell),
|
||||||
MC13892_SW_DEFINE(SW1, SWITCHERS0, SWITCHERS0, mc13892_sw1),
|
MC13892_SW_DEFINE(SW1, sw1, SWITCHERS0, SWITCHERS0, mc13892_sw1),
|
||||||
MC13892_SW_DEFINE(SW2, SWITCHERS1, SWITCHERS1, mc13892_sw),
|
MC13892_SW_DEFINE(SW2, sw2, SWITCHERS1, SWITCHERS1, mc13892_sw),
|
||||||
MC13892_SW_DEFINE(SW3, SWITCHERS2, SWITCHERS2, mc13892_sw),
|
MC13892_SW_DEFINE(SW3, sw3, SWITCHERS2, SWITCHERS2, mc13892_sw),
|
||||||
MC13892_SW_DEFINE(SW4, SWITCHERS3, SWITCHERS3, mc13892_sw),
|
MC13892_SW_DEFINE(SW4, sw4, SWITCHERS3, SWITCHERS3, mc13892_sw),
|
||||||
MC13892_FIXED_DEFINE(SWBST, SWITCHERS5, mc13892_swbst),
|
MC13892_FIXED_DEFINE(SWBST, swbst, SWITCHERS5, mc13892_swbst),
|
||||||
MC13892_FIXED_DEFINE(VIOHI, REGULATORMODE0, mc13892_viohi),
|
MC13892_FIXED_DEFINE(VIOHI, viohi, REGULATORMODE0, mc13892_viohi),
|
||||||
MC13892_DEFINE_REGU(VPLL, REGULATORMODE0, REGULATORSETTING0,
|
MC13892_DEFINE_REGU(VPLL, vpll, REGULATORMODE0, REGULATORSETTING0,
|
||||||
mc13892_vpll),
|
mc13892_vpll),
|
||||||
MC13892_DEFINE_REGU(VDIG, REGULATORMODE0, REGULATORSETTING0,
|
MC13892_DEFINE_REGU(VDIG, vdig, REGULATORMODE0, REGULATORSETTING0,
|
||||||
mc13892_vdig),
|
mc13892_vdig),
|
||||||
MC13892_DEFINE_REGU(VSD, REGULATORMODE1, REGULATORSETTING1,
|
MC13892_DEFINE_REGU(VSD, vsd, REGULATORMODE1, REGULATORSETTING1,
|
||||||
mc13892_vsd),
|
mc13892_vsd),
|
||||||
MC13892_DEFINE_REGU(VUSB2, REGULATORMODE0, REGULATORSETTING0,
|
MC13892_DEFINE_REGU(VUSB2, vusb2, REGULATORMODE0, REGULATORSETTING0,
|
||||||
mc13892_vusb2),
|
mc13892_vusb2),
|
||||||
MC13892_DEFINE_REGU(VVIDEO, REGULATORMODE1, REGULATORSETTING1,
|
MC13892_DEFINE_REGU(VVIDEO, vvideo, REGULATORMODE1, REGULATORSETTING1,
|
||||||
mc13892_vvideo),
|
mc13892_vvideo),
|
||||||
MC13892_DEFINE_REGU(VAUDIO, REGULATORMODE1, REGULATORSETTING1,
|
MC13892_DEFINE_REGU(VAUDIO, vaudio, REGULATORMODE1, REGULATORSETTING1,
|
||||||
mc13892_vaudio),
|
mc13892_vaudio),
|
||||||
MC13892_DEFINE_REGU(VCAM, REGULATORMODE1, REGULATORSETTING0,
|
MC13892_DEFINE_REGU(VCAM, vcam, REGULATORMODE1, REGULATORSETTING0,
|
||||||
mc13892_vcam),
|
mc13892_vcam),
|
||||||
MC13892_DEFINE_REGU(VGEN1, REGULATORMODE0, REGULATORSETTING0,
|
MC13892_DEFINE_REGU(VGEN1, vgen1, REGULATORMODE0, REGULATORSETTING0,
|
||||||
mc13892_vgen1),
|
mc13892_vgen1),
|
||||||
MC13892_DEFINE_REGU(VGEN2, REGULATORMODE0, REGULATORSETTING0,
|
MC13892_DEFINE_REGU(VGEN2, vgen2, REGULATORMODE0, REGULATORSETTING0,
|
||||||
mc13892_vgen2),
|
mc13892_vgen2),
|
||||||
MC13892_DEFINE_REGU(VGEN3, REGULATORMODE1, REGULATORSETTING0,
|
MC13892_DEFINE_REGU(VGEN3, vgen3, REGULATORMODE1, REGULATORSETTING0,
|
||||||
mc13892_vgen3),
|
mc13892_vgen3),
|
||||||
MC13892_FIXED_DEFINE(VUSB, USB1, mc13892_vusb),
|
MC13892_FIXED_DEFINE(VUSB, vusb, USB1, mc13892_vusb),
|
||||||
MC13892_GPO_DEFINE(GPO1, POWERMISC, mc13892_gpo),
|
MC13892_GPO_DEFINE(GPO1, gpo1, POWERMISC, mc13892_gpo),
|
||||||
MC13892_GPO_DEFINE(GPO2, POWERMISC, mc13892_gpo),
|
MC13892_GPO_DEFINE(GPO2, gpo2, POWERMISC, mc13892_gpo),
|
||||||
MC13892_GPO_DEFINE(GPO3, POWERMISC, mc13892_gpo),
|
MC13892_GPO_DEFINE(GPO3, gpo3, POWERMISC, mc13892_gpo),
|
||||||
MC13892_GPO_DEFINE(GPO4, POWERMISC, mc13892_gpo),
|
MC13892_GPO_DEFINE(GPO4, gpo4, POWERMISC, mc13892_gpo),
|
||||||
MC13892_GPO_DEFINE(PWGT1SPI, POWERMISC, mc13892_pwgtdrv),
|
MC13892_GPO_DEFINE(PWGT1SPI, pwgt1spi, POWERMISC, mc13892_pwgtdrv),
|
||||||
MC13892_GPO_DEFINE(PWGT2SPI, POWERMISC, mc13892_pwgtdrv),
|
MC13892_GPO_DEFINE(PWGT2SPI, pwgt2spi, POWERMISC, mc13892_pwgtdrv),
|
||||||
};
|
};
|
||||||
|
|
||||||
static int mc13892_powermisc_rmw(struct mc13xxx_regulator_priv *priv, u32 mask,
|
static int mc13892_powermisc_rmw(struct mc13xxx_regulator_priv *priv, u32 mask,
|
||||||
|
@ -56,10 +56,10 @@ static inline struct mc13xxx_regulator_init_data *mc13xxx_parse_regulators_dt(
|
|||||||
extern struct regulator_ops mc13xxx_regulator_ops;
|
extern struct regulator_ops mc13xxx_regulator_ops;
|
||||||
extern struct regulator_ops mc13xxx_fixed_regulator_ops;
|
extern struct regulator_ops mc13xxx_fixed_regulator_ops;
|
||||||
|
|
||||||
#define MC13xxx_DEFINE(prefix, _name, _reg, _vsel_reg, _voltages, _ops) \
|
#define MC13xxx_DEFINE(prefix, _name, _node, _reg, _vsel_reg, _voltages, _ops) \
|
||||||
[prefix ## _name] = { \
|
[prefix ## _name] = { \
|
||||||
.desc = { \
|
.desc = { \
|
||||||
.name = #_name, \
|
.name = #_node, \
|
||||||
.n_voltages = ARRAY_SIZE(_voltages), \
|
.n_voltages = ARRAY_SIZE(_voltages), \
|
||||||
.volt_table = _voltages, \
|
.volt_table = _voltages, \
|
||||||
.ops = &_ops, \
|
.ops = &_ops, \
|
||||||
@ -74,10 +74,10 @@ extern struct regulator_ops mc13xxx_fixed_regulator_ops;
|
|||||||
.vsel_mask = prefix ## _vsel_reg ## _ ## _name ## VSEL_M,\
|
.vsel_mask = prefix ## _vsel_reg ## _ ## _name ## VSEL_M,\
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MC13xxx_FIXED_DEFINE(prefix, _name, _reg, _voltages, _ops) \
|
#define MC13xxx_FIXED_DEFINE(prefix, _name, _node, _reg, _voltages, _ops) \
|
||||||
[prefix ## _name] = { \
|
[prefix ## _name] = { \
|
||||||
.desc = { \
|
.desc = { \
|
||||||
.name = #_name, \
|
.name = #_node, \
|
||||||
.n_voltages = ARRAY_SIZE(_voltages), \
|
.n_voltages = ARRAY_SIZE(_voltages), \
|
||||||
.volt_table = _voltages, \
|
.volt_table = _voltages, \
|
||||||
.ops = &_ops, \
|
.ops = &_ops, \
|
||||||
@ -89,10 +89,10 @@ extern struct regulator_ops mc13xxx_fixed_regulator_ops;
|
|||||||
.enable_bit = prefix ## _reg ## _ ## _name ## EN, \
|
.enable_bit = prefix ## _reg ## _ ## _name ## EN, \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MC13xxx_GPO_DEFINE(prefix, _name, _reg, _voltages, _ops) \
|
#define MC13xxx_GPO_DEFINE(prefix, _name, _node, _reg, _voltages, _ops) \
|
||||||
[prefix ## _name] = { \
|
[prefix ## _name] = { \
|
||||||
.desc = { \
|
.desc = { \
|
||||||
.name = #_name, \
|
.name = #_node, \
|
||||||
.n_voltages = ARRAY_SIZE(_voltages), \
|
.n_voltages = ARRAY_SIZE(_voltages), \
|
||||||
.volt_table = _voltages, \
|
.volt_table = _voltages, \
|
||||||
.ops = &_ops, \
|
.ops = &_ops, \
|
||||||
@ -104,9 +104,9 @@ extern struct regulator_ops mc13xxx_fixed_regulator_ops;
|
|||||||
.enable_bit = prefix ## _reg ## _ ## _name ## EN, \
|
.enable_bit = prefix ## _reg ## _ ## _name ## EN, \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define MC13xxx_DEFINE_SW(_name, _reg, _vsel_reg, _voltages, ops) \
|
#define MC13xxx_DEFINE_SW(_name, _node, _reg, _vsel_reg, _voltages, ops) \
|
||||||
MC13xxx_DEFINE(SW, _name, _reg, _vsel_reg, _voltages, ops)
|
MC13xxx_DEFINE(SW, _name, _node, _reg, _vsel_reg, _voltages, ops)
|
||||||
#define MC13xxx_DEFINE_REGU(_name, _reg, _vsel_reg, _voltages, ops) \
|
#define MC13xxx_DEFINE_REGU(_name, _node, _reg, _vsel_reg, _voltages, ops) \
|
||||||
MC13xxx_DEFINE(REGU, _name, _reg, _vsel_reg, _voltages, ops)
|
MC13xxx_DEFINE(REGU, _name, _node, _reg, _vsel_reg, _voltages, ops)
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -135,7 +135,7 @@ static int pv88060_set_current_limit(struct regulator_dev *rdev, int min,
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* search for closest to maximum */
|
/* search for closest to maximum */
|
||||||
for (i = info->n_current_limits; i >= 0; i--) {
|
for (i = info->n_current_limits - 1; i >= 0; i--) {
|
||||||
if (min <= info->current_limits[i]
|
if (min <= info->current_limits[i]
|
||||||
&& max >= info->current_limits[i]) {
|
&& max >= info->current_limits[i]) {
|
||||||
return regmap_update_bits(rdev->regmap,
|
return regmap_update_bits(rdev->regmap,
|
||||||
|
@ -279,7 +279,7 @@ static int pv88080_set_current_limit(struct regulator_dev *rdev, int min,
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* search for closest to maximum */
|
/* search for closest to maximum */
|
||||||
for (i = info->n_current_limits; i >= 0; i--) {
|
for (i = info->n_current_limits - 1; i >= 0; i--) {
|
||||||
if (min <= info->current_limits[i]
|
if (min <= info->current_limits[i]
|
||||||
&& max >= info->current_limits[i]) {
|
&& max >= info->current_limits[i]) {
|
||||||
return regmap_update_bits(rdev->regmap,
|
return regmap_update_bits(rdev->regmap,
|
||||||
|
@ -157,7 +157,7 @@ static int pv88090_set_current_limit(struct regulator_dev *rdev, int min,
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
/* search for closest to maximum */
|
/* search for closest to maximum */
|
||||||
for (i = info->n_current_limits; i >= 0; i--) {
|
for (i = info->n_current_limits - 1; i >= 0; i--) {
|
||||||
if (min <= info->current_limits[i]
|
if (min <= info->current_limits[i]
|
||||||
&& max >= info->current_limits[i]) {
|
&& max >= info->current_limits[i]) {
|
||||||
return regmap_update_bits(rdev->regmap,
|
return regmap_update_bits(rdev->regmap,
|
||||||
|
@ -298,13 +298,13 @@ static const struct regulator_desc regulators[] = {
|
|||||||
regulator_desc_ldo(2, STEP_50_MV),
|
regulator_desc_ldo(2, STEP_50_MV),
|
||||||
regulator_desc_ldo(3, STEP_50_MV),
|
regulator_desc_ldo(3, STEP_50_MV),
|
||||||
regulator_desc_ldo(4, STEP_50_MV),
|
regulator_desc_ldo(4, STEP_50_MV),
|
||||||
regulator_desc_ldo(5, STEP_50_MV),
|
regulator_desc_ldo(5, STEP_25_MV),
|
||||||
regulator_desc_ldo(6, STEP_25_MV),
|
regulator_desc_ldo(6, STEP_25_MV),
|
||||||
regulator_desc_ldo(7, STEP_50_MV),
|
regulator_desc_ldo(7, STEP_50_MV),
|
||||||
regulator_desc_ldo(8, STEP_50_MV),
|
regulator_desc_ldo(8, STEP_50_MV),
|
||||||
regulator_desc_ldo(9, STEP_50_MV),
|
regulator_desc_ldo(9, STEP_50_MV),
|
||||||
regulator_desc_ldo(10, STEP_50_MV),
|
regulator_desc_ldo(10, STEP_50_MV),
|
||||||
regulator_desc_ldo(11, STEP_25_MV),
|
regulator_desc_ldo(11, STEP_50_MV),
|
||||||
regulator_desc_ldo(12, STEP_50_MV),
|
regulator_desc_ldo(12, STEP_50_MV),
|
||||||
regulator_desc_ldo(13, STEP_50_MV),
|
regulator_desc_ldo(13, STEP_50_MV),
|
||||||
regulator_desc_ldo(14, STEP_50_MV),
|
regulator_desc_ldo(14, STEP_50_MV),
|
||||||
@ -315,11 +315,11 @@ static const struct regulator_desc regulators[] = {
|
|||||||
regulator_desc_ldo(19, STEP_50_MV),
|
regulator_desc_ldo(19, STEP_50_MV),
|
||||||
regulator_desc_ldo(20, STEP_50_MV),
|
regulator_desc_ldo(20, STEP_50_MV),
|
||||||
regulator_desc_ldo(21, STEP_50_MV),
|
regulator_desc_ldo(21, STEP_50_MV),
|
||||||
regulator_desc_ldo(22, STEP_25_MV),
|
regulator_desc_ldo(22, STEP_50_MV),
|
||||||
regulator_desc_ldo(23, STEP_25_MV),
|
regulator_desc_ldo(23, STEP_50_MV),
|
||||||
regulator_desc_ldo(24, STEP_50_MV),
|
regulator_desc_ldo(24, STEP_50_MV),
|
||||||
regulator_desc_ldo(25, STEP_50_MV),
|
regulator_desc_ldo(25, STEP_50_MV),
|
||||||
regulator_desc_ldo(26, STEP_50_MV),
|
regulator_desc_ldo(26, STEP_25_MV),
|
||||||
regulator_desc_buck1_4(1),
|
regulator_desc_buck1_4(1),
|
||||||
regulator_desc_buck1_4(2),
|
regulator_desc_buck1_4(2),
|
||||||
regulator_desc_buck1_4(3),
|
regulator_desc_buck1_4(3),
|
||||||
|
@ -362,7 +362,7 @@ static const struct regulator_desc s2mps11_regulators[] = {
|
|||||||
regulator_desc_s2mps11_ldo(32, STEP_50_MV),
|
regulator_desc_s2mps11_ldo(32, STEP_50_MV),
|
||||||
regulator_desc_s2mps11_ldo(33, STEP_50_MV),
|
regulator_desc_s2mps11_ldo(33, STEP_50_MV),
|
||||||
regulator_desc_s2mps11_ldo(34, STEP_50_MV),
|
regulator_desc_s2mps11_ldo(34, STEP_50_MV),
|
||||||
regulator_desc_s2mps11_ldo(35, STEP_50_MV),
|
regulator_desc_s2mps11_ldo(35, STEP_25_MV),
|
||||||
regulator_desc_s2mps11_ldo(36, STEP_50_MV),
|
regulator_desc_s2mps11_ldo(36, STEP_50_MV),
|
||||||
regulator_desc_s2mps11_ldo(37, STEP_50_MV),
|
regulator_desc_s2mps11_ldo(37, STEP_50_MV),
|
||||||
regulator_desc_s2mps11_ldo(38, STEP_50_MV),
|
regulator_desc_s2mps11_ldo(38, STEP_50_MV),
|
||||||
@ -372,8 +372,8 @@ static const struct regulator_desc s2mps11_regulators[] = {
|
|||||||
regulator_desc_s2mps11_buck1_4(4),
|
regulator_desc_s2mps11_buck1_4(4),
|
||||||
regulator_desc_s2mps11_buck5,
|
regulator_desc_s2mps11_buck5,
|
||||||
regulator_desc_s2mps11_buck67810(6, MIN_600_MV, STEP_6_25_MV),
|
regulator_desc_s2mps11_buck67810(6, MIN_600_MV, STEP_6_25_MV),
|
||||||
regulator_desc_s2mps11_buck67810(7, MIN_600_MV, STEP_6_25_MV),
|
regulator_desc_s2mps11_buck67810(7, MIN_600_MV, STEP_12_5_MV),
|
||||||
regulator_desc_s2mps11_buck67810(8, MIN_600_MV, STEP_6_25_MV),
|
regulator_desc_s2mps11_buck67810(8, MIN_600_MV, STEP_12_5_MV),
|
||||||
regulator_desc_s2mps11_buck9,
|
regulator_desc_s2mps11_buck9,
|
||||||
regulator_desc_s2mps11_buck67810(10, MIN_750_MV, STEP_12_5_MV),
|
regulator_desc_s2mps11_buck67810(10, MIN_750_MV, STEP_12_5_MV),
|
||||||
};
|
};
|
||||||
|
@ -75,9 +75,10 @@ enum {
|
|||||||
#define STPMIC1_BUCK_MODE_NORMAL 0
|
#define STPMIC1_BUCK_MODE_NORMAL 0
|
||||||
#define STPMIC1_BUCK_MODE_LP BUCK_HPLP_ENABLE_MASK
|
#define STPMIC1_BUCK_MODE_LP BUCK_HPLP_ENABLE_MASK
|
||||||
|
|
||||||
struct regulator_linear_range buck1_ranges[] = {
|
static const struct regulator_linear_range buck1_ranges[] = {
|
||||||
REGULATOR_LINEAR_RANGE(600000, 0, 30, 25000),
|
REGULATOR_LINEAR_RANGE(725000, 0, 4, 0),
|
||||||
REGULATOR_LINEAR_RANGE(1350000, 31, 63, 0),
|
REGULATOR_LINEAR_RANGE(725000, 5, 36, 25000),
|
||||||
|
REGULATOR_LINEAR_RANGE(1500000, 37, 63, 0),
|
||||||
};
|
};
|
||||||
|
|
||||||
struct regulator_linear_range buck2_ranges[] = {
|
struct regulator_linear_range buck2_ranges[] = {
|
||||||
|
@ -188,7 +188,8 @@ static struct regulator_ops tps65218_ldo1_dcdc34_ops = {
|
|||||||
.set_suspend_disable = tps65218_pmic_set_suspend_disable,
|
.set_suspend_disable = tps65218_pmic_set_suspend_disable,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const int ls3_currents[] = { 100, 200, 500, 1000 };
|
static const int ls3_currents[] = { 100000, 200000, 500000, 1000000 };
|
||||||
|
|
||||||
|
|
||||||
static int tps65218_pmic_set_input_current_lim(struct regulator_dev *dev,
|
static int tps65218_pmic_set_input_current_lim(struct regulator_dev *dev,
|
||||||
int lim_uA)
|
int lim_uA)
|
||||||
@ -214,7 +215,7 @@ static int tps65218_pmic_set_current_limit(struct regulator_dev *dev,
|
|||||||
unsigned int num_currents = ARRAY_SIZE(ls3_currents);
|
unsigned int num_currents = ARRAY_SIZE(ls3_currents);
|
||||||
struct tps65218 *tps = rdev_get_drvdata(dev);
|
struct tps65218 *tps = rdev_get_drvdata(dev);
|
||||||
|
|
||||||
while (index < num_currents && ls3_currents[index] < max_uA)
|
while (index < num_currents && ls3_currents[index] <= max_uA)
|
||||||
index++;
|
index++;
|
||||||
|
|
||||||
index--;
|
index--;
|
||||||
|
@ -32,7 +32,7 @@ struct uniphier_regulator_priv {
|
|||||||
const struct uniphier_regulator_soc_data *data;
|
const struct uniphier_regulator_soc_data *data;
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct regulator_ops uniphier_regulator_ops = {
|
static const struct regulator_ops uniphier_regulator_ops = {
|
||||||
.enable = regulator_enable_regmap,
|
.enable = regulator_enable_regmap,
|
||||||
.disable = regulator_disable_regmap,
|
.disable = regulator_disable_regmap,
|
||||||
.is_enabled = regulator_is_enabled_regmap,
|
.is_enabled = regulator_is_enabled_regmap,
|
||||||
@ -87,8 +87,10 @@ static int uniphier_regulator_probe(struct platform_device *pdev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
regmap = devm_regmap_init_mmio(dev, base, priv->data->regconf);
|
regmap = devm_regmap_init_mmio(dev, base, priv->data->regconf);
|
||||||
if (IS_ERR(regmap))
|
if (IS_ERR(regmap)) {
|
||||||
return PTR_ERR(regmap);
|
ret = PTR_ERR(regmap);
|
||||||
|
goto out_rst_assert;
|
||||||
|
}
|
||||||
|
|
||||||
config.dev = dev;
|
config.dev = dev;
|
||||||
config.driver_data = priv;
|
config.driver_data = priv;
|
||||||
|
@ -327,8 +327,8 @@ static int wm831x_buckv_get_voltage_sel(struct regulator_dev *rdev)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Current limit options */
|
/* Current limit options */
|
||||||
static u16 wm831x_dcdc_ilim[] = {
|
static const unsigned int wm831x_dcdc_ilim[] = {
|
||||||
125, 250, 375, 500, 625, 750, 875, 1000
|
125000, 250000, 375000, 500000, 625000, 750000, 875000, 1000000
|
||||||
};
|
};
|
||||||
|
|
||||||
static int wm831x_buckv_set_current_limit(struct regulator_dev *rdev,
|
static int wm831x_buckv_set_current_limit(struct regulator_dev *rdev,
|
||||||
|
Loading…
Reference in New Issue
Block a user