]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
regulator: bq257xx: Remove reference to the parent MFD's dev
authorAlexey Charkov <alchark@flipper.net>
Tue, 31 Mar 2026 15:43:39 +0000 (19:43 +0400)
committerMark Brown <broonie@kernel.org>
Fri, 10 Apr 2026 10:52:40 +0000 (11:52 +0100)
Drop the ->bq field from the platform data of the bq257xx regulator driver,
which was only used to get the regmap of the parent MFD device, and use the
regmap from the regulator_dev instead, slimming down the code a bit.

Acked-by: Mark Brown <broonie@kernel.org>
Tested-by: Chris Morgan <macromorgan@hotmail.com>
Signed-off-by: Alexey Charkov <alchark@flipper.net>
Link: https://patch.msgid.link/20260331-bq25792-v6-2-0278fba33eb9@flipper.net
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/bq257xx-regulator.c

index 711dbe045383c434d95e6e0a70a3227c3eaed1ef..fcc2cfd1454beeeb337d8c817c0254dccb7cffdd 100644 (file)
@@ -15,7 +15,6 @@
 #include <linux/regulator/of_regulator.h>
 
 struct bq257xx_reg_data {
-       struct bq257xx_device *bq;
        struct regulator_dev *bq257xx_reg;
        struct gpio_desc *otg_en_gpio;
        struct regulator_desc desc;
@@ -23,11 +22,11 @@ struct bq257xx_reg_data {
 
 static int bq25703_vbus_get_cur_limit(struct regulator_dev *rdev)
 {
-       struct bq257xx_reg_data *pdata = rdev_get_drvdata(rdev);
+       struct regmap *regmap = rdev_get_regmap(rdev);
        int ret;
        unsigned int reg;
 
-       ret = regmap_read(pdata->bq->regmap, BQ25703_OTG_CURRENT, &reg);
+       ret = regmap_read(regmap, BQ25703_OTG_CURRENT, &reg);
        if (ret)
                return ret;
        return FIELD_GET(BQ25703_OTG_CUR_MASK, reg) * BQ25703_OTG_CUR_STEP_UA;
@@ -40,7 +39,7 @@ static int bq25703_vbus_get_cur_limit(struct regulator_dev *rdev)
 static int bq25703_vbus_set_cur_limit(struct regulator_dev *rdev,
                                      int min_uA, int max_uA)
 {
-       struct bq257xx_reg_data *pdata = rdev_get_drvdata(rdev);
+       struct regmap *regmap = rdev_get_regmap(rdev);
        unsigned int reg;
 
        if ((min_uA > BQ25703_OTG_CUR_MAX_UA) || (max_uA < 0))
@@ -52,7 +51,7 @@ static int bq25703_vbus_set_cur_limit(struct regulator_dev *rdev,
        if ((reg * BQ25703_OTG_CUR_STEP_UA) < min_uA)
                return -EINVAL;
 
-       return regmap_write(pdata->bq->regmap, BQ25703_OTG_CURRENT,
+       return regmap_write(regmap, BQ25703_OTG_CURRENT,
                            FIELD_PREP(BQ25703_OTG_CUR_MASK, reg));
 }
 
@@ -137,7 +136,6 @@ static void bq257xx_reg_dt_parse_gpio(struct platform_device *pdev)
 static int bq257xx_regulator_probe(struct platform_device *pdev)
 {
        struct device *dev = &pdev->dev;
-       struct bq257xx_device *bq = dev_get_drvdata(pdev->dev.parent);
        struct bq257xx_reg_data *pdata;
        struct device_node *np = dev->of_node;
        struct regulator_config cfg = {};
@@ -148,7 +146,6 @@ static int bq257xx_regulator_probe(struct platform_device *pdev)
        if (!pdata)
                return -ENOMEM;
 
-       pdata->bq = bq;
        pdata->desc = bq25703_vbus_desc;
 
        platform_set_drvdata(pdev, pdata);