no-OS
ada4250.h
Go to the documentation of this file.
1 /***************************************************************************/
34 #ifndef ADA4250_H_
35 #define ADA4250_H_
36 
37 /******************************************************************************/
38 /***************************** Include Files **********************************/
39 /******************************************************************************/
40 #include <stdint.h>
41 #include <math.h>
42 #include <stdbool.h>
43 #include "no_os_spi.h"
44 #include "no_os_gpio.h"
45 #include "no_os_util.h"
46 
47 /******************************************************************************/
48 /********************** Macros and Constants Definitions **********************/
49 /******************************************************************************/
50 
51 /* ADA4250 Register Map */
52 #define ADA4250_REG_GAIN_MUX 0x00
53 #define ADA4250_REG_REFBUF_EN 0x01
54 #define ADA4250_REG_RESET 0x02
55 #define ADA4250_REG_SNSR_CAL_VAL 0x04
56 #define ADA4250_REG_SNSR_CAL_CNFG 0x05
57 #define ADA4250_REG_DIE_REV 0x18
58 #define ADA4250_REG_CHIP_ID1 0x19
59 #define ADA4250_REG_CHIP_ID2 0x1a
60 
61 /* ADA4250_REG_GAIN_MUX Map */
62 #define ADA4250_GAIN_MUX_MSK NO_OS_GENMASK(2, 0)
63 #define ADA4250_GAIN_MUX(x) no_os_field_prep(ADA4250_GAIN_MUX_MSK, x)
64 
65 /* ADA4250_REG_REFBUF Map */
66 #define ADA4250_REFBUF_MSK NO_OS_BIT(0)
67 #define ADA4250_REFBUF(x) no_os_field_prep(ADA4250_REFBUF_MSK, x)
68 
69 /* ADA4250_REG_REFBUFF_EN Bit Definition */
70 #define ADA4250_BUF_ENABLE 0x01
71 #define ADA4250_BUF_DISABLE 0x00
72 
73 /* ADA4250_REG_RESET Map */
74 #define ADA4250_RESET_MSK NO_OS_BIT(0)
75 #define ADA4250_RESET(x) no_os_field_prep(ADA4250_RESET_MSK, x)
76 
77 /* ADA4250_REG_RESET Bit Definition */
78 #define ADA4250_RESET_ENABLE 0x01
79 #define ADA4250_RESET_DISABLE 0x00
80 
81 /* ADA4250_REG_SNSR_CAL_VAL Map */
82 #define ADA4250_SNSR_CAL_VAL_MSK NO_OS_GENMASK(7, 0)
83 #define ADA4250_SNSR_CAL_VAL(x) no_os_field_prep(ADA4250_SNSR_CAL_VAL_MSK, x)
84 
85 /* ADA4250_REG_SNSR_CAL_CNFG Bit Definition */
86 #define ADA4250_BIAS_SET_MSK NO_OS_GENMASK(3, 2)
87 #define ADA4250_BIAS_SET(x) no_os_field_prep(ADA4250_BIAS_SET_MSK, x)
88 #define ADA4250_RANGE_SET_MSK NO_OS_GENMASK(1, 0)
89 #define ADA4250_RANGE_SET(x) no_os_field_prep(ADA4250_RANGE_SET_MSK, x)
90 
91 /* Specifications */
92 #define ADA4250_SPI_WRITE_CMD 0x0
93 #define ADA4250_BUFF_SIZE_BYTES 2
94 #define ADA4250_SPI_READ_CMD NO_OS_BIT(7)
95 #define ADA4250_DIE_REV 0x0
96 #define ADA4250_CHIP_ID 0x4250
97 
98 /* ADA4250 Extra Definitions */
99 #define ADA4250_SPI_DUMMY_DATA 0x00
100 
101 /******************************************************************************/
102 /*************************** Types Declarations *******************************/
103 /******************************************************************************/
104 
112 };
113 
122 };
123 
133 };
134 
148 };
149 
157 };
158 
167 };
168 
174  /* Device ID */
176  /* SPI Initialization parameters */
178  /* GPIO Initialization parameters */
186  /* AVDD value in milliVolts */
187  int32_t avdd_v;
188  /* Reference Buffer Enable */
189  bool refbuf_en;
190  /* Gain Value */
192  /* Bias Set */
194  /* Bandwidth Value */
196  /* Offset Calibration Value */
197  int32_t offset_nv;
198 };
199 
204 struct ada4250_dev {
205  /* Device ID */
207  /* SPI Initialization parameters */
209  /* GPIO Descriptors */
217  /* AVDD value in milliVolts */
218  int32_t avdd_v;
219  /* Reference Buffer Enable */
220  bool refbuf_en;
221  /* Gain Value */
223  /* Offset Range */
225  /* Bias Set */
227  /* Bandwidth Value */
229  /* Power Mode */
231  /* Offset Calibration Value in nV*/
232  int32_t offset_nv;
233 };
234 
235 /******************************************************************************/
236 /************************ Functions Declarations ******************************/
237 /******************************************************************************/
238 
240 int32_t ada4250_write(struct ada4250_dev *dev, uint8_t reg_addr,
241  uint8_t data);
242 
244 int32_t ada4250_read(struct ada4250_dev *dev, uint8_t reg_addr,
245  uint8_t *data);
246 
247 /* ADA4250 Register Update */
248 int32_t ada4250_update(struct ada4250_dev *dev, uint8_t reg_addr,
249  uint8_t mask, uint8_t data);
250 
251 /* ADA4250 Device Descriptor Update */
252 int32_t ada4250_update_desc(struct ada4250_dev *dev);
253 
254 /* Software Reset */
255 int32_t ada4250_soft_reset(struct ada4250_dev *dev);
256 
257 /* Set Reference Buffer */
258 int32_t ada4250_en_refbuf(struct ada4250_dev *dev, bool refbuf);
259 
260 /* Set Current Bias */
261 int32_t ada4250_set_bias(struct ada4250_dev *dev, enum ada4250_bias bias);
262 
263 /* Set gain */
264 int32_t ada4250_set_gain(struct ada4250_dev *dev, enum ada4250_gain gain);
265 
266 /* Set offset value */
267 int32_t ada4250_set_offset(struct ada4250_dev *dev, int64_t offset);
268 
269 /* Set bandwidth mode */
270 int32_t ada4250_set_bandwidth(struct ada4250_dev *dev,
271  enum ada4250_bandwidth bw);
272 
273 /* Set sleep/shutdown mode */
274 int32_t ada4250_set_slp_shtdwn_mode(struct ada4250_dev *dev,
275  enum ada4250_power_mode pwrmode);
276 
277 /* Set normal mode */
278 int32_t ada4250_set_normal_mode(struct ada4250_dev *dev, bool reconfig);
279 
280 /* ADA4250 Initialization */
281 int32_t ada4250_init(struct ada4250_dev **device,
283 
285 int32_t ada4250_remove(struct ada4250_dev *dev);
286 
287 #endif /* ADA4250_H_ */
ada4250_init_param::gpio_g2_param
struct no_os_gpio_init_param * gpio_g2_param
Definition: ada4250.h:179
ADA4250_RESET_MSK
#define ADA4250_RESET_MSK
Definition: ada4250.h:74
ada4250_set_bias
int32_t ada4250_set_bias(struct ada4250_dev *dev, enum ada4250_bias bias)
Set current bias for ADA4250.
Definition: ada4250.c:227
ADA4250_GAIN_128
@ ADA4250_GAIN_128
Definition: ada4250.h:147
timeout
uint32_t timeout
Definition: ad413x.c:49
no_os_alloc.h
no_os_gpio_init_param
Structure holding the parameters for GPIO initialization.
Definition: no_os_gpio.h:79
ADA4250
@ ADA4250
Definition: ada4250.h:111
ada4250_read
int32_t ada4250_read(struct ada4250_dev *dev, uint8_t reg_addr, uint8_t *data)
Reads data from ada4250 over SPI.
Definition: ada4250.c:76
ada4250_remove
int32_t ada4250_remove(struct ada4250_dev *dev)
Free resoulces allocated for ADA4250.
Definition: ada4250.c:657
ada4250_dev::gpio_slp
struct no_os_gpio_desc * gpio_slp
Definition: ada4250.h:215
ADA4250_BIAS_BANDGAP_REF
@ ADA4250_BIAS_BANDGAP_REF
Definition: ada4250.h:120
no_os_spi_write_and_read
int32_t no_os_spi_write_and_read(struct no_os_spi_desc *desc, uint8_t *data, uint16_t bytes_number)
Write and read data to/from SPI.
Definition: no_os_spi.c:159
ada4250_init_param
ADA4250 Initialization Parameters structure.
Definition: ada4250.h:173
ADA4250_RANGE2
@ ADA4250_RANGE2
Definition: ada4250.h:130
no_os_spi.h
Header file of SPI Interface.
ADA4250_POWER_SHUTDOWN
@ ADA4250_POWER_SHUTDOWN
Definition: ada4250.h:166
ADA4250_REFBUF
#define ADA4250_REFBUF(x)
Definition: ada4250.h:67
ADA4250_GAIN_MUX_MSK
#define ADA4250_GAIN_MUX_MSK
Definition: ada4250.h:62
ada4250_dev::power_mode
enum ada4250_power_mode power_mode
Definition: ada4250.h:230
ADA4250_BIAS_AVDD
@ ADA4250_BIAS_AVDD
Definition: ada4250.h:121
ada4250_dev::spi_desc
struct no_os_spi_desc * spi_desc
Definition: ada4250.h:208
ada4250_set_offset
int32_t ada4250_set_offset(struct ada4250_dev *dev, int64_t offset)
Set offset value for ADA4250.
Definition: ada4250.c:304
ada4250_set_slp_shtdwn_mode
int32_t ada4250_set_slp_shtdwn_mode(struct ada4250_dev *dev, enum ada4250_power_mode pwrmode)
Set the ADA4250 into sleep or shutdown mode.
Definition: ada4250.c:435
ada4250_update
int32_t ada4250_update(struct ada4250_dev *dev, uint8_t reg_addr, uint8_t mask, uint8_t data)
Update ADA4250 register.
Definition: ada4250.c:105
ADA4250_BUFF_SIZE_BYTES
#define ADA4250_BUFF_SIZE_BYTES
Definition: ada4250.h:93
ada4250_dev::refbuf_en
bool refbuf_en
Definition: ada4250.h:220
ADA4250_RESET
#define ADA4250_RESET(x)
Definition: ada4250.h:75
ada4250_id
ada4250_id
Current bias settings.
Definition: ada4250.h:109
ada4250_dev::gpio_g2
struct no_os_gpio_desc * gpio_g2
Definition: ada4250.h:210
no_os_delay.h
Header file of Delay functions.
ada4250_dev::bias
enum ada4250_bias bias
Definition: ada4250.h:226
ada4250_init_param::offset_nv
int32_t offset_nv
Definition: ada4250.h:197
ada4250_init
int32_t ada4250_init(struct ada4250_dev **device, struct ada4250_init_param *init_param)
Initialize the ADA4250 device.
Definition: ada4250.c:515
ada4250_set_offset
int32_t ada4250_set_offset(struct ada4250_dev *dev, int64_t offset)
Set offset value for ADA4250.
Definition: ada4250.c:304
ADA4250_REG_RESET
#define ADA4250_REG_RESET
Definition: ada4250.h:54
ada4250_init_param::spi_init
struct no_os_spi_init_param * spi_init
Definition: ada4250.h:177
ADA4250_POWER_SLEEP
@ ADA4250_POWER_SLEEP
Definition: ada4250.h:165
ada4250_write
int32_t ada4250_write(struct ada4250_dev *dev, uint8_t reg_addr, uint8_t data)
Writes data to ada4250 over SPI.
Definition: ada4250.c:54
device
Definition: ad9361_util.h:69
NO_OS_GPIO_HIGH
@ NO_OS_GPIO_HIGH
Definition: no_os_gpio.h:117
ADA4250_SPI_DUMMY_DATA
#define ADA4250_SPI_DUMMY_DATA
Definition: ada4250.h:99
ada4250_power_mode
ada4250_power_mode
Power Modes.
Definition: ada4250.h:163
ada4250_set_bandwidth
int32_t ada4250_set_bandwidth(struct ada4250_dev *dev, enum ada4250_bandwidth bw)
Set the bandwidth value for ADA4250.
Definition: ada4250.c:362
no_os_calloc
void * no_os_calloc(size_t nitems, size_t size)
Allocate memory and return a pointer to it, set memory to 0.
Definition: chibios_alloc.c:54
ADA4250_RANGE4
@ ADA4250_RANGE4
Definition: ada4250.h:132
ada4250_update
int32_t ada4250_update(struct ada4250_dev *dev, uint8_t reg_addr, uint8_t mask, uint8_t data)
Update ADA4250 register.
Definition: ada4250.c:105
ada4250_dev::gpio_g1
struct no_os_gpio_desc * gpio_g1
Definition: ada4250.h:211
ada4250_soft_reset
int32_t ada4250_soft_reset(struct ada4250_dev *dev)
Software reset.
Definition: ada4250.c:160
ADA4250_REG_SNSR_CAL_VAL
#define ADA4250_REG_SNSR_CAL_VAL
Definition: ada4250.h:55
ADA4250_GAIN_MUX
#define ADA4250_GAIN_MUX(x)
Definition: ada4250.h:63
NO_OS_GPIO_LOW
@ NO_OS_GPIO_LOW
Definition: no_os_gpio.h:115
ada4250_write
int32_t ada4250_write(struct ada4250_dev *dev, uint8_t reg_addr, uint8_t data)
Writes data to ada4250 over SPI.
Definition: ada4250.c:54
ADA4250_BIAS_SET
#define ADA4250_BIAS_SET(x)
Definition: ada4250.h:87
no_os_mdelay
void no_os_mdelay(uint32_t msecs)
Wait until msecs milliseconds passed.
Definition: aducm3029_delay.c:126
ada4250_bandwidth
ada4250_bandwidth
Bandwidth modes.
Definition: ada4250.h:154
ADA4250_BIAS_SET_MSK
#define ADA4250_BIAS_SET_MSK
Definition: ada4250.h:86
no_os_error.h
Error codes definition.
ada4250_dev::avdd_v
int32_t avdd_v
Definition: ada4250.h:218
ADA4250_BANDWIDTH_LOW
@ ADA4250_BANDWIDTH_LOW
Definition: ada4250.h:155
ada4250_init
int32_t ada4250_init(struct ada4250_dev **device, struct ada4250_init_param *init_param)
Initialize the ADA4250 device.
Definition: ada4250.c:515
ada4250_update_desc
int32_t ada4250_update_desc(struct ada4250_dev *dev)
Update ADA4250 device descriptor.
Definition: ada4250.c:131
ADA4250_GAIN_32
@ ADA4250_GAIN_32
Definition: ada4250.h:145
ADA4250_GAIN_4
@ ADA4250_GAIN_4
Definition: ada4250.h:142
ada4250_init_param::bias
enum ada4250_bias bias
Definition: ada4250.h:193
ADA4250_REG_GAIN_MUX
#define ADA4250_REG_GAIN_MUX
Definition: ada4250.h:52
ada4250_init_param::gpio_g0_param
struct no_os_gpio_init_param * gpio_g0_param
Definition: ada4250.h:181
ada4250_dev::device_id
enum ada4250_id device_id
Definition: ada4250.h:206
ADA4250_SPI_READ_CMD
#define ADA4250_SPI_READ_CMD
Definition: ada4250.h:94
ada4250_set_bias
int32_t ada4250_set_bias(struct ada4250_dev *dev, enum ada4250_bias bias)
Set current bias for ADA4250.
Definition: ada4250.c:227
ada4250_init_param::refbuf_en
bool refbuf_en
Definition: ada4250.h:189
ada4250_init_param::gpio_bufen_param
struct no_os_gpio_init_param * gpio_bufen_param
Definition: ada4250.h:183
ada4250_set_gain
int32_t ada4250_set_gain(struct ada4250_dev *dev, enum ada4250_gain gain)
Set gain for ADA4250.
Definition: ada4250.c:272
no_os_gpio_remove
int32_t no_os_gpio_remove(struct no_os_gpio_desc *desc)
Free the resources allocated by no_os_gpio_get().
Definition: no_os_gpio.c:104
no_os_spi_desc
Structure holding SPI descriptor.
Definition: no_os_spi.h:192
ADA4250_BANDWIDTH_HIGH
@ ADA4250_BANDWIDTH_HIGH
Definition: ada4250.h:156
ADA4250_SPI_WRITE_CMD
#define ADA4250_SPI_WRITE_CMD
Definition: ada4250.h:92
ADA4250_RANGE3
@ ADA4250_RANGE3
Definition: ada4250.h:131
ada4250_set_bandwidth
int32_t ada4250_set_bandwidth(struct ada4250_dev *dev, enum ada4250_bandwidth bw)
Set the bandwidth value for ADA4250.
Definition: ada4250.c:362
ada4250_offset_range
ada4250_offset_range
Sensor offset trim range.
Definition: ada4250.h:128
ada4250_init_param::gpio_slp
struct no_os_gpio_init_param * gpio_slp
Definition: ada4250.h:184
ada4250_dev::gain
enum ada4250_gain gain
Definition: ada4250.h:222
ada4250_init_param::gpio_bw_param
struct no_os_gpio_init_param * gpio_bw_param
Definition: ada4250.h:182
no_os_gpio_desc
Structure holding the GPIO descriptor.
Definition: no_os_gpio.h:96
ADA4250_GAIN_16
@ ADA4250_GAIN_16
Definition: ada4250.h:144
ada4250_init_param::gain
enum ada4250_gain gain
Definition: ada4250.h:191
no_os_gpio_get
int32_t no_os_gpio_get(struct no_os_gpio_desc **desc, const struct no_os_gpio_init_param *param)
Obtain the GPIO decriptor.
Definition: no_os_gpio.c:49
ada4250_read
int32_t ada4250_read(struct ada4250_dev *dev, uint8_t reg_addr, uint8_t *data)
Reads data from ada4250 over SPI.
Definition: ada4250.c:76
ADA4250_GAIN_8
@ ADA4250_GAIN_8
Definition: ada4250.h:143
ada4250_dev
ADA4250 Device Descriptor.
Definition: ada4250.h:204
ada4250.h
Header file for ada4250 Driver.
ada4250_set_normal_mode
int32_t ada4250_set_normal_mode(struct ada4250_dev *dev, bool reconfig)
Sets the ADA4250 into normal mode and reconfigures it according to the user input.
Definition: ada4250.c:468
no_os_free
void no_os_free(void *ptr)
Deallocate memory previously allocated by a call to no_os_calloc or no_os_malloc.
Definition: chibios_alloc.c:69
ada4250_dev::gpio_shtdwn
struct no_os_gpio_desc * gpio_shtdwn
Definition: ada4250.h:216
ADA4250_RESET_ENABLE
#define ADA4250_RESET_ENABLE
Definition: ada4250.h:78
ADA4250_RANGE_SET
#define ADA4250_RANGE_SET(x)
Definition: ada4250.h:89
ADA4250_GAIN_2
@ ADA4250_GAIN_2
Definition: ada4250.h:141
ada4250_bias
ada4250_bias
Current bias settings.
Definition: ada4250.h:118
ada4250_dev::offset_range
enum ada4250_offset_range offset_range
Definition: ada4250.h:224
ADA4230
@ ADA4230
Definition: ada4250.h:110
no_os_udelay
void no_os_udelay(uint32_t usecs)
Wait until usecs microseconds passed.
Definition: aducm3029_delay.c:114
ada4250_init_param::bandwidth
enum ada4250_bandwidth bandwidth
Definition: ada4250.h:195
ada4250_set_gain
int32_t ada4250_set_gain(struct ada4250_dev *dev, enum ada4250_gain gain)
Set gain for ADA4250.
Definition: ada4250.c:272
no_os_gpio_set_value
int32_t no_os_gpio_set_value(struct no_os_gpio_desc *desc, uint8_t value)
Set the value of the specified GPIO.
Definition: no_os_gpio.c:197
ADA4250_REG_REFBUF_EN
#define ADA4250_REG_REFBUF_EN
Definition: ada4250.h:53
init_param
struct ad7616_init_param init_param
Definition: ad7616_sdz.c:113
ada4250_init_param::gpio_shtdwn
struct no_os_gpio_init_param * gpio_shtdwn
Definition: ada4250.h:185
ada4250_init_param::avdd_v
int32_t avdd_v
Definition: ada4250.h:187
ada4250_set_normal_mode
int32_t ada4250_set_normal_mode(struct ada4250_dev *dev, bool reconfig)
Sets the ADA4250 into normal mode and reconfigures it according to the user input.
Definition: ada4250.c:468
ada4250_en_refbuf
int32_t ada4250_en_refbuf(struct ada4250_dev *dev, bool refbuf)
Enable/Disable Reference Buffer.
Definition: ada4250.c:198
ADA4250_CHIP_ID
#define ADA4250_CHIP_ID
Definition: ada4250.h:96
ADA4250_BIAS_DISABLE
@ ADA4250_BIAS_DISABLE
Definition: ada4250.h:119
no_os_spi_remove
int32_t no_os_spi_remove(struct no_os_spi_desc *desc)
Free the resources allocated by no_os_spi_init().
Definition: no_os_spi.c:116
ADA4250_RANGE1
@ ADA4250_RANGE1
Definition: ada4250.h:129
ada4250_soft_reset
int32_t ada4250_soft_reset(struct ada4250_dev *dev)
Software reset.
Definition: ada4250.c:160
ADA4250_REG_SNSR_CAL_CNFG
#define ADA4250_REG_SNSR_CAL_CNFG
Definition: ada4250.h:56
no_os_gpio.h
Header file of GPIO Interface.
ada4250_init_param::device_id
enum ada4250_id device_id
Definition: ada4250.h:175
ada4250_init_param::gpio_g1_param
struct no_os_gpio_init_param * gpio_g1_param
Definition: ada4250.h:180
no_os_spi_init
int32_t no_os_spi_init(struct no_os_spi_desc **desc, const struct no_os_spi_init_param *param)
Initialize the SPI communication peripheral.
Definition: no_os_spi.c:52
ada4250_dev::gpio_bw
struct no_os_gpio_desc * gpio_bw
Definition: ada4250.h:213
ada4250_remove
int32_t ada4250_remove(struct ada4250_dev *dev)
Free resoulces allocated for ADA4250.
Definition: ada4250.c:657
no_os_util.h
Header file of utility functions.
ada4250_set_slp_shtdwn_mode
int32_t ada4250_set_slp_shtdwn_mode(struct ada4250_dev *dev, enum ada4250_power_mode pwrmode)
Set the ADA4250 into sleep or shutdown mode.
Definition: ada4250.c:435
ADA4250_GAIN_64
@ ADA4250_GAIN_64
Definition: ada4250.h:146
ADA4250_REG_CHIP_ID1
#define ADA4250_REG_CHIP_ID1
Definition: ada4250.h:58
ada4250_dev::gpio_bufen
struct no_os_gpio_desc * gpio_bufen
Definition: ada4250.h:214
no_os_gpio_direction_output
int32_t no_os_gpio_direction_output(struct no_os_gpio_desc *desc, uint8_t value)
Enable the output direction of the specified GPIO.
Definition: no_os_gpio.c:147
ada4250_dev::gpio_g0
struct no_os_gpio_desc * gpio_g0
Definition: ada4250.h:212
ada4250_dev::bandwidth
enum ada4250_bandwidth bandwidth
Definition: ada4250.h:228
ada4250_gain
ada4250_gain
Gain value.
Definition: ada4250.h:139
ADA4250_GAIN_1
@ ADA4250_GAIN_1
Definition: ada4250.h:140
ada4250_en_refbuf
int32_t ada4250_en_refbuf(struct ada4250_dev *dev, bool refbuf)
Enable/Disable Reference Buffer.
Definition: ada4250.c:198
ADA4250_REG_CHIP_ID2
#define ADA4250_REG_CHIP_ID2
Definition: ada4250.h:59
ada4250_update_desc
int32_t ada4250_update_desc(struct ada4250_dev *dev)
Update ADA4250 device descriptor.
Definition: ada4250.c:131
ada4250_dev::offset_nv
int32_t offset_nv
Definition: ada4250.h:232
ADA4250_POWER_NORMAL
@ ADA4250_POWER_NORMAL
Definition: ada4250.h:164
chip_id
chip_id
Definition: ad9172.h:51
ADA4250_RANGE_SET_MSK
#define ADA4250_RANGE_SET_MSK
Definition: ada4250.h:88
no_os_spi_init_param
Structure holding the parameters for SPI initialization.
Definition: no_os_spi.h:140
ADA4250_REFBUF_MSK
#define ADA4250_REFBUF_MSK
Definition: ada4250.h:66
no_os_gpio_get_optional
int32_t no_os_gpio_get_optional(struct no_os_gpio_desc **desc, const struct no_os_gpio_init_param *param)
Get the value of an optional GPIO.
Definition: no_os_gpio.c:75