-
Notifications
You must be signed in to change notification settings - Fork 79
Expand file tree
/
Copy pathcommon.h
More file actions
140 lines (124 loc) · 4.13 KB
/
common.h
File metadata and controls
140 lines (124 loc) · 4.13 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/**\
* Copyright (c) 2023 Bosch Sensortec GmbH. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
**/
#ifndef _COMMON_H
#define _COMMON_H
/*! CPP guard */
#ifdef __cplusplus
extern "C" {
#endif
#include <stdio.h>
#include <stdbool.h>
#include "bmi2.h"
#include "coines.h"
/******************************************************************************/
/* Structure declarations */
/******************************************************************************/
/*!
* @brief Structure to store the interface related configurations
*/
struct coines_intf_config
{
uint8_t dev_addr; /* Device address or Chip select of the interface selected */
uint8_t bus; /* Bus instance of the interface selected */
};
/******************************************************************************/
/*! Function Definitions */
/*!
* @brief Function for reading the sensor's registers through I2C bus.
*
* @param[in] reg_addr : Register address.
* @param[out] reg_data : Pointer to the data buffer to store the read data.
* @param[in] length : No of bytes to read.
* @param[in] intf_ptr : Interface pointer
*
* @return Status of execution
* @retval = BMI2_INTF_RET_SUCCESS -> Success
* @retval != BMI2_INTF_RET_SUCCESS -> Failure Info
*
*/
BMI2_INTF_RETURN_TYPE bmi2_i2c_read(uint8_t reg_addr, uint8_t *reg_data, uint32_t len, void *intf_ptr);
/*!
* @brief Function for writing the sensor's registers through I2C bus.
*
* @param[in] reg_addr : Register address.
* @param[in] reg_data : Pointer to the data buffer whose value is to be written.
* @param[in] length : No of bytes to write.
* @param[in] intf_ptr : Interface pointer
*
* @return Status of execution
* @retval = BMI2_INTF_RET_SUCCESS -> Success
* @retval != BMI2_INTF_RET_SUCCESS -> Failure Info
*
*/
BMI2_INTF_RETURN_TYPE bmi2_i2c_write(uint8_t reg_addr, const uint8_t *reg_data, uint32_t len, void *intf_ptr);
/*!
* @brief Function for reading the sensor's registers through SPI bus.
*
* @param[in] reg_addr : Register address.
* @param[out] reg_data : Pointer to the data buffer to store the read data.
* @param[in] length : No of bytes to read.
* @param[in] intf_ptr : Interface pointer
*
* @return Status of execution
* @retval = BMI2_INTF_RET_SUCCESS -> Success
* @retval != BMI2_INTF_RET_SUCCESS -> Failure Info
*
*/
BMI2_INTF_RETURN_TYPE bmi2_spi_read(uint8_t reg_addr, uint8_t *reg_data, uint32_t len, void *intf_ptr);
/*!
* @brief Function for writing the sensor's registers through SPI bus.
*
* @param[in] reg_addr : Register address.
* @param[in] reg_data : Pointer to the data buffer whose data has to be written.
* @param[in] length : No of bytes to write.
* @param[in] intf_ptr : Interface pointer
*
* @return Status of execution
* @retval = BMI2_INTF_RET_SUCCESS -> Success
* @retval != BMI2_INTF_RET_SUCCESS -> Failure Info
*
*/
BMI2_INTF_RETURN_TYPE bmi2_spi_write(uint8_t reg_addr, const uint8_t *reg_data, uint32_t len, void *intf_ptr);
/*!
* @brief This function provides the delay for required time (Microsecond) as per the input provided in some of the
* APIs.
*
* @param[in] period : The required wait time in microsecond.
* @param[in] intf_ptr : Interface pointer
*
* @return void.
*
*/
void bmi2_delay_us(uint32_t period, void *intf_ptr);
/*!
* @brief Function to select the interface between SPI and I2C.
*
* @param[in] bmi : Structure instance of bmi2_dev
* @param[in] intf : Interface selection parameter
*
* @return Status of execution
* @retval 0 -> Success
* @retval < 0 -> Failure Info
*/
int8_t bmi2_interface_init(struct bmi2_dev *bmi, uint8_t intf);
/*!
* @brief Prints the execution status of the APIs.
*
* @param[in] rslt : Error code returned by the API whose execution status has to be printed.
*
* @return void.
*/
void bmi2_error_codes_print_result(int8_t rslt);
/*!
* @brief Deinitializes coines platform
*
* @return void.
*/
void bmi2_coines_deinit(void);
#ifdef __cplusplus
}
#endif /* End of CPP guard */
#endif /* _COMMON_H */