summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--zephyr/program/skyrim/winterhold/src/sensor.c37
1 files changed, 16 insertions, 21 deletions
diff --git a/zephyr/program/skyrim/winterhold/src/sensor.c b/zephyr/program/skyrim/winterhold/src/sensor.c
index e609d806b0..2cd9294a10 100644
--- a/zephyr/program/skyrim/winterhold/src/sensor.c
+++ b/zephyr/program/skyrim/winterhold/src/sensor.c
@@ -11,43 +11,38 @@
#include "hooks.h"
#include "motionsense_sensors.h"
+static int cbi_boardversion = -1;
+static int cbi_fwconfig;
+
void base_accel_interrupt(enum gpio_signal signal)
{
- int ret;
- uint32_t val;
- uint32_t fw_val;
-
- ret = cbi_get_board_version(&val);
- cros_cbi_get_fw_config(FW_BASE_SENSOR, &fw_val);
-
- if (ret == EC_SUCCESS && val < 1)
+ if (cbi_boardversion == 0)
bmi3xx_interrupt(signal);
- else if (val == 1)
+ else if (cbi_boardversion == 1)
lis2dw12_interrupt(signal);
- else if (val >= 2) {
- if (fw_val == FW_BASE_BMI323)
+ else if (cbi_boardversion >= 2) {
+ if (cbi_fwconfig == FW_BASE_BMI323)
bmi3xx_interrupt(signal);
- else if (fw_val == FW_BASE_LIS2DW12)
+ else if (cbi_fwconfig == FW_BASE_LIS2DW12)
lis2dw12_interrupt(signal);
- }
+ } else
+ lis2dw12_interrupt(signal);
}
static void motionsense_init(void)
{
int ret;
- uint32_t val;
- uint32_t fw_val;
- ret = cbi_get_board_version(&val);
- cros_cbi_get_fw_config(FW_BASE_SENSOR, &fw_val);
+ ret = cbi_get_board_version(&cbi_boardversion);
+ cros_cbi_get_fw_config(FW_BASE_SENSOR, &cbi_fwconfig);
- if (ret == EC_SUCCESS && val < 1) {
+ if (ret == EC_SUCCESS && cbi_boardversion < 1) {
MOTIONSENSE_ENABLE_ALTERNATE(alt_base_accel);
- } else if (val >= 2) {
- if (fw_val == FW_BASE_BMI323) {
+ } else if (cbi_boardversion >= 2) {
+ if (cbi_fwconfig == FW_BASE_BMI323) {
MOTIONSENSE_ENABLE_ALTERNATE(alt_base_accel);
ccprints("BASE ACCEL is BMI323");
- } else if (fw_val == FW_BASE_LIS2DW12) {
+ } else if (cbi_fwconfig == FW_BASE_LIS2DW12) {
ccprints("BASE ACCEL IS LIS2DW12");
}
}