diff options
author | Michał Barnaś <mb@semihalf.com> | 2021-08-30 20:40:00 +0200 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-09-30 00:27:46 +0000 |
commit | 69abe2e3f6e0ca360d340510aa45f8ab0f782619 (patch) | |
tree | 8072db247a19d793ecaaa68a3d1598eb090e2db3 | |
parent | a6f76a36befdf6d2c28c52fc8f0a93aec7e008f6 (diff) | |
download | chrome-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.c | 17 |
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 |