Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7e0c2302 authored by Raghava Chowdam's avatar Raghava Chowdam Committed by Gerrit - the friendly Code Review server
Browse files

driver: iio: imu: Enable gpio to control the power on to asm330 sensor



Enable the gpio to control the power to asm330 sensor and
add 35ms delay so that sensor will get power on by that time.

Change-Id: I040c416abc184c2e4b49feab36fbfa7ba87ca607
Signed-off-by: default avatarRaghava Chowdam <rchowdam@codeaurora.org>
parent 7e24d201
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -239,6 +239,7 @@ struct st_asm330lhh_hw {
	struct st_asm330lhh_transfer_buffer tb;
	struct regulator *vdd;
	struct regulator *vio;
	int enable_gpio;
};

extern const struct dev_pm_ops st_asm330lhh_pm_ops;
+17 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
#include <linux/pm.h>
#include <linux/version.h>
#include <linux/of.h>
#include <linux/of_gpio.h>
#include <linux/regulator/consumer.h>

#include <linux/platform_data/st_sensors_pdata.h>
@@ -69,6 +70,9 @@
#define ST_ASM330LHH_TEMP_FS_GAIN		(1000000 / ST_ASM330LHH_TEMP_GAIN)
#define ST_ASM330LHH_OFFSET			(6400)

/* Turn on of sensor in ms */
#define ST_ASM330LHH_TURN_ON_TIME		35

static int asm330_check_regulator;

struct st_asm330lhh_std_entry {
@@ -1152,6 +1156,19 @@ int st_asm330lhh_probe(struct device *dev, int irq,
	hw->tf = tf_ops;
	np = hw->dev->of_node;

	hw->enable_gpio = of_get_named_gpio(np, "asm330-enable-gpio", 0);
	if (gpio_is_valid(hw->enable_gpio)) {
		err = gpio_request(hw->enable_gpio, "asm330_enable");
		if (err < 0) {
			dev_err(hw->dev,
					"failed to request gpio %d: %d\n",
					hw->enable_gpio, err);
			return err;
		}
		gpio_direction_output(hw->enable_gpio, 1);
		msleep(ST_ASM330LHH_TURN_ON_TIME);
	}

	dev_info(hw->dev, "Ver: %s\n", ST_ASM330LHH_VERSION);

	/* use qtimer if property is enabled */