Re: [linux-sunxi] [PATCH 07/11] regulator: axp20x-regulator: add support for AXP803
Hi, On Wed, Apr 5, 2017 at 2:01 AM, Icenowy Zhengwrote: > AXP803 PMIC also have a series of regulators (DCDCs and LDOs) > controllable via I2C/RSB bus. > > Add support for them. > > Signed-off-by: Icenowy Zheng > --- > drivers/regulator/axp20x-regulator.c | 135 > +++ > include/linux/mfd/axp20x.h | 37 ++ > 2 files changed, 158 insertions(+), 14 deletions(-) > > diff --git a/drivers/regulator/axp20x-regulator.c > b/drivers/regulator/axp20x-regulator.c > index 0b9d4e3e52c7..219a731df392 100644 > --- a/drivers/regulator/axp20x-regulator.c > +++ b/drivers/regulator/axp20x-regulator.c > @@ -355,6 +355,81 @@ static const struct regulator_desc axp809_regulators[] = > { > AXP_DESC_SW(AXP809, SW, "sw", "swin", AXP22X_PWR_OUT_CTRL2, BIT(6)), > }; > > +static const struct regulator_linear_range axp803_dcdc234_ranges[] = { > + REGULATOR_LINEAR_RANGE(50, 0x0, 0x46, 1), > + REGULATOR_LINEAR_RANGE(120, 0x47, 0x4b, 2), > +}; Can you keep the ranges the datasheet uses? It makes it easier to compare. > + > +static const struct regulator_linear_range axp803_dcdc5_ranges[] = { > + REGULATOR_LINEAR_RANGE(80, 0x0, 0x20, 1), > + REGULATOR_LINEAR_RANGE(114, 0x21, 0x43, 2), 1.14 ~ 1.84 / 0.02 = 36 steps. This would end at 0x44. > +}; > + > +static const struct regulator_linear_range axp803_dcdc6_ranges[] = { > + REGULATOR_LINEAR_RANGE(60, 0x0, 0x32, 1), > + REGULATOR_LINEAR_RANGE(112, 0x33, 0x47, 2), > +}; > + > +static const struct regulator_linear_range axp803_dldo2_ranges[] = { > + REGULATOR_LINEAR_RANGE(70, 0x0, 0x1a, 10), > + REGULATOR_LINEAR_RANGE(340, 0x1b, 0x1f, 20), > +}; This is the same as axp806_cldo2_ranges. To keep the variants sorted in ascending order, you could keep this version but replace references to axp806_cldo2_ranges with this one. > + > +static const struct regulator_desc axp803_regulators[] = { > + AXP_DESC(AXP803, DCDC1, "dcdc1", "vin1", 1600, 3400, 100, > +AXP803_DCDC1_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL1, BIT(0)), > + AXP_DESC_RANGES(AXP803, DCDC2, "dcdc2", "vin2", axp803_dcdc234_ranges, > + 76, AXP803_DCDC2_V_OUT, 0x7f, AXP22X_PWR_OUT_CTRL1, > + BIT(1)), > + AXP_DESC_RANGES(AXP803, DCDC3, "dcdc3", "vin3", axp803_dcdc234_ranges, > + 76, AXP803_DCDC3_V_OUT, 0x7f, AXP22X_PWR_OUT_CTRL1, > + BIT(2)), > + AXP_DESC_RANGES(AXP803, DCDC4, "dcdc4", "vin4", axp803_dcdc234_ranges, > + 76, AXP803_DCDC4_V_OUT, 0x7f, AXP22X_PWR_OUT_CTRL1, > + BIT(3)), > + AXP_DESC_RANGES(AXP803, DCDC5, "dcdc5", "vin5", axp803_dcdc5_ranges, > + 68, AXP803_DCDC5_V_OUT, 0x7f, AXP22X_PWR_OUT_CTRL1, > + BIT(4)), > + AXP_DESC_RANGES(AXP803, DCDC6, "dcdc6", "vin6", axp803_dcdc6_ranges, > + 72, AXP803_DCDC6_V_OUT, 0x7f, AXP22X_PWR_OUT_CTRL1, > + BIT(5)), > + /* secondary switchable output of DCDC1 */ > + AXP_DESC_SW(AXP803, DC1SW, "dc1sw", NULL, AXP22X_PWR_OUT_CTRL2, > + BIT(7)), > + AXP_DESC(AXP803, ALDO1, "aldo1", "aldoin", 700, 3300, 100, > +AXP22X_ALDO1_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL3, BIT(5)), > + AXP_DESC(AXP803, ALDO2, "aldo2", "aldoin", 700, 3300, 100, > +AXP22X_ALDO2_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL3, BIT(6)), > + AXP_DESC(AXP803, ALDO3, "aldo3", "aldoin", 700, 3300, 100, > +AXP22X_ALDO3_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL3, BIT(7)), > + AXP_DESC(AXP803, DLDO1, "dldo1", "dldoin", 700, 3300, 100, > +AXP22X_DLDO1_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL2, BIT(3)), > + AXP_DESC_RANGES(AXP803, DLDO2, "dldo2", "dldoin", axp803_dldo2_ranges, > + 32, AXP22X_DLDO2_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL2, > + BIT(4)), > + AXP_DESC(AXP803, DLDO3, "dldo3", "dldoin", 700, 3300, 100, > +AXP22X_DLDO3_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL3, BIT(5)), > + AXP_DESC(AXP803, DLDO4, "dldo4", "dldoin", 700, 3300, 100, > +AXP22X_DLDO4_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL3, BIT(6)), dldo3 and dldo4 are controlled from AXP22X_PWR_OUT_CTRL2. > + AXP_DESC(AXP803, ELDO1, "eldo1", "eldoin", 700, 1900, 50, > +AXP22X_ELDO1_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL2, BIT(0)), > + AXP_DESC(AXP803, ELDO2, "eldo2", "eldoin", 700, 1900, 50, > +AXP22X_ELDO2_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL2, BIT(1)), > + AXP_DESC(AXP803, ELDO3, "eldo3", "eldoin", 700, 1900, 50, > +AXP22X_ELDO3_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL2, BIT(2)), > + AXP_DESC(AXP803, FLDO1, "fldo1", "fldoin", 700, 1450, 50, > +AXP803_FLDO1_V_OUT, 0x1f,
Re: [linux-sunxi] [PATCH 07/11] regulator: axp20x-regulator: add support for AXP803
Hi, On Wed, Apr 5, 2017 at 2:01 AM, Icenowy Zheng wrote: > AXP803 PMIC also have a series of regulators (DCDCs and LDOs) > controllable via I2C/RSB bus. > > Add support for them. > > Signed-off-by: Icenowy Zheng > --- > drivers/regulator/axp20x-regulator.c | 135 > +++ > include/linux/mfd/axp20x.h | 37 ++ > 2 files changed, 158 insertions(+), 14 deletions(-) > > diff --git a/drivers/regulator/axp20x-regulator.c > b/drivers/regulator/axp20x-regulator.c > index 0b9d4e3e52c7..219a731df392 100644 > --- a/drivers/regulator/axp20x-regulator.c > +++ b/drivers/regulator/axp20x-regulator.c > @@ -355,6 +355,81 @@ static const struct regulator_desc axp809_regulators[] = > { > AXP_DESC_SW(AXP809, SW, "sw", "swin", AXP22X_PWR_OUT_CTRL2, BIT(6)), > }; > > +static const struct regulator_linear_range axp803_dcdc234_ranges[] = { > + REGULATOR_LINEAR_RANGE(50, 0x0, 0x46, 1), > + REGULATOR_LINEAR_RANGE(120, 0x47, 0x4b, 2), > +}; Can you keep the ranges the datasheet uses? It makes it easier to compare. > + > +static const struct regulator_linear_range axp803_dcdc5_ranges[] = { > + REGULATOR_LINEAR_RANGE(80, 0x0, 0x20, 1), > + REGULATOR_LINEAR_RANGE(114, 0x21, 0x43, 2), 1.14 ~ 1.84 / 0.02 = 36 steps. This would end at 0x44. > +}; > + > +static const struct regulator_linear_range axp803_dcdc6_ranges[] = { > + REGULATOR_LINEAR_RANGE(60, 0x0, 0x32, 1), > + REGULATOR_LINEAR_RANGE(112, 0x33, 0x47, 2), > +}; > + > +static const struct regulator_linear_range axp803_dldo2_ranges[] = { > + REGULATOR_LINEAR_RANGE(70, 0x0, 0x1a, 10), > + REGULATOR_LINEAR_RANGE(340, 0x1b, 0x1f, 20), > +}; This is the same as axp806_cldo2_ranges. To keep the variants sorted in ascending order, you could keep this version but replace references to axp806_cldo2_ranges with this one. > + > +static const struct regulator_desc axp803_regulators[] = { > + AXP_DESC(AXP803, DCDC1, "dcdc1", "vin1", 1600, 3400, 100, > +AXP803_DCDC1_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL1, BIT(0)), > + AXP_DESC_RANGES(AXP803, DCDC2, "dcdc2", "vin2", axp803_dcdc234_ranges, > + 76, AXP803_DCDC2_V_OUT, 0x7f, AXP22X_PWR_OUT_CTRL1, > + BIT(1)), > + AXP_DESC_RANGES(AXP803, DCDC3, "dcdc3", "vin3", axp803_dcdc234_ranges, > + 76, AXP803_DCDC3_V_OUT, 0x7f, AXP22X_PWR_OUT_CTRL1, > + BIT(2)), > + AXP_DESC_RANGES(AXP803, DCDC4, "dcdc4", "vin4", axp803_dcdc234_ranges, > + 76, AXP803_DCDC4_V_OUT, 0x7f, AXP22X_PWR_OUT_CTRL1, > + BIT(3)), > + AXP_DESC_RANGES(AXP803, DCDC5, "dcdc5", "vin5", axp803_dcdc5_ranges, > + 68, AXP803_DCDC5_V_OUT, 0x7f, AXP22X_PWR_OUT_CTRL1, > + BIT(4)), > + AXP_DESC_RANGES(AXP803, DCDC6, "dcdc6", "vin6", axp803_dcdc6_ranges, > + 72, AXP803_DCDC6_V_OUT, 0x7f, AXP22X_PWR_OUT_CTRL1, > + BIT(5)), > + /* secondary switchable output of DCDC1 */ > + AXP_DESC_SW(AXP803, DC1SW, "dc1sw", NULL, AXP22X_PWR_OUT_CTRL2, > + BIT(7)), > + AXP_DESC(AXP803, ALDO1, "aldo1", "aldoin", 700, 3300, 100, > +AXP22X_ALDO1_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL3, BIT(5)), > + AXP_DESC(AXP803, ALDO2, "aldo2", "aldoin", 700, 3300, 100, > +AXP22X_ALDO2_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL3, BIT(6)), > + AXP_DESC(AXP803, ALDO3, "aldo3", "aldoin", 700, 3300, 100, > +AXP22X_ALDO3_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL3, BIT(7)), > + AXP_DESC(AXP803, DLDO1, "dldo1", "dldoin", 700, 3300, 100, > +AXP22X_DLDO1_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL2, BIT(3)), > + AXP_DESC_RANGES(AXP803, DLDO2, "dldo2", "dldoin", axp803_dldo2_ranges, > + 32, AXP22X_DLDO2_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL2, > + BIT(4)), > + AXP_DESC(AXP803, DLDO3, "dldo3", "dldoin", 700, 3300, 100, > +AXP22X_DLDO3_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL3, BIT(5)), > + AXP_DESC(AXP803, DLDO4, "dldo4", "dldoin", 700, 3300, 100, > +AXP22X_DLDO4_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL3, BIT(6)), dldo3 and dldo4 are controlled from AXP22X_PWR_OUT_CTRL2. > + AXP_DESC(AXP803, ELDO1, "eldo1", "eldoin", 700, 1900, 50, > +AXP22X_ELDO1_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL2, BIT(0)), > + AXP_DESC(AXP803, ELDO2, "eldo2", "eldoin", 700, 1900, 50, > +AXP22X_ELDO2_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL2, BIT(1)), > + AXP_DESC(AXP803, ELDO3, "eldo3", "eldoin", 700, 1900, 50, > +AXP22X_ELDO3_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL2, BIT(2)), > + AXP_DESC(AXP803, FLDO1, "fldo1", "fldoin", 700, 1450, 50, > +AXP803_FLDO1_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL3, BIT(2)), > +
[PATCH 07/11] regulator: axp20x-regulator: add support for AXP803
AXP803 PMIC also have a series of regulators (DCDCs and LDOs) controllable via I2C/RSB bus. Add support for them. Signed-off-by: Icenowy Zheng--- drivers/regulator/axp20x-regulator.c | 135 +++ include/linux/mfd/axp20x.h | 37 ++ 2 files changed, 158 insertions(+), 14 deletions(-) diff --git a/drivers/regulator/axp20x-regulator.c b/drivers/regulator/axp20x-regulator.c index 0b9d4e3e52c7..219a731df392 100644 --- a/drivers/regulator/axp20x-regulator.c +++ b/drivers/regulator/axp20x-regulator.c @@ -355,6 +355,81 @@ static const struct regulator_desc axp809_regulators[] = { AXP_DESC_SW(AXP809, SW, "sw", "swin", AXP22X_PWR_OUT_CTRL2, BIT(6)), }; +static const struct regulator_linear_range axp803_dcdc234_ranges[] = { + REGULATOR_LINEAR_RANGE(50, 0x0, 0x46, 1), + REGULATOR_LINEAR_RANGE(120, 0x47, 0x4b, 2), +}; + +static const struct regulator_linear_range axp803_dcdc5_ranges[] = { + REGULATOR_LINEAR_RANGE(80, 0x0, 0x20, 1), + REGULATOR_LINEAR_RANGE(114, 0x21, 0x43, 2), +}; + +static const struct regulator_linear_range axp803_dcdc6_ranges[] = { + REGULATOR_LINEAR_RANGE(60, 0x0, 0x32, 1), + REGULATOR_LINEAR_RANGE(112, 0x33, 0x47, 2), +}; + +static const struct regulator_linear_range axp803_dldo2_ranges[] = { + REGULATOR_LINEAR_RANGE(70, 0x0, 0x1a, 10), + REGULATOR_LINEAR_RANGE(340, 0x1b, 0x1f, 20), +}; + +static const struct regulator_desc axp803_regulators[] = { + AXP_DESC(AXP803, DCDC1, "dcdc1", "vin1", 1600, 3400, 100, +AXP803_DCDC1_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL1, BIT(0)), + AXP_DESC_RANGES(AXP803, DCDC2, "dcdc2", "vin2", axp803_dcdc234_ranges, + 76, AXP803_DCDC2_V_OUT, 0x7f, AXP22X_PWR_OUT_CTRL1, + BIT(1)), + AXP_DESC_RANGES(AXP803, DCDC3, "dcdc3", "vin3", axp803_dcdc234_ranges, + 76, AXP803_DCDC3_V_OUT, 0x7f, AXP22X_PWR_OUT_CTRL1, + BIT(2)), + AXP_DESC_RANGES(AXP803, DCDC4, "dcdc4", "vin4", axp803_dcdc234_ranges, + 76, AXP803_DCDC4_V_OUT, 0x7f, AXP22X_PWR_OUT_CTRL1, + BIT(3)), + AXP_DESC_RANGES(AXP803, DCDC5, "dcdc5", "vin5", axp803_dcdc5_ranges, + 68, AXP803_DCDC5_V_OUT, 0x7f, AXP22X_PWR_OUT_CTRL1, + BIT(4)), + AXP_DESC_RANGES(AXP803, DCDC6, "dcdc6", "vin6", axp803_dcdc6_ranges, + 72, AXP803_DCDC6_V_OUT, 0x7f, AXP22X_PWR_OUT_CTRL1, + BIT(5)), + /* secondary switchable output of DCDC1 */ + AXP_DESC_SW(AXP803, DC1SW, "dc1sw", NULL, AXP22X_PWR_OUT_CTRL2, + BIT(7)), + AXP_DESC(AXP803, ALDO1, "aldo1", "aldoin", 700, 3300, 100, +AXP22X_ALDO1_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL3, BIT(5)), + AXP_DESC(AXP803, ALDO2, "aldo2", "aldoin", 700, 3300, 100, +AXP22X_ALDO2_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL3, BIT(6)), + AXP_DESC(AXP803, ALDO3, "aldo3", "aldoin", 700, 3300, 100, +AXP22X_ALDO3_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL3, BIT(7)), + AXP_DESC(AXP803, DLDO1, "dldo1", "dldoin", 700, 3300, 100, +AXP22X_DLDO1_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL2, BIT(3)), + AXP_DESC_RANGES(AXP803, DLDO2, "dldo2", "dldoin", axp803_dldo2_ranges, + 32, AXP22X_DLDO2_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL2, + BIT(4)), + AXP_DESC(AXP803, DLDO3, "dldo3", "dldoin", 700, 3300, 100, +AXP22X_DLDO3_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL3, BIT(5)), + AXP_DESC(AXP803, DLDO4, "dldo4", "dldoin", 700, 3300, 100, +AXP22X_DLDO4_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL3, BIT(6)), + AXP_DESC(AXP803, ELDO1, "eldo1", "eldoin", 700, 1900, 50, +AXP22X_ELDO1_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL2, BIT(0)), + AXP_DESC(AXP803, ELDO2, "eldo2", "eldoin", 700, 1900, 50, +AXP22X_ELDO2_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL2, BIT(1)), + AXP_DESC(AXP803, ELDO3, "eldo3", "eldoin", 700, 1900, 50, +AXP22X_ELDO3_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL2, BIT(2)), + AXP_DESC(AXP803, FLDO1, "fldo1", "fldoin", 700, 1450, 50, +AXP803_FLDO1_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL3, BIT(2)), + AXP_DESC(AXP803, FLDO2, "fldo2", "fldoin", 700, 1450, 50, +AXP803_FLDO2_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL3, BIT(3)), + AXP_DESC_IO(AXP803, LDO_IO0, "ldo_io0", "ips", 700, 3300, 100, + AXP22X_LDO_IO0_V_OUT, 0x1f, AXP20X_GPIO0_CTRL, 0x07, + AXP22X_IO_ENABLED, AXP22X_IO_DISABLED), + AXP_DESC_IO(AXP803, LDO_IO1, "ldo_io1", "ips", 700, 3300, 100, + AXP22X_LDO_IO1_V_OUT, 0x1f, AXP20X_GPIO1_CTRL, 0x07, + AXP22X_IO_ENABLED, AXP22X_IO_DISABLED), + AXP_DESC_FIXED(AXP803, RTC_LDO, "rtc_ldo",
[PATCH 07/11] regulator: axp20x-regulator: add support for AXP803
AXP803 PMIC also have a series of regulators (DCDCs and LDOs) controllable via I2C/RSB bus. Add support for them. Signed-off-by: Icenowy Zheng --- drivers/regulator/axp20x-regulator.c | 135 +++ include/linux/mfd/axp20x.h | 37 ++ 2 files changed, 158 insertions(+), 14 deletions(-) diff --git a/drivers/regulator/axp20x-regulator.c b/drivers/regulator/axp20x-regulator.c index 0b9d4e3e52c7..219a731df392 100644 --- a/drivers/regulator/axp20x-regulator.c +++ b/drivers/regulator/axp20x-regulator.c @@ -355,6 +355,81 @@ static const struct regulator_desc axp809_regulators[] = { AXP_DESC_SW(AXP809, SW, "sw", "swin", AXP22X_PWR_OUT_CTRL2, BIT(6)), }; +static const struct regulator_linear_range axp803_dcdc234_ranges[] = { + REGULATOR_LINEAR_RANGE(50, 0x0, 0x46, 1), + REGULATOR_LINEAR_RANGE(120, 0x47, 0x4b, 2), +}; + +static const struct regulator_linear_range axp803_dcdc5_ranges[] = { + REGULATOR_LINEAR_RANGE(80, 0x0, 0x20, 1), + REGULATOR_LINEAR_RANGE(114, 0x21, 0x43, 2), +}; + +static const struct regulator_linear_range axp803_dcdc6_ranges[] = { + REGULATOR_LINEAR_RANGE(60, 0x0, 0x32, 1), + REGULATOR_LINEAR_RANGE(112, 0x33, 0x47, 2), +}; + +static const struct regulator_linear_range axp803_dldo2_ranges[] = { + REGULATOR_LINEAR_RANGE(70, 0x0, 0x1a, 10), + REGULATOR_LINEAR_RANGE(340, 0x1b, 0x1f, 20), +}; + +static const struct regulator_desc axp803_regulators[] = { + AXP_DESC(AXP803, DCDC1, "dcdc1", "vin1", 1600, 3400, 100, +AXP803_DCDC1_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL1, BIT(0)), + AXP_DESC_RANGES(AXP803, DCDC2, "dcdc2", "vin2", axp803_dcdc234_ranges, + 76, AXP803_DCDC2_V_OUT, 0x7f, AXP22X_PWR_OUT_CTRL1, + BIT(1)), + AXP_DESC_RANGES(AXP803, DCDC3, "dcdc3", "vin3", axp803_dcdc234_ranges, + 76, AXP803_DCDC3_V_OUT, 0x7f, AXP22X_PWR_OUT_CTRL1, + BIT(2)), + AXP_DESC_RANGES(AXP803, DCDC4, "dcdc4", "vin4", axp803_dcdc234_ranges, + 76, AXP803_DCDC4_V_OUT, 0x7f, AXP22X_PWR_OUT_CTRL1, + BIT(3)), + AXP_DESC_RANGES(AXP803, DCDC5, "dcdc5", "vin5", axp803_dcdc5_ranges, + 68, AXP803_DCDC5_V_OUT, 0x7f, AXP22X_PWR_OUT_CTRL1, + BIT(4)), + AXP_DESC_RANGES(AXP803, DCDC6, "dcdc6", "vin6", axp803_dcdc6_ranges, + 72, AXP803_DCDC6_V_OUT, 0x7f, AXP22X_PWR_OUT_CTRL1, + BIT(5)), + /* secondary switchable output of DCDC1 */ + AXP_DESC_SW(AXP803, DC1SW, "dc1sw", NULL, AXP22X_PWR_OUT_CTRL2, + BIT(7)), + AXP_DESC(AXP803, ALDO1, "aldo1", "aldoin", 700, 3300, 100, +AXP22X_ALDO1_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL3, BIT(5)), + AXP_DESC(AXP803, ALDO2, "aldo2", "aldoin", 700, 3300, 100, +AXP22X_ALDO2_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL3, BIT(6)), + AXP_DESC(AXP803, ALDO3, "aldo3", "aldoin", 700, 3300, 100, +AXP22X_ALDO3_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL3, BIT(7)), + AXP_DESC(AXP803, DLDO1, "dldo1", "dldoin", 700, 3300, 100, +AXP22X_DLDO1_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL2, BIT(3)), + AXP_DESC_RANGES(AXP803, DLDO2, "dldo2", "dldoin", axp803_dldo2_ranges, + 32, AXP22X_DLDO2_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL2, + BIT(4)), + AXP_DESC(AXP803, DLDO3, "dldo3", "dldoin", 700, 3300, 100, +AXP22X_DLDO3_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL3, BIT(5)), + AXP_DESC(AXP803, DLDO4, "dldo4", "dldoin", 700, 3300, 100, +AXP22X_DLDO4_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL3, BIT(6)), + AXP_DESC(AXP803, ELDO1, "eldo1", "eldoin", 700, 1900, 50, +AXP22X_ELDO1_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL2, BIT(0)), + AXP_DESC(AXP803, ELDO2, "eldo2", "eldoin", 700, 1900, 50, +AXP22X_ELDO2_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL2, BIT(1)), + AXP_DESC(AXP803, ELDO3, "eldo3", "eldoin", 700, 1900, 50, +AXP22X_ELDO3_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL2, BIT(2)), + AXP_DESC(AXP803, FLDO1, "fldo1", "fldoin", 700, 1450, 50, +AXP803_FLDO1_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL3, BIT(2)), + AXP_DESC(AXP803, FLDO2, "fldo2", "fldoin", 700, 1450, 50, +AXP803_FLDO2_V_OUT, 0x1f, AXP22X_PWR_OUT_CTRL3, BIT(3)), + AXP_DESC_IO(AXP803, LDO_IO0, "ldo_io0", "ips", 700, 3300, 100, + AXP22X_LDO_IO0_V_OUT, 0x1f, AXP20X_GPIO0_CTRL, 0x07, + AXP22X_IO_ENABLED, AXP22X_IO_DISABLED), + AXP_DESC_IO(AXP803, LDO_IO1, "ldo_io1", "ips", 700, 3300, 100, + AXP22X_LDO_IO1_V_OUT, 0x1f, AXP20X_GPIO1_CTRL, 0x07, + AXP22X_IO_ENABLED, AXP22X_IO_DISABLED), + AXP_DESC_FIXED(AXP803, RTC_LDO, "rtc_ldo", "ips", 3000), +}; +