regulator: Fixes for v3.16
Several driver specific fixes here, the palmas fixes being especially important for a range of boards - the recent updates to support new devices have introduced several regressions. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJTrsM3AAoJELSic+t+oim9ACIP/RIatlNlq0ALnWaYqaGCkQIF /kQJkBmInCIZ9e7zumnOxpE39OQIcfhqpQeH1aeVlQA6FabGhjdss8AJoM0VbUNS Cj46QnvADMruuow/ZQ4er2Na2w0lzO7CGffnrK+J1N2K3mivkJbBDomtYyJ93/kw rgqEWahszvIvHFD+yFITDhFW7I1f6YaKGj7oTIh844XD3kmphXxCRgQuojYaw7Xa qwLou8OfQL7NZv+z5suffO6n6ga3FgxNge+zynPXSx9lUgnUL/DZzf4tbE42GyXk wPANjTg2JBAwyb/X6zvb7hU7ag5clZhpfvOZRtmYHeyQDQcdUYfVKadBZE9ZAqQv 1B6q5XJQeE/XzHicQav0WN+FI/lOdf/ePyRRL2kGqAdQkDqnBM3lpRvM8c7uAhLT r75z822QBug7pw9HSUN3CIhTMpHxdmXq3tVLGOULLXdBxDPNOvXEKqjj3khj+NZm 5JJEcCYsu0PgbyJKdSF/yIeCFLY0slXNfnuWUvoMlOcpY3EgxwUi+FOxjmPxhq5v df47PJ4vcRXh/wHeA1oZQ1NDUEMfP1iX4ysUktQfaUUKq1QjdIegj4aykRHriVfc OQGJ4S3Dco8FDeWZtpmaFnA68cJR4nFCMzZOqLiK/wHadpF7qcgEKNync0QAvKK3 Y15h23vpcq+OWdHGnObL =K0Hp -----END PGP SIGNATURE----- Merge tag 'regulator-v3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator Pull regulator fixes from Mark Brown: "Several driver specific fixes here, the palmas fixes being especially important for a range of boards - the recent updates to support new devices have introduced several regressions" * tag 'regulator-v3.16-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: regulator: tps65218: Correct the the config register for LDO1 regulator: tps65218: Add the missing of_node assignment in probe regulator: palmas: fix typo in enable_reg calculation regulator: bcm590xx: fix vbus name regulator: palmas: Fix SMPS enable/disable/is_enabled
This commit is contained in:
Коммит
4194976b09
|
@ -119,6 +119,10 @@ static const unsigned int ldo_c_table[] = {
|
|||
2900000, 3000000, 3300000,
|
||||
};
|
||||
|
||||
static const unsigned int ldo_vbus[] = {
|
||||
5000000,
|
||||
};
|
||||
|
||||
/* DCDC group CSR: supported voltages in microvolts */
|
||||
static const struct regulator_linear_range dcdc_csr_ranges[] = {
|
||||
REGULATOR_LINEAR_RANGE(860000, 2, 50, 10000),
|
||||
|
@ -192,6 +196,7 @@ static struct bcm590xx_info bcm590xx_regs[] = {
|
|||
BCM590XX_REG_TABLE(gpldo4, ldo_a_table),
|
||||
BCM590XX_REG_TABLE(gpldo5, ldo_a_table),
|
||||
BCM590XX_REG_TABLE(gpldo6, ldo_a_table),
|
||||
BCM590XX_REG_TABLE(vbus, ldo_vbus),
|
||||
};
|
||||
|
||||
struct bcm590xx_reg {
|
||||
|
|
|
@ -325,6 +325,10 @@ static int palmas_set_mode_smps(struct regulator_dev *dev, unsigned int mode)
|
|||
if (rail_enable)
|
||||
palmas_smps_write(pmic->palmas,
|
||||
palmas_regs_info[id].ctrl_addr, reg);
|
||||
|
||||
/* Switch the enable value to ensure this is used for enable */
|
||||
pmic->desc[id].enable_val = pmic->current_reg_mode[id];
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -964,6 +968,14 @@ static int palmas_regulators_probe(struct platform_device *pdev)
|
|||
return ret;
|
||||
pmic->current_reg_mode[id] = reg &
|
||||
PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
|
||||
|
||||
pmic->desc[id].enable_reg =
|
||||
PALMAS_BASE_TO_REG(PALMAS_SMPS_BASE,
|
||||
palmas_regs_info[id].ctrl_addr);
|
||||
pmic->desc[id].enable_mask =
|
||||
PALMAS_SMPS12_CTRL_MODE_ACTIVE_MASK;
|
||||
/* set_mode overrides this value */
|
||||
pmic->desc[id].enable_val = SMPS_CTRL_MODE_ON;
|
||||
}
|
||||
|
||||
pmic->desc[id].type = REGULATOR_VOLTAGE;
|
||||
|
|
|
@ -209,7 +209,7 @@ static const struct regulator_desc regulators[] = {
|
|||
1, -1, -1, TPS65218_REG_ENABLE1,
|
||||
TPS65218_ENABLE1_DC6_EN, NULL, NULL, 0, 0),
|
||||
TPS65218_REGULATOR("LDO1", TPS65218_LDO_1, tps65218_ldo1_dcdc34_ops, 64,
|
||||
TPS65218_REG_CONTROL_DCDC4,
|
||||
TPS65218_REG_CONTROL_LDO1,
|
||||
TPS65218_CONTROL_LDO1_MASK, TPS65218_REG_ENABLE2,
|
||||
TPS65218_ENABLE2_LDO1_EN, NULL, ldo1_dcdc3_ranges,
|
||||
2, 0),
|
||||
|
@ -240,6 +240,7 @@ static int tps65218_regulator_probe(struct platform_device *pdev)
|
|||
config.init_data = init_data;
|
||||
config.driver_data = tps;
|
||||
config.regmap = tps->regmap;
|
||||
config.of_node = pdev->dev.of_node;
|
||||
|
||||
rdev = devm_regulator_register(&pdev->dev, ®ulators[id], &config);
|
||||
if (IS_ERR(rdev)) {
|
||||
|
|
Загрузка…
Ссылка в новой задаче