power: supply: bq25890: Add bq25890_set_otg_cfg() helper
authorHans de Goede <hdegoede@redhat.com>
Tue, 1 Feb 2022 13:06:55 +0000 (14:06 +0100)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Tue, 1 Feb 2022 13:55:11 +0000 (14:55 +0100)
Add a bq25890_set_otg_cfg() helper function, this is a preparation
patch for adding regulator support.

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 548d1a7..162bffb 100644 (file)
@@ -832,6 +832,17 @@ static int bq25890_power_supply_init(struct bq25890_device *bq)
        return PTR_ERR_OR_ZERO(bq->charger);
 }
 
+static int bq25890_set_otg_cfg(struct bq25890_device *bq, u8 val)
+{
+       int ret;
+
+       ret = bq25890_field_write(bq, F_OTG_CFG, val);
+       if (ret < 0)
+               dev_err(bq->dev, "Error switching to boost/charger mode: %d\n", ret);
+
+       return ret;
+}
+
 static void bq25890_usb_work(struct work_struct *data)
 {
        int ret;
@@ -841,25 +852,16 @@ static void bq25890_usb_work(struct work_struct *data)
        switch (bq->usb_event) {
        case USB_EVENT_ID:
                /* Enable boost mode */
-               ret = bq25890_field_write(bq, F_OTG_CFG, 1);
-               if (ret < 0)
-                       goto error;
+               bq25890_set_otg_cfg(bq, 1);
                break;
 
        case USB_EVENT_NONE:
                /* Disable boost mode */
-               ret = bq25890_field_write(bq, F_OTG_CFG, 0);
-               if (ret < 0)
-                       goto error;
-
-               power_supply_changed(bq->charger);
+               ret = bq25890_set_otg_cfg(bq, 0);
+               if (ret == 0)
+                       power_supply_changed(bq->charger);
                break;
        }
-
-       return;
-
-error:
-       dev_err(bq->dev, "Error switching to boost/charger mode.\n");
 }
 
 static int bq25890_usb_notifier(struct notifier_block *nb, unsigned long val,