regulator: lp872x: Simplify implementation of lp872x_find_regulator_init_data()
authorAxel Lin <axel.lin@gmail.com>
Sun, 15 Jul 2012 08:57:12 +0000 (16:57 +0800)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 16 Jul 2012 19:58:30 +0000 (20:58 +0100)
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>
drivers/regulator/lp872x.c

index 471f8e82be4166141f4b2e2427367273ffd48157..212c38eaba700d857767a89c2ccfc3d5006018e6 100644 (file)
@@ -796,30 +796,16 @@ static int lp872x_config(struct lp872x *lp)
 }
 
 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;
-
-       switch (lp->chipid) {
-       case LP8720:
-               base = LP8720_ID_BASE;
-               max_regulators = LP8720_NUM_REGULATORS;
-               break;
-       case LP8725:
-               base = LP8725_ID_BASE;
-               max_regulators = LP8725_NUM_REGULATORS;
-               break;
-       default:
-               return NULL;
-       }
+       int i;
 
-       id = base + idx;
-       for (i = 0 ; i < max_regulators ; i++)
+       for (i = 0; i < lp->num_regulators; i++) {
                if (lp->pdata->regulator_data[i].id == id)
-                       break;
+                       return lp->pdata->regulator_data[i].init_data;
+       }
 
-       return (i == max_regulators) ? NULL :
-                       lp->pdata->regulator_data[i].init_data;
+       return NULL;
 }
 
 static int lp872x_regulator_register(struct lp872x *lp)
@@ -834,7 +820,7 @@ static int lp872x_regulator_register(struct lp872x *lp)
                                                &lp8725_regulator_desc[i];
 
                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.regmap = lp->regmap;