/* * Copyright 2023 Google LLC * * SPDX-License-Identifier: Apache-2.0 */ #ifndef TEST_DRIVERS_SENSOR_ACCEL_INCLUDE_CHECKS_H_ #define TEST_DRIVERS_SENSOR_ACCEL_INCLUDE_CHECKS_H_ #include #include #include "bmi160.h" static inline bool bmi160_i2c_is_touching_reg(struct i2c_msg *msgs, int num_msgs, int reg) { __ASSERT_NO_MSG(num_msgs == 2); __ASSERT_NO_MSG(msgs[0].len == 1); uint8_t start_reg = msgs[0].buf[0]; return (start_reg <= reg) && (reg < start_reg + msgs[1].len); } static inline bool bmi160_spi_is_touching_reg(const struct spi_buf_set *tx_bufs, const struct spi_buf_set *rx_bufs, int reg) { __ASSERT_NO_MSG(tx_bufs->count == 2); const struct spi_buf *tx = &tx_bufs->buffers[0]; const struct spi_buf *tx_data = &tx_bufs->buffers[1]; uint32_t start_reg = ((uint8_t *)(tx->buf))[0] & BMI160_REG_MASK; return (start_reg <= reg) && (reg < start_reg + tx_data->len); } #endif /* TEST_DRIVERS_SENSOR_ACCEL_INCLUDE_CHECKS_H_ */