diff options
author | Yuval Peress <peress@chromium.org> | 2019-05-20 21:12:02 -0600 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-05-23 18:08:53 +0000 |
commit | 08ad5d198c54920e8616674aaff32a16071c05ec (patch) | |
tree | 974c10af3dce36815c708d8b13bd85d84a6336e1 | |
parent | 5509210e5de81c58662cb1e32ad0b916edccdb9c (diff) | |
download | chrome-ec-08ad5d198c54920e8616674aaff32a16071c05ec.tar.gz |
driver: lsm6dsm: Move the interrupt GPIO into sensor struct
This changes allows each board to add a custom configuration for the
sensors. In this case particularly setting the GPIO enum that is used
for the interrupt signal in the lsm6dsm.
BUG=b:129159505
BRANCH=arcada
TEST=I ran `make buildall` since this change isn't used yet it doesn't
affect run-time behavior.
Change-Id: I4a2d5e097d5fd8a45af591a24c4e6e917865a093
Signed-off-by: Yuval Peress <peress@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1621747
Legacy-Commit-Queue: Commit Bot <commit-bot@chromium.org>
Reviewed-by: Jett Rink <jettrink@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1626321
Commit-Queue: Jett Rink <jettrink@chromium.org>
Tested-by: Jett Rink <jettrink@chromium.org>
-rw-r--r-- | board/arcada_ish/board.c | 4 | ||||
-rw-r--r-- | board/bloog/board.c | 4 | ||||
-rw-r--r-- | board/fleex/board.c | 4 | ||||
-rw-r--r-- | board/meep/board.c | 4 | ||||
-rw-r--r-- | board/phaser/board.c | 4 | ||||
-rw-r--r-- | board/yorp/board.c | 4 | ||||
-rw-r--r-- | include/motion_sense.h | 3 |
7 files changed, 27 insertions, 0 deletions
diff --git a/board/arcada_ish/board.c b/board/arcada_ish/board.c index 2bba8bd0da..f5e3d3ef0b 100644 --- a/board/arcada_ish/board.c +++ b/board/arcada_ish/board.c @@ -60,6 +60,8 @@ struct motion_sensor_t motion_sensors[] = { .mutex = &g_lid_mutex, .drv_data = LSM6DSM_ST_DATA(lsm6dsm_a_data, MOTIONSENSE_TYPE_ACCEL), + .int_signal = GPIO_ACCEL_GYRO_INT_L, + .flags = MOTIONSENSE_FLAG_INT_SIGNAL, .port = I2C_PORT_SENSOR, .addr = LSM6DSM_ADDR1, .rot_standard_ref = &lid_rot_ref, @@ -88,6 +90,8 @@ struct motion_sensor_t motion_sensors[] = { .mutex = &g_lid_mutex, .drv_data = LSM6DSM_ST_DATA(lsm6dsm_a_data, MOTIONSENSE_TYPE_GYRO), + .int_signal = GPIO_ACCEL_GYRO_INT_L, + .flags = MOTIONSENSE_FLAG_INT_SIGNAL, .port = I2C_PORT_SENSOR, .addr = LSM6DSM_ADDR1, .default_range = 1000 | ROUND_UP_FLAG, /* dps */ diff --git a/board/bloog/board.c b/board/bloog/board.c index 498eee17bd..f61621c95b 100644 --- a/board/bloog/board.c +++ b/board/bloog/board.c @@ -163,6 +163,8 @@ struct motion_sensor_t motion_sensors[] = { .mutex = &g_base_mutex, .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data, MOTIONSENSE_TYPE_ACCEL), + .int_signal = GPIO_BASE_SIXAXIS_INT_L, + .flags = MOTIONSENSE_FLAG_INT_SIGNAL, .port = I2C_PORT_SENSOR, .addr = LSM6DSM_ADDR0, .rot_standard_ref = &base_standard_ref, @@ -193,6 +195,8 @@ struct motion_sensor_t motion_sensors[] = { .mutex = &g_base_mutex, .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data, MOTIONSENSE_TYPE_GYRO), + .int_signal = GPIO_BASE_SIXAXIS_INT_L, + .flags = MOTIONSENSE_FLAG_INT_SIGNAL, .port = I2C_PORT_SENSOR, .addr = LSM6DSM_ADDR0, .default_range = 1000 | ROUND_UP_FLAG, /* dps */ diff --git a/board/fleex/board.c b/board/fleex/board.c index d76c1e5dd6..386d8ad61b 100644 --- a/board/fleex/board.c +++ b/board/fleex/board.c @@ -161,6 +161,8 @@ struct motion_sensor_t motion_sensors[] = { .mutex = &g_base_mutex, .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data, MOTIONSENSE_TYPE_ACCEL), + .int_signal = GPIO_BASE_SIXAXIS_INT_L, + .flags = MOTIONSENSE_FLAG_INT_SIGNAL, .port = I2C_PORT_SENSOR, .addr = LSM6DSM_ADDR0, .rot_standard_ref = &base_standard_ref, @@ -191,6 +193,8 @@ struct motion_sensor_t motion_sensors[] = { .mutex = &g_base_mutex, .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data, MOTIONSENSE_TYPE_GYRO), + .int_signal = GPIO_BASE_SIXAXIS_INT_L, + .flags = MOTIONSENSE_FLAG_INT_SIGNAL, .port = I2C_PORT_SENSOR, .addr = LSM6DSM_ADDR0, .default_range = 1000 | ROUND_UP_FLAG, /* dps */ diff --git a/board/meep/board.c b/board/meep/board.c index 9420a74f40..8c44bda737 100644 --- a/board/meep/board.c +++ b/board/meep/board.c @@ -163,6 +163,8 @@ struct motion_sensor_t motion_sensors[] = { .mutex = &g_base_mutex, .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data, MOTIONSENSE_TYPE_ACCEL), + .int_signal = GPIO_BASE_SIXAXIS_INT_L, + .flags = MOTIONSENSE_FLAG_INT_SIGNAL, .port = I2C_PORT_SENSOR, .addr = LSM6DSM_ADDR0, .rot_standard_ref = &base_standard_ref, @@ -193,6 +195,8 @@ struct motion_sensor_t motion_sensors[] = { .mutex = &g_base_mutex, .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data, MOTIONSENSE_TYPE_GYRO), + .int_signal = GPIO_BASE_SIXAXIS_INT_L, + .flags = MOTIONSENSE_FLAG_INT_SIGNAL, .port = I2C_PORT_SENSOR, .addr = LSM6DSM_ADDR0, .default_range = 1000 | ROUND_UP_FLAG, /* dps */ diff --git a/board/phaser/board.c b/board/phaser/board.c index 630662a75f..68d5bbd633 100644 --- a/board/phaser/board.c +++ b/board/phaser/board.c @@ -148,6 +148,8 @@ struct motion_sensor_t motion_sensors[] = { .mutex = &g_base_mutex, .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data, MOTIONSENSE_TYPE_ACCEL), + .int_signal = GPIO_BASE_SIXAXIS_INT_L, + .flags = MOTIONSENSE_FLAG_INT_SIGNAL, .port = I2C_PORT_SENSOR, .addr = LSM6DSM_ADDR0, .rot_standard_ref = &standard_rot_ref, @@ -178,6 +180,8 @@ struct motion_sensor_t motion_sensors[] = { .mutex = &g_base_mutex, .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data, MOTIONSENSE_TYPE_GYRO), + .int_signal = GPIO_BASE_SIXAXIS_INT_L, + .flags = MOTIONSENSE_FLAG_INT_SIGNAL, .port = I2C_PORT_SENSOR, .addr = LSM6DSM_ADDR0, .default_range = 1000 | ROUND_UP_FLAG, /* dps */ diff --git a/board/yorp/board.c b/board/yorp/board.c index 3a9091aef4..65653ac168 100644 --- a/board/yorp/board.c +++ b/board/yorp/board.c @@ -144,6 +144,8 @@ struct motion_sensor_t motion_sensors[] = { .mutex = &g_base_mutex, .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data, MOTIONSENSE_TYPE_ACCEL), + .int_signal = GPIO_BASE_SIXAXIS_INT_L, + .flags = MOTIONSENSE_FLAG_INT_SIGNAL, .port = I2C_PORT_SENSOR, .addr = LSM6DSM_ADDR0, .rot_standard_ref = &base_standard_ref, @@ -174,6 +176,8 @@ struct motion_sensor_t motion_sensors[] = { .mutex = &g_base_mutex, .drv_data = LSM6DSM_ST_DATA(lsm6dsm_data, MOTIONSENSE_TYPE_GYRO), + .int_signal = GPIO_BASE_SIXAXIS_INT_L, + .flags = MOTIONSENSE_FLAG_INT_SIGNAL, .port = I2C_PORT_SENSOR, .addr = LSM6DSM_ADDR0, .default_range = 1000 | ROUND_UP_FLAG, /* dps */ diff --git a/include/motion_sense.h b/include/motion_sense.h index e4ca21ac30..52db4b2fb5 100644 --- a/include/motion_sense.h +++ b/include/motion_sense.h @@ -112,6 +112,7 @@ struct motion_data_t { * the components. */ #define MOTIONSENSE_FLAG_IN_SPOOF_MODE BIT(1) +#define MOTIONSENSE_FLAG_INT_SIGNAL BIT(2) struct motion_sensor_t { /* RO fields */ @@ -124,6 +125,8 @@ struct motion_sensor_t { /* One mutex per physical chip. */ struct mutex *mutex; void *drv_data; + /* Only valid if flags & MOTIONSENSE_FLAG_INT_SIGNAL is true. */ + enum gpio_signal int_signal; /* i2c port */ uint8_t port; |