]> git.baikalelectronics.ru Git - kernel.git/commitdiff
regulator: slg51000: switch to using fwnode_gpiod_get_index
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Fri, 4 Oct 2019 23:10:12 +0000 (16:10 -0700)
committerMark Brown <broonie@kernel.org>
Mon, 7 Oct 2019 13:01:56 +0000 (14:01 +0100)
devm_gpiod_get_from_of_node() is being retired in favor of
[devm_]fwnode_gpiod_get_index(), that behaves similar to
devm_gpiod_get_index(), but can work with arbitrary firmware node. It
will also be able to support secondary software nodes.

Let's switch this driver over.

Note that now that we have a good non-devm API for getting GPIO from
arbitrary firmware node, there is no reason to use devm API here as
regulator core takes care of managing lifetime of "enable" GPIO and we
were immediately detaching requested GPIO from devm anyway.

Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Link: https://lore.kernel.org/r/20191004231017.130290-3-dmitry.torokhov@gmail.com
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/regulator/slg51000-regulator.c

index a0565daecacef3bbf9971f23286e7f0151bea89a..bf1a3508ebc4038caa8a15f816261e4bd8ed02dd 100644 (file)
@@ -198,17 +198,14 @@ static int slg51000_of_parse_cb(struct device_node *np,
                                const struct regulator_desc *desc,
                                struct regulator_config *config)
 {
-       struct slg51000 *chip = config->driver_data;
        struct gpio_desc *ena_gpiod;
-       enum gpiod_flags gflags = GPIOD_OUT_LOW | GPIOD_FLAGS_BIT_NONEXCLUSIVE;
 
-       ena_gpiod = devm_gpiod_get_from_of_node(chip->dev, np,
-                                               "enable-gpios", 0,
-                                               gflags, "gpio-en-ldo");
-       if (!IS_ERR(ena_gpiod)) {
+       ena_gpiod = fwnode_gpiod_get_index(of_fwnode_handle(np), "enable", 0,
+                                          GPIOD_OUT_LOW |
+                                               GPIOD_FLAGS_BIT_NONEXCLUSIVE,
+                                          "gpio-en-ldo");
+       if (!IS_ERR(ena_gpiod))
                config->ena_gpiod = ena_gpiod;
-               devm_gpiod_unhinge(chip->dev, config->ena_gpiod);
-       }
 
        return 0;
 }