summaryrefslogtreecommitdiff
path: root/board/elm
diff options
context:
space:
mode:
authorYuval Peress <peress@chromium.org>2019-05-30 12:02:10 -0600
committerCommit Bot <commit-bot@chromium.org>2019-06-05 18:50:20 +0000
commit01fd86385bdcf633db0acd91b5f60733097a84a3 (patch)
treecd142bbb9941fbaf30ff8bb969c74433c1199488 /board/elm
parente36f5ff57b2456c61f868af7be3f6929b28f1bf3 (diff)
downloadchrome-ec-01fd86385bdcf633db0acd91b5f60733097a84a3.tar.gz
common: motion_sense: Require CONFIG_MOTION_SENSOR_MAX_COUNT
This changes requires all boards to define the maximum number of sensors they support. This will allow us to later create static arrays with the appropriate length. BUG=chromium:966506 BRANCH=None TEST=make buildall Change-Id: I5a2fa8f0fdcaef69065dfd4c2bfea4e3f371e986 Signed-off-by: Yuval Peress <peress@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1637414 Reviewed-by: Jett Rink <jettrink@chromium.org>
Diffstat (limited to 'board/elm')
-rw-r--r--board/elm/board.c79
-rw-r--r--board/elm/board.h10
2 files changed, 49 insertions, 40 deletions
diff --git a/board/elm/board.c b/board/elm/board.c
index f2d567ace7..312caa6509 100644
--- a/board/elm/board.c
+++ b/board/elm/board.c
@@ -450,50 +450,53 @@ const mat33_fp_t lid_standard_ref = {
struct kionix_accel_data g_kx022_data[2];
struct motion_sensor_t motion_sensors[] = {
- {.name = "Base Accel",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_BASE,
- .drv = &kionix_accel_drv,
- .mutex = &g_kx022_mutex[0],
- .drv_data = &g_kx022_data[0],
- .addr = 1, /* SPI, device ID 0 */
- .rot_standard_ref = &base_standard_ref,
- .default_range = 2, /* g, enough for laptop. */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
+ [BASE_ACCEL] = {
+ .name = "Base Accel",
+ .active_mask = SENSOR_ACTIVE_S0,
+ .chip = MOTIONSENSE_CHIP_KX022,
+ .type = MOTIONSENSE_TYPE_ACCEL,
+ .location = MOTIONSENSE_LOC_BASE,
+ .drv = &kionix_accel_drv,
+ .mutex = &g_kx022_mutex[0],
+ .drv_data = &g_kx022_data[0],
+ .addr = 1, /* SPI, device ID 0 */
+ .rot_standard_ref = &base_standard_ref,
+ .default_range = 2, /* g, enough for laptop. */
+ .min_frequency = KX022_ACCEL_MIN_FREQ,
+ .max_frequency = KX022_ACCEL_MAX_FREQ,
+ .config = {
+ /* EC use accel for angle detection */
+ [SENSOR_CONFIG_EC_S0] = {
+ .odr = 10000 | ROUND_UP_FLAG,
+ .ec_rate = 100 * MSEC,
+ },
},
- },
},
- {.name = "Lid Accel",
- .active_mask = SENSOR_ACTIVE_S0,
- .chip = MOTIONSENSE_CHIP_KX022,
- .type = MOTIONSENSE_TYPE_ACCEL,
- .location = MOTIONSENSE_LOC_LID,
- .drv = &kionix_accel_drv,
- .mutex = &g_kx022_mutex[1],
- .drv_data = &g_kx022_data[1],
- .addr = 3, /* SPI, device ID 1 */
- .rot_standard_ref = &lid_standard_ref,
- .default_range = 2, /* g, enough for laptop. */
- .min_frequency = KX022_ACCEL_MIN_FREQ,
- .max_frequency = KX022_ACCEL_MAX_FREQ,
- .config = {
- /* EC use accel for angle detection */
- [SENSOR_CONFIG_EC_S0] = {
- .odr = 10000 | ROUND_UP_FLAG,
- .ec_rate = 100 * MSEC,
+ [LID_ACCEL] = {
+ .name = "Lid Accel",
+ .active_mask = SENSOR_ACTIVE_S0,
+ .chip = MOTIONSENSE_CHIP_KX022,
+ .type = MOTIONSENSE_TYPE_ACCEL,
+ .location = MOTIONSENSE_LOC_LID,
+ .drv = &kionix_accel_drv,
+ .mutex = &g_kx022_mutex[1],
+ .drv_data = &g_kx022_data[1],
+ .addr = 3, /* SPI, device ID 1 */
+ .rot_standard_ref = &lid_standard_ref,
+ .default_range = 2, /* g, enough for laptop. */
+ .min_frequency = KX022_ACCEL_MIN_FREQ,
+ .max_frequency = KX022_ACCEL_MAX_FREQ,
+ .config = {
+ /* EC use accel for angle detection */
+ [SENSOR_CONFIG_EC_S0] = {
+ .odr = 10000 | ROUND_UP_FLAG,
+ .ec_rate = 100 * MSEC,
+ },
},
- },
},
};
+
const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
void lid_angle_peripheral_enable(int enable)
diff --git a/board/elm/board.h b/board/elm/board.h
index 8d1283244c..0de9730454 100644
--- a/board/elm/board.h
+++ b/board/elm/board.h
@@ -19,8 +19,8 @@
#define CONFIG_CMD_ACCELS
#define CONFIG_CMD_ACCEL_INFO
#define CONFIG_LID_ANGLE
-#define CONFIG_LID_ANGLE_SENSOR_BASE 0
-#define CONFIG_LID_ANGLE_SENSOR_LID 1
+#define CONFIG_LID_ANGLE_SENSOR_BASE BASE_ACCEL
+#define CONFIG_LID_ANGLE_SENSOR_LID LID_ACCEL
#define CONFIG_LID_ANGLE_UPDATE
#define CONFIG_ADC
@@ -215,6 +215,12 @@ enum temp_sensor_id {
TEMP_SENSOR_COUNT
};
+enum sensor_id {
+ BASE_ACCEL,
+ LID_ACCEL,
+ SENSOR_COUNT,
+};
+
/* TODO: determine the following board specific type-C power constants */
/*
* delay to turn on the power supply max is ~16ms.