summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Wilson <evan@oliodevices.com>2015-12-20 00:59:31 -0800
committerEvan Wilson <evan@oliodevices.com>2015-12-20 00:59:31 -0800
commit6a337f484ddc57ea23149052c43f309c2f5994a1 (patch)
tree12242c3b3840eada29a03aa014657a092a54cc1e
parenta2cf73d74dc87c054c3ca329eba11299f2efb95f (diff)
downloadolio-linux-3.10-6a337f484ddc57ea23149052c43f309c2f5994a1.tar.xz
olio-linux-3.10-6a337f484ddc57ea23149052c43f309c2f5994a1.zip
Enabled 6D and Tap on init, and removed from other places
Change-Id: Ia6a7cd4c276a07bca6740181c517becdfc03aab6
-rw-r--r--drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_core.c28
1 files changed, 17 insertions, 11 deletions
diff --git a/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_core.c b/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_core.c
index ead52144441..9f2527bad93 100644
--- a/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_core.c
+++ b/drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_core.c
@@ -1104,9 +1104,10 @@ static int st_lsm6ds3_enable_sensors(struct lsm6ds3_sensor_data *sdata)
sdata->c_odr = st_lsm6ds3_odr_table.odr_avl[i].hz;
//enable tap and
//passthrough since we always want 6d and tap enabled;
+ break;
case ST_INDIO_DEV_SIGN_MOTION:
-
+ dev_info(sdata->cdata->dev, "Enabling 6d and Tap");
err = st_lsm6ds3_write_data_with_mask(sdata->cdata,
ST_LSM6DS3_MD1_ADDR, ST_LSM6DS3_6D_MD1_INT_MASK, ST_LSM6DS3_EN_BIT, true);
if (err < 0)
@@ -1536,6 +1537,11 @@ static int st_lsm6ds3_init_sensor(struct lsm6ds3_data *cdata)
#define ST_LSM6DS3_CTRL8_LPF_ON_ACCEL 0x80
#define ST_LSM6DS3_CTRL4_ADDR 0x13
#define ST_LSM6DS3_CTRL4_STOP_ON_FTH_MASK 0x1
+ regval = 0x44; // MD1 (6D and Tap on INT1)
+ err = sdata->cdata->tf->write(sdata->cdata,
+ ST_LSM6DS3_MD1_ADDR,
+ 1, &regval, false);
+
regval = 0x48;//tap threshold
err = sdata->cdata->tf->write(sdata->cdata,
ST_LSM6DS3_TAP_THS_6D_ADDR,
@@ -2344,16 +2350,16 @@ int st_lsm6ds3_common_suspend(struct lsm6ds3_data *cdata)
if (device_may_wakeup(cdata->dev))
enable_irq_wake(cdata->irq);
}
- err = cdata->tf->read(cdata,
- ST_LSM6DS3_MD1_ADDR, 1, &reg_value, true);
- dev_info(cdata->dev, "before suspend md1: %x, err:%i", reg_value, err);
- dev_info(cdata->dev, "manually setting to 0x44");
- reg_value = 0x44;
- err = cdata->tf->write(cdata,
- ST_LSM6DS3_MD1_ADDR, 1, &reg_value, true);
- err = cdata->tf->read(cdata,
- ST_LSM6DS3_MD1_ADDR, 1, &reg_value, true);
- dev_info(cdata->dev, "before suspend md1: %x, err:%i", reg_value, err);
+// err = cdata->tf->read(cdata,
+// ST_LSM6DS3_MD1_ADDR, 1, &reg_value, true);
+// dev_info(cdata->dev, "before suspend md1: %x, err:%i", reg_value, err);
+// dev_info(cdata->dev, "manually setting to 0x44");
+// reg_value = 0x44;
+// err = cdata->tf->write(cdata,
+// ST_LSM6DS3_MD1_ADDR, 1, &reg_value, true);
+// err = cdata->tf->read(cdata,
+// ST_LSM6DS3_MD1_ADDR, 1, &reg_value, true);
+// dev_info(cdata->dev, "before suspend md1: %x, err:%i", reg_value, err);
err = cdata->tf->read(cdata,
0xd, 1, &reg_value, true);