/* Copyright 2022 The ChromiumOS Authors * Use of this source code is governed by a BSD-style license that can be * found in the LICENSE file. */ #include #include #include "accelgyro.h" #include "cros_board_info.h" #include "cros_cbi.h" #include "driver/accelgyro_bmi323.h" #include "driver/accelgyro_lsm6dsm.h" #include "hooks.h" #include "motionsense_sensors.h" #include "nissa_common.h" LOG_MODULE_DECLARE(nissa, CONFIG_NISSA_LOG_LEVEL); static bool use_alt_sensor; void motion_interrupt(enum gpio_signal signal) { if (use_alt_sensor) lsm6dsm_interrupt(signal); else bmi3xx_interrupt(signal); } static void sensor_init(void) { /* check which base sensor is used for motion_interrupt */ use_alt_sensor = cros_cbi_ssfc_check_match( CBI_SSFC_VALUE_ID(DT_NODELABEL(base_sensor_1))); motion_sensors_check_ssfc(); } DECLARE_HOOK(HOOK_INIT, sensor_init, HOOK_PRIO_POST_I2C);