ISSDK  1.8
IoT Sensing Software Development Kit
register_io_i2c.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015 - 2016, Freescale Semiconductor, Inc.
3  * Copyright 2016-2017 NXP
4  * All rights reserved.
5  *
6  * SPDX-License-Identifier: BSD-3-Clause
7  */
8 
9 /**
10  * @file register_io_i2c.h
11  * @brief The register_io_i2c.h file declares low-level interface functions for reading
12  * and writing sensor registers.
13  */
14 
15 #ifndef __REGISTER_IO_I2C_H__
16 #define __REGISTER_IO_I2C_H__
17 
18 #include "sensor_drv.h"
19 #include "Driver_I2C.h"
20 
21 #if defined(I2C0)
22 /*! @brief The I2C0 device index. */
23 #define I2C0_INDEX 0
24 
25 /*! @brief Defines the I2C signal event handler.
26  * @details The Signal Event Handler function required by register_io_i2c.c.
27  * @param[in] event The I2C event that occured.
28  * @Constraints None
29  * @Reentrant Yes
30  * @return void
31  */
32 void I2C0_SignalEvent_t(uint32_t event);
33 #endif
34 
35 #if defined(I2C1)
36 /*! @brief The I2C1 device index. */
37 #define I2C1_INDEX 1
38 
39 /*! @brief Defines the I2C signal event handler.
40  * @details The Signal Event Handler function required by register_io_i2c.c.
41  * @param[in] event The I2C event that occured.
42  * @Constraints None
43  * @Reentrant Yes
44  * @return void
45  */
46 void I2C1_SignalEvent_t(uint32_t event);
47 #endif
48 
49 #if defined(I2C2)
50 /*! @brief The I2C2 device index. */
51 #define I2C2_INDEX 2
52 
53 /*! @brief Defines the I2C signal event handler.
54  * @details The Signal Event Handler function required by register_io_i2c.c.
55  * @param[in] event The I2C event that occured.
56  * @Constraints None
57  * @Reentrant Yes
58  * @return void
59  */
60 void I2C2_SignalEvent_t(uint32_t event);
61 #endif
62 
63 #if defined(I2C3)
64 /*! @brief The I2C3 device index. */
65 #define I2C3_INDEX 3
66 
67 /*! @brief Defines the I2C signal event handler.
68  * @details The Signal Event Handler function required by register_io_i2c.c.
69  * @param[in] event The I2C event that occured.
70  * @Constraints None
71  * @Reentrant Yes
72  * @return void
73  */
74 void I2C3_SignalEvent_t(uint32_t event);
75 #endif
76 
77 #if defined(I2C4)
78 /*! @brief The I2C4 device index. */
79 #define I2C4_INDEX 4
80 
81 /*! @brief Defines the I2C signal event handler.
82  * @details The Signal Event Handler function required by register_io_i2c.c.
83  * @param[in] event The I2C event that occured.
84  * @Constraints None
85  * @Reentrant Yes
86  * @return void
87  */
88 void I2C4_SignalEvent_t(uint32_t event);
89 #endif
90 
91 #if defined(I2C5)
92 /*! @brief The I2C5 device index. */
93 #define I2C5_INDEX 5
94 
95 /*! @brief Defines the I2C signal event handler.
96  * @details The Signal Event Handler function required by register_io_i2c.c.
97  * @param[in] event The I2C event that occured.
98  * @Constraints None
99  * @Reentrant Yes
100  * @return void
101  */
102 void I2C5_SignalEvent_t(uint32_t event);
103 #endif
104 
105 #if defined(I2C6)
106 /*! @brief The I2C6 device index. */
107 #define I2C6_INDEX 6
108 
109 /*! @brief Defines the I2C signal event handler.
110  * @details The Signal Event Handler function required by register_io_i2c.c.
111  * @param[in] event The I2C event that occured.
112  * @Constraints None
113  * @Reentrant Yes
114  * @return void
115  */
116 void I2C6_SignalEvent_t(uint32_t event);
117 #endif
118 
119 #if defined(I2C7)
120 /*! @brief The I2C7 device index. */
121 #define I2C7_INDEX 7
122 
123 /*! @brief Defines the I2C signal event handler.
124  * @details The Signal Event Handler function required by register_io_i2c.c.
125  * @param[in] event The I2C event that occured.
126  * @Constraints None
127  * @Reentrant Yes
128  * @return void
129  */
130 void I2C7_SignalEvent_t(uint32_t event);
131 #endif
132 
133 #ifdef MIMXRT500_AGM01
134 #if defined(I2C11)
135 /*! @brief The I2C11 device index. */
136 #define I2C11_INDEX 11
137 
138 /*! @brief Defines the I2C signal event handler.
139  * @details The Signal Event Handler function required by register_io_i2c.c.
140  * @param[in] event The I2C event that occured.
141  * @Constraints None
142  * @Reentrant Yes
143  * @return void
144  */
145 void I2C11_SignalEvent_t(uint32_t event);
146 #endif
147 #endif
148 
149 /*!
150  * @brief The interface function to write a sensor register.
151  *
152  * @param ARM_DRIVER_I2C *pCommDrv - The I2C driver to use.
153  * @param registerDeviceInfo_t *devInfo - The I2C device number and idle function.
154  * @param uint16_t slaveAddress - the sensor's I2C slave address.
155  * @param uint8_t offset - The register/offset to write to.
156  * @param uint8_t *pBuffer - The buffer containing bytes to write.
157  * @param uint8_t bytesToWrite - A number of bytes to write.
158  *
159  * @return ARM_DRIVER_OK if success or ARM_DRIVER_ERROR if error.
160  */
161 int32_t Register_I2C_BlockWrite(ARM_DRIVER_I2C *pCommDrv,
162  registerDeviceInfo_t *devInfo,
163  uint16_t slaveAddress,
164  uint8_t offset,
165  const uint8_t *pBuffer,
166  uint8_t bytesToWrite);
167 
168 /*!
169  * @brief The interface function to write a sensor register.
170  *
171  * @param ARM_DRIVER_I2C *pCommDrv - The I2C driver to use.
172  * @param registerDeviceInfo_t *devInfo - The I2C device number and idle function.
173  * @param uint16_t slaveAddress - the sensor's I2C slave address.
174  * @param uint8_t offset - The register/offset to write to
175  * @param uint8_t value - The value to write to the register
176  * @param uint8_t mask - A mask value to use when writing.
177  * A non-zero mask indicates that a read-modify-write operation should be used.
178  * where only the bits set in the mask will be updated according to the value param.
179  * @param bool repeatedStart - Indicates whether to send STOP or REPEATED_START bit after the write
180  *
181  * @return ARM_DRIVER_OK if success or ARM_DRIVER_ERROR if error.
182  */
183 int32_t Register_I2C_Write(ARM_DRIVER_I2C *pCommDrv,
184  registerDeviceInfo_t *devInfo,
185  uint16_t slaveAddress,
186  uint8_t offset,
187  uint8_t value,
188  uint8_t mask,
189  bool repeatedStart);
190 
191 /*!
192  * @brief The interface function to read a sensor register.
193  *
194  * @param ARM_DRIVER_I2C *pCommDrv - The I2C driver to use.
195  * @param registerDeviceInfo_t *devInfo - The I2C device number and idle function.
196  * @param uint16_t slaveAddress - the sensor's I2C slave address.
197  * @param uint8_t offset - The register/offset to read from
198  * @param uint8_t length - The number of bytes to read
199  * @param uint8_t *pOutBuffer - The pointer to the buffer to store the register value read.
200  *
201  * @return ARM_DRIVER_OK if success or ARM_DRIVER_ERROR if error.
202  */
203 int32_t Register_I2C_Read(ARM_DRIVER_I2C *pCommDrv,
204  registerDeviceInfo_t *devInfo,
205  uint16_t slaveAddress,
206  uint8_t offset,
207  uint8_t length,
208  uint8_t *pOutBuffer);
209 
210 #endif // __REGISTER_IO_I2C_H__
This structure defines the device specific info required by register I/O.
Definition: sensor_drv.h:102
int32_t Register_I2C_Read(ARM_DRIVER_I2C *pCommDrv, registerDeviceInfo_t *devInfo, uint16_t slaveAddress, uint8_t offset, uint8_t length, uint8_t *pOutBuffer)
The interface function to read a sensor register.
The sensor_drv.h file contains sensor state and error definitions.
typedef int32_t(DATA_FORMAT_Append_t))(void *pData
The interface function to append the data on the formated stream.
int32_t Register_I2C_Write(ARM_DRIVER_I2C *pCommDrv, registerDeviceInfo_t *devInfo, uint16_t slaveAddress, uint8_t offset, uint8_t value, uint8_t mask, bool repeatedStart)
The interface function to write a sensor register.
int32_t Register_I2C_BlockWrite(ARM_DRIVER_I2C *pCommDrv, registerDeviceInfo_t *devInfo, uint16_t slaveAddress, uint8_t offset, const uint8_t *pBuffer, uint8_t bytesToWrite)
The interface function to write a sensor register.