diff options
-rw-r--r-- | drivers/iio/temperature/tmp117.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/iio/temperature/tmp117.c b/drivers/iio/temperature/tmp117.c index 059953015ae7..8972083d903a 100644 --- a/drivers/iio/temperature/tmp117.c +++ b/drivers/iio/temperature/tmp117.c @@ -9,6 +9,7 @@ * Note: This driver assumes that the sensor has been calibrated beforehand. */ +#include <linux/delay.h> #include <linux/err.h> #include <linux/i2c.h> #include <linux/module.h> @@ -17,6 +18,7 @@ #include <linux/kernel.h> #include <linux/limits.h> #include <linux/property.h> +#include <linux/regulator/consumer.h> #include <linux/iio/iio.h> @@ -148,10 +150,17 @@ static int tmp117_probe(struct i2c_client *client) struct tmp117_data *data; struct iio_dev *indio_dev; int dev_id; + int ret; if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_WORD_DATA)) return -EOPNOTSUPP; + ret = devm_regulator_get_enable(&client->dev, "vcc"); + if (ret) + return ret; + + fsleep(1500); + dev_id = i2c_smbus_read_word_swapped(client, TMP117_REG_DEVICE_ID); if (dev_id < 0) return dev_id; |