Message ID | 20240318094925.374959-4-bhargav.r@ltts.com |
---|---|
State | Superseded |
Delegated to: | Jaehoon Chung |
Headers | show |
Series | Add support for TI TPS65224 PMIC | expand |
On 3/18/24 18:49, Bhargav Raviprakash wrote: > Adds macros for buck and ldo ids and switched to using switch > case instead of if else in probe functions. Helps in adding > support for TPS65224 PMIC. > > Signed-off-by: Bhargav Raviprakash <bhargav.r@ltts.com> > Reviewed-by: Dhruva Gole <d-gole@ti.com> Reviewed-by: Jaehoon Chung <jh80.chung@samsung.com> Best Regards, Jaehoon Chung > --- > drivers/power/regulator/tps65941_regulator.c | 54 +++++++++++++++----- > 1 file changed, 42 insertions(+), 12 deletions(-) > > diff --git a/drivers/power/regulator/tps65941_regulator.c b/drivers/power/regulator/tps65941_regulator.c > index b041126775..cf54e30df5 100644 > --- a/drivers/power/regulator/tps65941_regulator.c > +++ b/drivers/power/regulator/tps65941_regulator.c > @@ -16,6 +16,25 @@ > #include <power/regulator.h> > #include <power/tps65941.h> > > +/* Single Phase Buck IDs */ > +#define TPS65941_BUCK_ID_1 1 > +#define TPS65941_BUCK_ID_2 2 > +#define TPS65941_BUCK_ID_3 3 > +#define TPS65941_BUCK_ID_4 4 > +#define TPS65941_BUCK_ID_5 5 > + > +/* Multi Phase Buck IDs */ > +#define TPS65941_BUCK_ID_12 12 > +#define TPS65941_BUCK_ID_34 34 > +#define TPS65941_BUCK_ID_123 123 > +#define TPS65941_BUCK_ID_1234 1234 > + > +/* LDO IDs */ > +#define TPS65941_LDO_ID_1 1 > +#define TPS65941_LDO_ID_2 2 > +#define TPS65941_LDO_ID_3 3 > +#define TPS65941_LDO_ID_4 4 > + > static const char tps65941_buck_ctrl[TPS65941_BUCK_NUM] = {0x4, 0x6, 0x8, 0xA, > 0xC}; > static const char tps65941_buck_vout[TPS65941_BUCK_NUM] = {0xE, 0x10, 0x12, > @@ -270,10 +289,15 @@ static int tps65941_ldo_probe(struct udevice *dev) > uc_pdata->type = REGULATOR_TYPE_LDO; > > idx = dev->driver_data; > - if (idx == 1 || idx == 2 || idx == 3 || idx == 4) { > + switch (idx) { > + case TPS65941_LDO_ID_1: > + case TPS65941_LDO_ID_2: > + case TPS65941_LDO_ID_3: > + case TPS65941_LDO_ID_4: > debug("Single phase regulator\n"); > - } else { > - printf("Wrong ID for regulator\n"); > + break; > + default: > + pr_err("Wrong ID for regulator\n"); > return -EINVAL; > } > > @@ -292,18 +316,24 @@ static int tps65941_buck_probe(struct udevice *dev) > uc_pdata->type = REGULATOR_TYPE_BUCK; > > idx = dev->driver_data; > - if (idx == 1 || idx == 2 || idx == 3 || idx == 4 || idx == 5) { > + switch (idx) { > + case TPS65941_BUCK_ID_1: > + case TPS65941_BUCK_ID_2: > + case TPS65941_BUCK_ID_3: > + case TPS65941_BUCK_ID_4: > + case TPS65941_BUCK_ID_5: > debug("Single phase regulator\n"); > - } else if (idx == 12) { > + break; > + case TPS65941_BUCK_ID_12: > + case TPS65941_BUCK_ID_123: > + case TPS65941_BUCK_ID_1234: > idx = 1; > - } else if (idx == 34) { > + break; > + case TPS65941_BUCK_ID_34: > idx = 3; > - } else if (idx == 123) { > - idx = 1; > - } else if (idx == 1234) { > - idx = 1; > - } else { > - printf("Wrong ID for regulator\n"); > + break; > + default: > + pr_err("Wrong ID for regulator\n"); > return -EINVAL; > } >
diff --git a/drivers/power/regulator/tps65941_regulator.c b/drivers/power/regulator/tps65941_regulator.c index b041126775..cf54e30df5 100644 --- a/drivers/power/regulator/tps65941_regulator.c +++ b/drivers/power/regulator/tps65941_regulator.c @@ -16,6 +16,25 @@ #include <power/regulator.h> #include <power/tps65941.h> +/* Single Phase Buck IDs */ +#define TPS65941_BUCK_ID_1 1 +#define TPS65941_BUCK_ID_2 2 +#define TPS65941_BUCK_ID_3 3 +#define TPS65941_BUCK_ID_4 4 +#define TPS65941_BUCK_ID_5 5 + +/* Multi Phase Buck IDs */ +#define TPS65941_BUCK_ID_12 12 +#define TPS65941_BUCK_ID_34 34 +#define TPS65941_BUCK_ID_123 123 +#define TPS65941_BUCK_ID_1234 1234 + +/* LDO IDs */ +#define TPS65941_LDO_ID_1 1 +#define TPS65941_LDO_ID_2 2 +#define TPS65941_LDO_ID_3 3 +#define TPS65941_LDO_ID_4 4 + static const char tps65941_buck_ctrl[TPS65941_BUCK_NUM] = {0x4, 0x6, 0x8, 0xA, 0xC}; static const char tps65941_buck_vout[TPS65941_BUCK_NUM] = {0xE, 0x10, 0x12, @@ -270,10 +289,15 @@ static int tps65941_ldo_probe(struct udevice *dev) uc_pdata->type = REGULATOR_TYPE_LDO; idx = dev->driver_data; - if (idx == 1 || idx == 2 || idx == 3 || idx == 4) { + switch (idx) { + case TPS65941_LDO_ID_1: + case TPS65941_LDO_ID_2: + case TPS65941_LDO_ID_3: + case TPS65941_LDO_ID_4: debug("Single phase regulator\n"); - } else { - printf("Wrong ID for regulator\n"); + break; + default: + pr_err("Wrong ID for regulator\n"); return -EINVAL; } @@ -292,18 +316,24 @@ static int tps65941_buck_probe(struct udevice *dev) uc_pdata->type = REGULATOR_TYPE_BUCK; idx = dev->driver_data; - if (idx == 1 || idx == 2 || idx == 3 || idx == 4 || idx == 5) { + switch (idx) { + case TPS65941_BUCK_ID_1: + case TPS65941_BUCK_ID_2: + case TPS65941_BUCK_ID_3: + case TPS65941_BUCK_ID_4: + case TPS65941_BUCK_ID_5: debug("Single phase regulator\n"); - } else if (idx == 12) { + break; + case TPS65941_BUCK_ID_12: + case TPS65941_BUCK_ID_123: + case TPS65941_BUCK_ID_1234: idx = 1; - } else if (idx == 34) { + break; + case TPS65941_BUCK_ID_34: idx = 3; - } else if (idx == 123) { - idx = 1; - } else if (idx == 1234) { - idx = 1; - } else { - printf("Wrong ID for regulator\n"); + break; + default: + pr_err("Wrong ID for regulator\n"); return -EINVAL; }