SysIo  1.9.0
Embedded Library and tools
i2c.h
1 
8 #ifndef _SYSIO_I2C_H_
9 #define _SYSIO_I2C_H_
10 #include <sysio/defs.h>
11 #ifdef __cplusplus
12  extern "C" {
13 #endif
14 /* ========================================================================== */
15 
31 /* constants ================================================================ */
35 #define I2C_BLOCK_MAX 32
36 
37 /* internal public functions ================================================ */
45 int iI2cOpen (const char * device, int i2caddr);
46 
53 int iI2cClose (int fd);
54 
61 int iI2cRead (int fd);
62 
72 int iI2cReadBlock (int fd, uint8_t * buffer, int size);
73 
83 int iI2cReadReg8 (int fd, uint8_t reg);
84 
94 int iI2cReadReg16 (int fd, uint8_t reg);
95 
108 int iI2cReadRegBlock (int fd, uint8_t reg, uint8_t * buffer, uint8_t size);
109 
117 int iI2cWrite (int fd, uint8_t data);
118 
127 int iI2cWriteBlock (int fd, const uint8_t * buffer, int size);
128 
137 int iI2cWriteReg8 (int fd, uint8_t reg, uint8_t data);
138 
147 int iI2cWriteReg16 (int fd, uint8_t reg, uint16_t data);
148 
160 int iI2cWriteRegBlock (int fd, uint8_t reg, const uint8_t * buffer, uint8_t size);
161 
170 #define I2CMEM_FLAG_ADDR16 0x80
171 #define I2CMEM_FLAG_READONLY 0x40
173 /* structures =============================================================== */
174 
178 struct xI2cMem;
179 
180 typedef struct xI2cMem xI2cMem;
181 
192 xI2cMem * xI2cMemOpen (const char * device, int i2caddr, uint32_t mem_size, uint16_t page_size, uint8_t flags);
193 
200 int iI2cMemAddr (const xI2cMem * mem);
201 
208 uint32_t ulI2cMemSize (const xI2cMem * mem);
209 
216 uint16_t usI2cMemPageSize (const xI2cMem * mem);
217 
224 uint8_t ucI2cMemFlags (const xI2cMem * mem);
225 
226 
233 int iI2cMemClose (xI2cMem * mem);
234 
235 
246 int iI2cMemWrite (xI2cMem * mem, uint32_t offset, const uint8_t * buffer, uint16_t size);
247 
248 
258 int iI2cMemRead (xI2cMem * mem, uint32_t offset, uint8_t * buffer, uint16_t size);
259 
268 /* ========================================================================== */
269 #ifdef __cplusplus
270  }
271 #endif
272 #endif /*_SYSIO_I2C_H_ defined */
int iI2cWriteBlock(int fd, const uint8_t *buffer, int size)
Ecriture d&#39;un bloc octets.
int iI2cOpen(const char *device, int i2caddr)
Ouverture d&#39;une connexion vers un circuit I2C.
int iI2cWrite(int fd, uint8_t data)
Ecriture d&#39;un octet.
int iI2cMemAddr(const xI2cMem *mem)
Adresse I2c de la mémoire.
int iI2cMemRead(xI2cMem *mem, uint32_t offset, uint8_t *buffer, uint16_t size)
Lecture dans une mémoire sur bus I2c.
int iI2cWriteReg16(int fd, uint8_t reg, uint16_t data)
Ecriture d&#39;un registre 16 bits.
int iI2cReadRegBlock(int fd, uint8_t reg, uint8_t *buffer, uint8_t size)
Lecture d&#39;un bloc de registres.
int iI2cClose(int fd)
Fermeture d&#39;une connexion vers un circuit I2C.
int iI2cWriteReg8(int fd, uint8_t reg, uint8_t data)
Ecriture d&#39;un registre 8 bits.
uint16_t usI2cMemPageSize(const xI2cMem *mem)
Taile de la page mémoire pour l&#39;écriture.
int iI2cReadReg16(int fd, uint8_t reg)
Lecture d&#39;un registre 16 bits.
uint8_t ucI2cMemFlags(const xI2cMem *mem)
Drapeaux de la mémoire.
int iI2cReadReg8(int fd, uint8_t reg)
Lecture d&#39;un registre 8 bits.
int iI2cReadBlock(int fd, uint8_t *buffer, int size)
Lecture d&#39;un bloc octets.
uint32_t ulI2cMemSize(const xI2cMem *mem)
Taille de la mémoire.
int iI2cMemWrite(xI2cMem *mem, uint32_t offset, const uint8_t *buffer, uint16_t size)
Ecriture dans une mémoire sur bus I2c.
xI2cMem * xI2cMemOpen(const char *device, int i2caddr, uint32_t mem_size, uint16_t page_size, uint8_t flags)
Ouverture d&#39;une mémoire sur bus I2c.
int iI2cWriteRegBlock(int fd, uint8_t reg, const uint8_t *buffer, uint8_t size)
Ecriture d&#39;un bloc de registres.
int iI2cRead(int fd)
Lecture d&#39;un octet.
int iI2cMemClose(xI2cMem *mem)
Fermeture d&#39;une mémoire sur bus I2c.