Hello, On Thu, 14 Mar 2024 12:28:00 +0100, Esteban Blanc wrote: > On Fri Mar 8, 2024 at 11:34 AM CET, Bhargav Raviprakash wrote: > > From: Nirmala Devi Mal Nadar <m.nirmaladevi@xxxxxxxx> > > > > Add support for TPS65224 regulators (bucks and LDOs) to TPS6594 driver as > > they have significant functional overlap. TPS65224 PMIC has 4 buck > > regulators and 3 LDOs. BUCK12 can operate in dual phase. > > The output voltages are configurable and are meant to supply power to the > > main processor and other components. > > > > Signed-off-by: Nirmala Devi Mal Nadar <m.nirmaladevi@xxxxxxxx> > > Signed-off-by: Bhargav Raviprakash <bhargav.r@xxxxxxxx> > > --- > > drivers/regulator/Kconfig | 4 +- > > drivers/regulator/tps6594-regulator.c | 236 +++++++++++++++++++++++--- > > 2 files changed, 215 insertions(+), 25 deletions(-) > > > > diff --git a/drivers/regulator/tps6594-regulator.c b/drivers/regulator/tps6594-regulator.c > > index b7f0c8779..37d76c483 100644 > > --- a/drivers/regulator/tps6594-regulator.c > > +++ b/drivers/regulator/tps6594-regulator.c > > @@ -412,14 +562,20 @@ static int tps6594_regulator_probe(struct platform_device *pdev) > > struct tps6594_ext_regulator_irq_data *irq_ext_reg_data; > > struct tps6594_regulator_irq_type *irq_type; > > u8 buck_configured[BUCK_NB] = { 0 }; > > + u8 ldo_configured[LDO_NB] = { 0 }; > > u8 buck_multi[MULTI_PHASE_NB] = { 0 }; > > static const char * const multiphases[] = {"buck12", "buck123", "buck1234", "buck34"}; > > `multiphases` should prefixed like the new one. > Sure! This will be fixed in the next version. > > + static const char * const tps65224_multiphases[] = {"buck12"}; > > > @@ -495,25 +660,30 @@ static int tps6594_regulator_probe(struct platform_device *pdev) > > if (!irq_data) > > return -ENOMEM; > > > > - for (i = 0; i < MULTI_PHASE_NB; i++) { > > + for (i = 0; i < multi_phase_cnt; i++) { > > if (buck_multi[i] == 0) > > continue; > > > > + const struct regulator_desc *multi_regs = (tps->chip_id == TPS65224) ? > > + tps65224_multi_regs : > > + tps6594_multi_regs; > > This should be declared at the top of the function. > > > rdev = devm_regulator_register(&pdev->dev, &multi_regs[i], &config); > > - if (IS_ERR(rdev)) > > - return dev_err_probe(tps->dev, PTR_ERR(rdev), > > - "failed to register %s regulator\n", > > - pdev->name); > > + if (IS_ERR(rdev)) > > + return dev_err_probe(tps->dev, PTR_ERR(rdev), > > + "failed to register %s regulator\n", > > + pdev->name); > > The indentation of the `if` looks odd. You should revert this. > Sure, will fix this in the next version. > > @@ -537,21 +707,34 @@ static int tps6594_regulator_probe(struct platform_device *pdev) > > if (buck_configured[i] == 1) > > continue; > > > > - rdev = devm_regulator_register(&pdev->dev, &buck_regs[i], &config); > > + const struct regulator_desc *buck_cfg = (tps->chip_id == TPS65224) ? > > + tps65224_buck_regs : buck_regs; > > Same here, should be at the top of the function. > > > - /* LP8764 dosen't have LDO */ > > + /* LP8764 doesn't have LDO */ > > if (tps->chip_id != LP8764) { > > - for (i = 0; i < ARRAY_SIZE(ldo_regs); i++) { > > + for (i = 0; i < LDO_NB; i++) { > > + if (ldo_configured[i] == 1) > > + continue; > > + > > + struct tps6594_regulator_irq_type **ldos_irq_types = > > + (tps->chip_id == TPS65224) ? > > + tps65224_ldos_irq_types : tps6594_ldos_irq_types; > > + > > + const struct regulator_desc *ldo_regs = > > + (tps->chip_id == TPS65224) ? > > + tps65224_ldo_regs : tps6594_ldo_regs; > > Should be at the top of the function, please fix this in the whole file. Thanks! In the next version will move declaration to start of the function. > > Best regards, > > -- > Esteban "Skallwar" Blanc > BayLibre Regards, Bhargav