regulator: mp5416: use OF match data
authorRobert Marko <robimarko@gmail.com>
Sat, 4 Jun 2022 14:58:15 +0000 (16:58 +0200)
committerMark Brown <broonie@kernel.org>
Mon, 6 Jun 2022 11:39:08 +0000 (12:39 +0100)
In preparation for adding support for MP5496 which slightly differs from
MP5416 convert the driver to use OF match data instead of always using the
MP5416 regulator_desc for regulator registration.

Signed-off-by: Robert Marko <robimarko@gmail.com>
Acked-by: Saravanan Sekar <sravanhome@gmail.com>
Link: https://lore.kernel.org/r/20220604145816.47576-3-robimarko@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/mp5416.c

index d8245080df03f7614908cc51b3fbb35795292b7f..011a825570eaba96d118f03e6ce4a9782b391a1c 100644 (file)
@@ -11,6 +11,7 @@
 #include <linux/init.h>
 #include <linux/kernel.h>
 #include <linux/module.h>
+#include <linux/of_device.h>
 #include <linux/platform_device.h>
 #include <linux/regmap.h>
 #include <linux/regulator/driver.h>
@@ -178,6 +179,7 @@ static int mp5416_i2c_probe(struct i2c_client *client)
 {
        struct device *dev = &client->dev;
        struct regulator_config config = { NULL, };
+       static const struct regulator_desc *desc;
        struct regulator_dev *rdev;
        struct regmap *regmap;
        int i;
@@ -188,12 +190,16 @@ static int mp5416_i2c_probe(struct i2c_client *client)
                return PTR_ERR(regmap);
        }
 
+       desc = of_device_get_match_data(dev);
+       if (!desc)
+               return -ENODEV;
+
        config.dev = dev;
        config.regmap = regmap;
 
        for (i = 0; i < MP5416_MAX_REGULATORS; i++) {
                rdev = devm_regulator_register(dev,
-                                              &mp5416_regulators_desc[i],
+                                              &desc[i],
                                               &config);
                if (IS_ERR(rdev)) {
                        dev_err(dev, "Failed to register regulator!\n");
@@ -205,7 +211,7 @@ static int mp5416_i2c_probe(struct i2c_client *client)
 }
 
 static const struct of_device_id mp5416_of_match[] = {
-       { .compatible = "mps,mp5416" },
+       { .compatible = "mps,mp5416", .data = &mp5416_regulators_desc },
        {},
 };
 MODULE_DEVICE_TABLE(of, mp5416_of_match);