summaryrefslogtreecommitdiff
path: root/driver
diff options
context:
space:
mode:
authorInno.Park <ih.yoo.park@samsung.corp-partner.google.com>2020-05-28 10:57:40 +0900
committerCommit Bot <commit-bot@chromium.org>2020-06-04 10:10:12 +0000
commit075b802f1a7cff4ff1a001f7f872c35e9a876f48 (patch)
tree09acd4579e68bec59bd16a8c1e2bdfbf70ec379b /driver
parentc5127356dafac83b49efeab06142af087351a27b (diff)
downloadchrome-ec-075b802f1a7cff4ff1a001f7f872c35e9a876f48.tar.gz
driver: lis2ds: add a setting if interrupt active low or not
H_LACTIVE bit setting has been added to support both active high or low interrupt. And return value in lis2ds_load_fifo() also has been corrected. It returns a byte count, seen as if an error code and never used. BUG=b:154299214 BRANCH=none TEST=build EC and flash 'ec.bin'. boot device and check the interrupt line high or low Change-Id: I71bb0ecd99ce1b5319c10238980098dfa001f4c1 Signed-off-by: Inno.Park <ih.yoo.park@samsung.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2217608 Reviewed-by: Bob Moragues <moragues@chromium.org>
Diffstat (limited to 'driver')
-rw-r--r--driver/accel_lis2ds.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/driver/accel_lis2ds.c b/driver/accel_lis2ds.c
index 5d13c4806a..a055d533b9 100644
--- a/driver/accel_lis2ds.c
+++ b/driver/accel_lis2ds.c
@@ -78,13 +78,24 @@ static int lis2ds_load_fifo(struct motion_sensor_t *s, uint16_t nsamples,
read_len += chunk_len;
};
- return read_len;
+ if (read_len > 0)
+ motion_sense_fifo_commit_data();
+
+ return EC_SUCCESS;
}
__maybe_unused static int lis2ds_config_interrupt(const struct motion_sensor_t *s)
{
int ret = EC_SUCCESS;
+ /* Interrupt trigger level of power-on-reset is HIGH */
+ if (!(s->flags & MOTIONSENSE_FLAG_INT_ACTIVE_HIGH)) {
+ ret = st_write_data_with_mask(s, LIS2DS_H_ACTIVE_ADDR,
+ LIS2DS_H_ACTIVE_MASK, LIS2DS_EN_BIT);
+ if (ret != EC_SUCCESS)
+ return ret;
+ }
+
if (IS_ENABLED(CONFIG_ACCEL_FIFO)) {
/*
* Configure FIFO threshold to 1 sample: interrupt on watermark
@@ -155,8 +166,6 @@ __maybe_unused static int lis2ds_irq_handler(struct motion_sensor_t *s,
nsamples = 256;
ret = lis2ds_load_fifo(s, nsamples, last_interrupt_timestamp);
- if (ret > 0)
- motion_sense_fifo_commit_data();
}
return ret;