SensorI2C.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015-2017, Texas Instruments Incorporated
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions
7  * are met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  * notice, this list of conditions and the following disclaimer in the
14  * documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the name of Texas Instruments Incorporated nor the names of
17  * its contributors may be used to endorse or promote products derived
18  * from this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 
46 #ifndef SENSOR_I2C_H
47 #define SENSOR_I2C_H
48 
49 #ifdef __cplusplus
50 extern "C"
51 {
52 #endif
53 
54 /*********************************************************************
55  * INCLUDES
56  */
57 #include "stdbool.h"
58 
59 /*********************************************************************
60  * CONSTANTS
61  */
63 #define SENSOR_I2C_0 0
64 
65 #define SENSOR_I2C_1 1
66 
67 #define SENSOR_I2C_NONE -1
68 
69 /*********************************************************************
70  * TYPEDEFS
71  */
72 
73 /*********************************************************************
74  * FUNCTIONS
75  */
76 
82 bool SensorI2C_open(void);
83 
92 bool SensorI2C_select(uint8_t i2cInterface, uint8_t i2cAddr);
93 
105 bool SensorI2C_readReg(uint8_t regAddr, uint8_t *pData, uint8_t nBytes);
106 
118 bool SensorI2C_writeReg(uint8_t regAddr, uint8_t *pData, uint8_t nBytes);
119 
130 bool SensorI2C_read(uint8_t *pData, uint8_t nBytes);
131 
142 bool SensorI2C_write(uint8_t *pData, uint8_t nBytes);
143 
147 void SensorI2C_deselect(void);
148 
154 void SensorI2C_close(void);
155 
157 #ifdef __cplusplus
158 }
159 #endif
160 
161 #endif /* SENSOR_I2C_H */
bool SensorI2C_writeReg(uint8_t regAddr, uint8_t *pData, uint8_t nBytes)
Write to an I2C device starting at regAddr.
void SensorI2C_close(void)
Close the I2C interface and release the data lines.
void SensorI2C_deselect(void)
Allow other tasks to access the I2C driver.
bool SensorI2C_write(uint8_t *pData, uint8_t nBytes)
Burst write to an I2C device.
bool SensorI2C_read(uint8_t *pData, uint8_t nBytes)
Burst read from an I2C device.
bool SensorI2C_open(void)
Initialize the RTOS I2C driver (must be called only once)
bool SensorI2C_select(uint8_t i2cInterface, uint8_t i2cAddr)
Select an I2C interface and I2C device.
bool SensorI2C_readReg(uint8_t regAddr, uint8_t *pData, uint8_t nBytes)
Read from an I2C device starting at regAddr.
Copyright 2018, Texas Instruments Incorporated