power: supply: bq25890: Use the devm_regmap_field_bulk_alloc() helper
authorHans de Goede <hdegoede@redhat.com>
Tue, 1 Feb 2022 13:06:59 +0000 (14:06 +0100)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Tue, 1 Feb 2022 13:55:12 +0000 (14:55 +0100)
Use the devm_regmap_field_bulk_alloc() helper function instead of
open-coding this ourselves.

Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
drivers/power/supply/bq25890_charger.c

index 179abed..852a6fe 100644 (file)
@@ -1165,7 +1165,6 @@ static int bq25890_probe(struct i2c_client *client,
        struct device *dev = &client->dev;
        struct bq25890_device *bq;
        int ret;
-       int i;
 
        bq = devm_kzalloc(dev, sizeof(*bq), GFP_KERNEL);
        if (!bq)
@@ -1182,15 +1181,10 @@ static int bq25890_probe(struct i2c_client *client,
                return dev_err_probe(dev, PTR_ERR(bq->rmap),
                                     "failed to allocate register map\n");
 
-       for (i = 0; i < ARRAY_SIZE(bq25890_reg_fields); i++) {
-               const struct reg_field *reg_fields = bq25890_reg_fields;
-
-               bq->rmap_fields[i] = devm_regmap_field_alloc(dev, bq->rmap,
-                                                            reg_fields[i]);
-               if (IS_ERR(bq->rmap_fields[i]))
-                       return dev_err_probe(dev, PTR_ERR(bq->rmap_fields[i]),
-                                            "cannot allocate regmap field\n");
-       }
+       ret = devm_regmap_field_bulk_alloc(dev, bq->rmap, bq->rmap_fields,
+                                          bq25890_reg_fields, F_MAX_FIELDS);
+       if (ret)
+               return ret;
 
        i2c_set_clientdata(client, bq);