aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/regulator/da9211-regulator.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/regulator/da9211-regulator.c')
-rw-r--r--drivers/regulator/da9211-regulator.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/drivers/regulator/da9211-regulator.c b/drivers/regulator/da9211-regulator.c
index c78d2106d6cb..01343419555e 100644
--- a/drivers/regulator/da9211-regulator.c
+++ b/drivers/regulator/da9211-regulator.c
@@ -24,6 +24,7 @@
24#include <linux/regmap.h> 24#include <linux/regmap.h>
25#include <linux/irq.h> 25#include <linux/irq.h>
26#include <linux/interrupt.h> 26#include <linux/interrupt.h>
27#include <linux/of_gpio.h>
27#include <linux/regulator/of_regulator.h> 28#include <linux/regulator/of_regulator.h>
28#include <linux/regulator/da9211.h> 29#include <linux/regulator/da9211.h>
29#include "da9211-regulator.h" 30#include "da9211-regulator.h"
@@ -276,7 +277,10 @@ static struct da9211_pdata *da9211_parse_regulators_dt(
276 continue; 277 continue;
277 278
278 pdata->init_data[n] = da9211_matches[i].init_data; 279 pdata->init_data[n] = da9211_matches[i].init_data;
279 280 pdata->reg_node[n] = da9211_matches[i].of_node;
281 pdata->gpio_ren[n] =
282 of_get_named_gpio(da9211_matches[i].of_node,
283 "enable-gpios", 0);
280 n++; 284 n++;
281 } 285 }
282 286
@@ -364,7 +368,15 @@ static int da9211_regulator_init(struct da9211 *chip)
364 config.dev = chip->dev; 368 config.dev = chip->dev;
365 config.driver_data = chip; 369 config.driver_data = chip;
366 config.regmap = chip->regmap; 370 config.regmap = chip->regmap;
367 config.of_node = chip->dev->of_node; 371 config.of_node = chip->pdata->reg_node[i];
372
373 if (gpio_is_valid(chip->pdata->gpio_ren[i])) {
374 config.ena_gpio = chip->pdata->gpio_ren[i];
375 config.ena_gpio_initialized = true;
376 } else {
377 config.ena_gpio = -EINVAL;
378 config.ena_gpio_initialized = false;
379 }
368 380
369 chip->rdev[i] = devm_regulator_register(chip->dev, 381 chip->rdev[i] = devm_regulator_register(chip->dev,
370 &da9211_regulators[i], &config); 382 &da9211_regulators[i], &config);