diff options
| -rw-r--r-- | drivers/iio/imu/st_lsm6ds3/st_lsm6ds3_core.c | 28 |
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, ®val, 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, ®_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, ®_value, true); - err = cdata->tf->read(cdata, - ST_LSM6DS3_MD1_ADDR, 1, ®_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, ®_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, ®_value, true); +// err = cdata->tf->read(cdata, +// ST_LSM6DS3_MD1_ADDR, 1, ®_value, true); +// dev_info(cdata->dev, "before suspend md1: %x, err:%i", reg_value, err); err = cdata->tf->read(cdata, 0xd, 1, ®_value, true); |