@@ -17,6 +17,7 @@
#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/regmap.h>
+#include <linux/regulator/consumer.h>
#include <linux/types.h>
enum {
@@ -710,6 +711,10 @@ static int adp5585_i2c_probe(struct i2c_client *i2c)
if (IS_ERR(regmap_config))
return PTR_ERR(regmap_config);
+ ret = devm_regulator_get_enable(&i2c->dev, "vdd");
+ if (ret)
+ return ret;
+
adp5585->regmap = devm_regmap_init_i2c(i2c, regmap_config);
if (IS_ERR(adp5585->regmap))
return dev_err_probe(&i2c->dev, PTR_ERR(adp5585->regmap),
@@ -726,6 +731,7 @@ static int adp5585_i2c_probe(struct i2c_client *i2c)
"Invalid device ID 0x%02x\n", id);
adp5585->pin_usage = devm_bitmap_zalloc(&i2c->dev, adp5585->n_pins, GFP_KERNEL);
+
if (!adp5585->pin_usage)
return -ENOMEM;