regulator: lp872x: Simplify implementation of lp872x_find_regulator_init_data()

Pass regulator id rahter than the index to lp872x_find_regulator_init_data(),
then the code can be simpler.
We can also get max_regulators by lp->num_regulators.

Signed-off-by: Axel Lin <axel.lin@gmail.com>
Acked-by: Milo(Woogyom) Kim <milo.kim@ti.com>
Tested-by: Milo(Woogyom) Kim <milo.kim@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
Axel Lin 2012-07-15 16:57:12 +08:00 committed by Mark Brown
parent c6a717c9d7
commit 5bae062830
1 changed files with 7 additions and 21 deletions

View File

@ -796,30 +796,16 @@ static int lp872x_config(struct lp872x *lp)
} }
static struct regulator_init_data static struct regulator_init_data
*lp872x_find_regulator_init_data(int idx, struct lp872x *lp) *lp872x_find_regulator_init_data(int id, struct lp872x *lp)
{ {
int i, base, id, max_regulators; int i;
switch (lp->chipid) { for (i = 0; i < lp->num_regulators; i++) {
case LP8720: if (lp->pdata->regulator_data[i].id == id)
base = LP8720_ID_BASE; return lp->pdata->regulator_data[i].init_data;
max_regulators = LP8720_NUM_REGULATORS;
break;
case LP8725:
base = LP8725_ID_BASE;
max_regulators = LP8725_NUM_REGULATORS;
break;
default:
return NULL;
} }
id = base + idx; return NULL;
for (i = 0 ; i < max_regulators ; i++)
if (lp->pdata->regulator_data[i].id == id)
break;
return (i == max_regulators) ? NULL :
lp->pdata->regulator_data[i].init_data;
} }
static int lp872x_regulator_register(struct lp872x *lp) static int lp872x_regulator_register(struct lp872x *lp)
@ -834,7 +820,7 @@ static int lp872x_regulator_register(struct lp872x *lp)
&lp8725_regulator_desc[i]; &lp8725_regulator_desc[i];
cfg.dev = lp->dev; cfg.dev = lp->dev;
cfg.init_data = lp872x_find_regulator_init_data(i, lp); cfg.init_data = lp872x_find_regulator_init_data(desc->id, lp);
cfg.driver_data = lp; cfg.driver_data = lp;
cfg.regmap = lp->regmap; cfg.regmap = lp->regmap;