regulator: ROHM bd7xxxx: Do not depend on parent driver data
authorMatti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
Tue, 5 Jan 2021 13:02:21 +0000 (15:02 +0200)
committerMark Brown <broonie@kernel.org>
Tue, 5 Jan 2021 14:35:27 +0000 (14:35 +0000)
The ROHM PMIC regulator drivers only need the regmap pointer from
the parent device. Regmap can be obtained via dev_get_regmap()
so do not require parent to populate driver data for that.

Signed-off-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
Link: https://lore.kernel.org/r/20210105130221.GA3438042@localhost.localdomain
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/bd70528-regulator.c
drivers/regulator/bd71828-regulator.c

index d44adf7..1f5f948 100644 (file)
@@ -244,19 +244,14 @@ static const struct regulator_desc bd70528_desc[] = {
 
 static int bd70528_probe(struct platform_device *pdev)
 {
-       struct rohm_regmap_dev *bd70528;
        int i;
        struct regulator_config config = {
                .dev = pdev->dev.parent,
        };
 
-       bd70528 = dev_get_drvdata(pdev->dev.parent);
-       if (!bd70528) {
-               dev_err(&pdev->dev, "No MFD driver data\n");
-               return -EINVAL;
-       }
-
-       config.regmap = bd70528->regmap;
+       config.regmap = dev_get_regmap(pdev->dev.parent, NULL);
+       if (!config.regmap)
+               return -ENODEV;
 
        for (i = 0; i < ARRAY_SIZE(bd70528_desc); i++) {
                struct regulator_dev *rdev;
index 85c0b90..6b12e96 100644 (file)
@@ -749,19 +749,14 @@ static const struct bd71828_regulator_data bd71828_rdata[] = {
 
 static int bd71828_probe(struct platform_device *pdev)
 {
-       struct rohm_regmap_dev *bd71828;
        int i, j, ret;
        struct regulator_config config = {
                .dev = pdev->dev.parent,
        };
 
-       bd71828 = dev_get_drvdata(pdev->dev.parent);
-       if (!bd71828) {
-               dev_err(&pdev->dev, "No MFD driver data\n");
-               return -EINVAL;
-       }
-
-       config.regmap = bd71828->regmap;
+       config.regmap = dev_get_regmap(pdev->dev.parent, NULL);
+       if (!config.regmap)
+               return -ENODEV;
 
        for (i = 0; i < ARRAY_SIZE(bd71828_rdata); i++) {
                struct regulator_dev *rdev;
@@ -777,7 +772,7 @@ static int bd71828_probe(struct platform_device *pdev)
                        return PTR_ERR(rdev);
                }
                for (j = 0; j < rd->reg_init_amnt; j++) {
-                       ret = regmap_update_bits(bd71828->regmap,
+                       ret = regmap_update_bits(config.regmap,
                                                 rd->reg_inits[j].reg,
                                                 rd->reg_inits[j].mask,
                                                 rd->reg_inits[j].val);