summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Barnaś <mb@semihalf.com>2021-08-30 20:40:00 +0200
committerCommit Bot <commit-bot@chromium.org>2021-09-30 00:27:46 +0000
commit69abe2e3f6e0ca360d340510aa45f8ab0f782619 (patch)
tree8072db247a19d793ecaaa68a3d1598eb090e2db3
parenta6f76a36befdf6d2c28c52fc8f0a93aec7e008f6 (diff)
downloadchrome-ec-69abe2e3f6e0ca360d340510aa45f8ab0f782619.tar.gz
accel: add probing support for kionix driver
Add function to probe the kx022 chip. BRANCH=main BUG=b:194424288 TEST=kx022 can be added as alternative motion sensor and it should be probed correctly Change-Id: Ib2d5c2b15dedf3a90e3c4ce0bffae9df2d29ac20 Signed-off-by: Michał Barnaś <mb@semihalf.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3129963 Reviewed-by: Keith Short <keithshort@chromium.org> Commit-Queue: Keith Short <keithshort@chromium.org>
-rw-r--r--driver/accel_kionix.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/driver/accel_kionix.c b/driver/accel_kionix.c
index 69f0ca9073..3b75e33e0b 100644
--- a/driver/accel_kionix.c
+++ b/driver/accel_kionix.c
@@ -668,6 +668,22 @@ reset_failed:
return ret;
}
+static int probe(const struct motion_sensor_t *s)
+{
+ int val;
+
+ if (i2c_read8(s->port,
+ s->i2c_spi_addr_flags,
+ KIONIX_WHO_AM_I(V(s)),
+ &val) != EC_SUCCESS)
+ return EC_ERROR_HW_INTERNAL;
+
+ if (val != KIONIX_WHO_AM_I_VAL(V(s)))
+ return EC_ERROR_HW_INTERNAL;
+
+ return EC_SUCCESS;
+}
+
const struct accelgyro_drv kionix_accel_drv = {
.init = init,
.read = read,
@@ -678,6 +694,7 @@ const struct accelgyro_drv kionix_accel_drv = {
.get_data_rate = get_data_rate,
.set_offset = set_offset,
.get_offset = get_offset,
+ .probe = probe,
};
#ifdef CONFIG_CMD_I2C_STRESS_TEST_ACCEL