*/
#include <linux/err.h>
-#include <linux/gpio.h>
#include <linux/i2c.h>
#include <linux/module.h>
#include <linux/init.h>
#include <linux/regmap.h>
#include <linux/irq.h>
#include <linux/interrupt.h>
-#include <linux/of_gpio.h>
+#include <linux/gpio/consumer.h>
#include <linux/regulator/of_regulator.h>
#include <linux/regulator/da9211.h>
#include "da9211-regulator.h"
pdata->init_data[n] = da9211_matches[i].init_data;
pdata->reg_node[n] = da9211_matches[i].of_node;
- pdata->gpio_ren[n] =
- of_get_named_gpio(da9211_matches[i].of_node,
- "enable-gpios", 0);
+ pdata->gpiod_ren[n] = devm_gpiod_get_from_of_node(dev,
+ da9211_matches[i].of_node,
+ "enable",
+ 0,
+ GPIOD_OUT_HIGH,
+ "da9211-enable");
n++;
}
config.regmap = chip->regmap;
config.of_node = chip->pdata->reg_node[i];
- if (gpio_is_valid(chip->pdata->gpio_ren[i])) {
- config.ena_gpio = chip->pdata->gpio_ren[i];
- config.ena_gpio_initialized = true;
- } else {
- config.ena_gpio = -EINVAL;
- config.ena_gpio_initialized = false;
- }
+ if (chip->pdata->gpiod_ren[i])
+ config.ena_gpiod = chip->pdata->gpiod_ren[i];
+ else
+ config.ena_gpiod = NULL;
chip->rdev[i] = devm_regulator_register(chip->dev,
&da9211_regulators[i], &config);
#define DA9211_MAX_REGULATORS 2
+struct gpio_desc;
+
enum da9211_chip_id {
DA9211,
DA9212,
* 2 : 2 phase 2 buck
*/
int num_buck;
- int gpio_ren[DA9211_MAX_REGULATORS];
+ struct gpio_desc *gpiod_ren[DA9211_MAX_REGULATORS];
struct device_node *reg_node[DA9211_MAX_REGULATORS];
struct regulator_init_data *init_data[DA9211_MAX_REGULATORS];
};