VSF Documented
i2c.h
Go to the documentation of this file.
1#ifndef __VSF_LINUX_I2C_H__
2#define __VSF_LINUX_I2C_H__
3
4#include <stdint.h>
5
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10// I2C functions
11#define I2C_FUNC_I2C (1UL << 0)
12#define I2C_FUNC_10BIT_ADDR (1UL << 1)
13#define I2C_FUNC_SMBUS_PEC (1UL << 3)
14#define I2C_FUNC_NOSTART (1UL << 4)
15
16#define I2C_FUNC_SMBUS_BLOCK_PROC_CALL (1UL << 15)
17#define I2C_FUNC_SMBUS_QUICK (1UL << 16)
18#define I2C_FUNC_SMBUS_READ_BYTE (1UL << 17)
19#define I2C_FUNC_SMBUS_WRITE_BYTE (1UL << 18)
20#define I2C_FUNC_SMBUS_READ_BYTE_DATA (1UL << 19)
21#define I2C_FUNC_SMBUS_WRITE_BYTE_DATA (1UL << 20)
22#define I2C_FUNC_SMBUS_READ_WORD_DATA (1UL << 21)
23#define I2C_FUNC_SMBUS_WRITE_WORD_DATA (1UL << 22)
24#define I2C_FUNC_SMBUS_PROC_CALL (1UL << 23)
25#define I2C_FUNC_SMBUS_READ_BLOCK_DATA (1UL << 24)
26#define I2C_FUNC_SMBUS_WRITE_BLOCK_DATA (1UL << 25)
27#define I2C_FUNC_SMBUS_READ_I2C_BLOCK (1UL << 26)
28#define I2C_FUNC_SMBUS_WRITE_I2C_BLOCK (1UL << 27)
29
30#define I2C_FUNC_SMBUS_BYTE (I2C_FUNC_SMBUS_READ_BYTE | I2C_FUNC_SMBUS_WRITE_BYTE)
31#define I2C_FUNC_SMBUS_BYTE_DATA (I2C_FUNC_SMBUS_READ_BYTE_DATA | I2C_FUNC_SMBUS_WRITE_BYTE_DATA)
32#define I2C_FUNC_SMBUS_WORD_DATA (I2C_FUNC_SMBUS_READ_WORD_DATA | I2C_FUNC_SMBUS_WRITE_WORD_DATA)
33#define I2C_FUNC_SMBUS_BLOCK_DATA (I2C_FUNC_SMBUS_READ_BLOCK_DATA | I2C_FUNC_SMBUS_WRITE_BLOCK_DATA)
34#define I2C_FUNC_SMBUS_I2C_BLOCK (I2C_FUNC_SMBUS_READ_I2C_BLOCK | I2C_FUNC_SMBUS_WRITE_I2C_BLOCK)
35
36#define I2C_FUNC_SMBUS_EMUL ( I2C_FUNC_SMBUS_QUICK | I2C_FUNC_SMBUS_BYTE\
37 | I2C_FUNC_SMBUS_BYTE_DATA | I2C_FUNC_SMBUS_WORD_DATA\
38 | I2C_FUNC_SMBUS_PROC_CALL | I2C_FUNC_SMBUS_WRITE_BLOCK_DATA\
39 | I2C_FUNC_SMBUS_I2C_BLOCK | I2C_FUNC_SMBUS_PEC)
40
41#define I2C_SMBUS_BLOCK_MAX 32
46};
47
48#define I2C_SMBUS_READ 1
49#define I2C_SMBUS_WRITE 0
50
51#define I2C_SMBUS_QUICK 0
52#define I2C_SMBUS_BYTE 1
53#define I2C_SMBUS_BYTE_DATA 2
54#define I2C_SMBUS_WORD_DATA 3
55#define I2C_SMBUS_PROC_CALL 4
56#define I2C_SMBUS_BLOCK_DATA 5
57#define I2C_SMBUS_I2C_BLOCK_BROKEN 6
58#define I2C_SMBUS_BLOCK_PROC_CALL 7
59#define I2C_SMBUS_I2C_BLOCK_DATA 8
60
61struct i2c_msg {
64#define I2C_M_RD 0x0001
65#define I2C_M_TEN 0x0010
66#define I2C_M_RECV_LEN 0x0400
67#define I2C_M_NO_RD_ACK 0x0800
68#define I2C_M_IGNORE_NAK 0x1000
69#define I2C_M_NOSTART 0x4000
72};
73
74#ifdef __cplusplus
75}
76#endif
77
78#endif
#define I2C_SMBUS_BLOCK_MAX
Definition i2c.h:41
unsigned short uint16_t
Definition stdint.h:7
unsigned char uint8_t
Definition stdint.h:5
Definition i2c.h:61
uint16_t len
Definition i2c.h:70
uint16_t flags
Definition i2c.h:63
uint8_t * buf
Definition i2c.h:71
uint16_t addr
Definition i2c.h:62
Definition i2c.h:42
uint8_t block[I2C_SMBUS_BLOCK_MAX+2]
Definition i2c.h:45
uint8_t byte
Definition i2c.h:43
uint16_t word
Definition i2c.h:44