blob: b2a4400360af1bd1e131bfe4d460057b619f61b3 [file] [log] [blame]
/*
* 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 <zephyr/drivers/i2c.h>
#include <zephyr/drivers/spi.h>
#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_ */