xref: /aosp_15_r20/bionic/libc/kernel/uapi/linux/i2c.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef _UAPI_LINUX_I2C_H
8*8d67ca89SAndroid Build Coastguard Worker #define _UAPI_LINUX_I2C_H
9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h>
10*8d67ca89SAndroid Build Coastguard Worker struct i2c_msg {
11*8d67ca89SAndroid Build Coastguard Worker   __u16 addr;
12*8d67ca89SAndroid Build Coastguard Worker   __u16 flags;
13*8d67ca89SAndroid Build Coastguard Worker #define I2C_M_RD 0x0001
14*8d67ca89SAndroid Build Coastguard Worker #define I2C_M_TEN 0x0010
15*8d67ca89SAndroid Build Coastguard Worker #define I2C_M_DMA_SAFE 0x0200
16*8d67ca89SAndroid Build Coastguard Worker #define I2C_M_RECV_LEN 0x0400
17*8d67ca89SAndroid Build Coastguard Worker #define I2C_M_NO_RD_ACK 0x0800
18*8d67ca89SAndroid Build Coastguard Worker #define I2C_M_IGNORE_NAK 0x1000
19*8d67ca89SAndroid Build Coastguard Worker #define I2C_M_REV_DIR_ADDR 0x2000
20*8d67ca89SAndroid Build Coastguard Worker #define I2C_M_NOSTART 0x4000
21*8d67ca89SAndroid Build Coastguard Worker #define I2C_M_STOP 0x8000
22*8d67ca89SAndroid Build Coastguard Worker   __u16 len;
23*8d67ca89SAndroid Build Coastguard Worker   __u8 * buf;
24*8d67ca89SAndroid Build Coastguard Worker };
25*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_I2C 0x00000001
26*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_10BIT_ADDR 0x00000002
27*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_PROTOCOL_MANGLING 0x00000004
28*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_SMBUS_PEC 0x00000008
29*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_NOSTART 0x00000010
30*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_SLAVE 0x00000020
31*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_SMBUS_BLOCK_PROC_CALL 0x00008000
32*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_SMBUS_QUICK 0x00010000
33*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_SMBUS_READ_BYTE 0x00020000
34*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_SMBUS_WRITE_BYTE 0x00040000
35*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_SMBUS_READ_BYTE_DATA 0x00080000
36*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_SMBUS_WRITE_BYTE_DATA 0x00100000
37*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_SMBUS_READ_WORD_DATA 0x00200000
38*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_SMBUS_WRITE_WORD_DATA 0x00400000
39*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_SMBUS_PROC_CALL 0x00800000
40*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_SMBUS_READ_BLOCK_DATA 0x01000000
41*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_SMBUS_WRITE_BLOCK_DATA 0x02000000
42*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_SMBUS_READ_I2C_BLOCK 0x04000000
43*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_SMBUS_WRITE_I2C_BLOCK 0x08000000
44*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_SMBUS_HOST_NOTIFY 0x10000000
45*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_SMBUS_BYTE (I2C_FUNC_SMBUS_READ_BYTE | I2C_FUNC_SMBUS_WRITE_BYTE)
46*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_SMBUS_BYTE_DATA (I2C_FUNC_SMBUS_READ_BYTE_DATA | I2C_FUNC_SMBUS_WRITE_BYTE_DATA)
47*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_SMBUS_WORD_DATA (I2C_FUNC_SMBUS_READ_WORD_DATA | I2C_FUNC_SMBUS_WRITE_WORD_DATA)
48*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_SMBUS_BLOCK_DATA (I2C_FUNC_SMBUS_READ_BLOCK_DATA | I2C_FUNC_SMBUS_WRITE_BLOCK_DATA)
49*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_SMBUS_I2C_BLOCK (I2C_FUNC_SMBUS_READ_I2C_BLOCK | I2C_FUNC_SMBUS_WRITE_I2C_BLOCK)
50*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_SMBUS_EMUL (I2C_FUNC_SMBUS_QUICK | I2C_FUNC_SMBUS_BYTE | I2C_FUNC_SMBUS_BYTE_DATA | I2C_FUNC_SMBUS_WORD_DATA | I2C_FUNC_SMBUS_PROC_CALL | I2C_FUNC_SMBUS_WRITE_BLOCK_DATA | I2C_FUNC_SMBUS_I2C_BLOCK | I2C_FUNC_SMBUS_PEC)
51*8d67ca89SAndroid Build Coastguard Worker #define I2C_FUNC_SMBUS_EMUL_ALL (I2C_FUNC_SMBUS_EMUL | I2C_FUNC_SMBUS_READ_BLOCK_DATA | I2C_FUNC_SMBUS_BLOCK_PROC_CALL)
52*8d67ca89SAndroid Build Coastguard Worker #define I2C_SMBUS_BLOCK_MAX 32
53*8d67ca89SAndroid Build Coastguard Worker union i2c_smbus_data {
54*8d67ca89SAndroid Build Coastguard Worker   __u8 byte;
55*8d67ca89SAndroid Build Coastguard Worker   __u16 word;
56*8d67ca89SAndroid Build Coastguard Worker   __u8 block[I2C_SMBUS_BLOCK_MAX + 2];
57*8d67ca89SAndroid Build Coastguard Worker };
58*8d67ca89SAndroid Build Coastguard Worker #define I2C_SMBUS_READ 1
59*8d67ca89SAndroid Build Coastguard Worker #define I2C_SMBUS_WRITE 0
60*8d67ca89SAndroid Build Coastguard Worker #define I2C_SMBUS_QUICK 0
61*8d67ca89SAndroid Build Coastguard Worker #define I2C_SMBUS_BYTE 1
62*8d67ca89SAndroid Build Coastguard Worker #define I2C_SMBUS_BYTE_DATA 2
63*8d67ca89SAndroid Build Coastguard Worker #define I2C_SMBUS_WORD_DATA 3
64*8d67ca89SAndroid Build Coastguard Worker #define I2C_SMBUS_PROC_CALL 4
65*8d67ca89SAndroid Build Coastguard Worker #define I2C_SMBUS_BLOCK_DATA 5
66*8d67ca89SAndroid Build Coastguard Worker #define I2C_SMBUS_I2C_BLOCK_BROKEN 6
67*8d67ca89SAndroid Build Coastguard Worker #define I2C_SMBUS_BLOCK_PROC_CALL 7
68*8d67ca89SAndroid Build Coastguard Worker #define I2C_SMBUS_I2C_BLOCK_DATA 8
69*8d67ca89SAndroid Build Coastguard Worker #endif
70