122851890Sopenharmony_ci/* 222851890Sopenharmony_ci * This header was generated from the Linux kernel headers by update_headers.py, 322851890Sopenharmony_ci * to provide necessary information from kernel to userspace, such as constants, 422851890Sopenharmony_ci * structures, and macros, and thus, contains no copyrightable information. 522851890Sopenharmony_ci */ 622851890Sopenharmony_ci#ifndef _UAPI_LINUX_I2C_H 722851890Sopenharmony_ci#define _UAPI_LINUX_I2C_H 822851890Sopenharmony_ci#include <linux/types.h> 922851890Sopenharmony_cistruct i2c_msg { 1022851890Sopenharmony_ci __u16 addr; 1122851890Sopenharmony_ci __u16 flags; 1222851890Sopenharmony_ci#define I2C_M_RD 0x0001 1322851890Sopenharmony_ci 1422851890Sopenharmony_ci#define I2C_M_TEN 0x0010 1522851890Sopenharmony_ci#define I2C_M_DMA_SAFE 0x0200 1622851890Sopenharmony_ci 1722851890Sopenharmony_ci 1822851890Sopenharmony_ci#define I2C_M_RECV_LEN 0x0400 1922851890Sopenharmony_ci#define I2C_M_NO_RD_ACK 0x0800 2022851890Sopenharmony_ci#define I2C_M_IGNORE_NAK 0x1000 2122851890Sopenharmony_ci#define I2C_M_REV_DIR_ADDR 0x2000 2222851890Sopenharmony_ci#define I2C_M_NOSTART 0x4000 2322851890Sopenharmony_ci#define I2C_M_STOP 0x8000 2422851890Sopenharmony_ci __u16 len; 2522851890Sopenharmony_ci __u8 *buf; 2622851890Sopenharmony_ci}; 2722851890Sopenharmony_ci#define I2C_FUNC_I2C 0x00000001 2822851890Sopenharmony_ci#define I2C_FUNC_10BIT_ADDR 0x00000002 2922851890Sopenharmony_ci#define I2C_FUNC_PROTOCOL_MANGLING 0x00000004 3022851890Sopenharmony_ci#define I2C_FUNC_SMBUS_PEC 0x00000008 3122851890Sopenharmony_ci#define I2C_FUNC_NOSTART 0x00000010 3222851890Sopenharmony_ci#define I2C_FUNC_SLAVE 0x00000020 3322851890Sopenharmony_ci#define I2C_FUNC_SMBUS_BLOCK_PROC_CALL 0x00008000 3422851890Sopenharmony_ci#define I2C_FUNC_SMBUS_QUICK 0x00010000 3522851890Sopenharmony_ci#define I2C_FUNC_SMBUS_READ_BYTE 0x00020000 3622851890Sopenharmony_ci#define I2C_FUNC_SMBUS_WRITE_BYTE 0x00040000 3722851890Sopenharmony_ci#define I2C_FUNC_SMBUS_READ_BYTE_DATA 0x00080000 3822851890Sopenharmony_ci#define I2C_FUNC_SMBUS_WRITE_BYTE_DATA 0x00100000 3922851890Sopenharmony_ci#define I2C_FUNC_SMBUS_READ_WORD_DATA 0x00200000 4022851890Sopenharmony_ci#define I2C_FUNC_SMBUS_WRITE_WORD_DATA 0x00400000 4122851890Sopenharmony_ci#define I2C_FUNC_SMBUS_PROC_CALL 0x00800000 4222851890Sopenharmony_ci#define I2C_FUNC_SMBUS_READ_BLOCK_DATA 0x01000000 4322851890Sopenharmony_ci#define I2C_FUNC_SMBUS_WRITE_BLOCK_DATA 0x02000000 4422851890Sopenharmony_ci#define I2C_FUNC_SMBUS_READ_I2C_BLOCK 0x04000000 4522851890Sopenharmony_ci#define I2C_FUNC_SMBUS_WRITE_I2C_BLOCK 0x08000000 4622851890Sopenharmony_ci#define I2C_FUNC_SMBUS_HOST_NOTIFY 0x10000000 4722851890Sopenharmony_ci#define I2C_FUNC_SMBUS_BYTE (I2C_FUNC_SMBUS_READ_BYTE | \ 4822851890Sopenharmony_ci I2C_FUNC_SMBUS_WRITE_BYTE) 4922851890Sopenharmony_ci#define I2C_FUNC_SMBUS_BYTE_DATA (I2C_FUNC_SMBUS_READ_BYTE_DATA | \ 5022851890Sopenharmony_ci I2C_FUNC_SMBUS_WRITE_BYTE_DATA) 5122851890Sopenharmony_ci#define I2C_FUNC_SMBUS_WORD_DATA (I2C_FUNC_SMBUS_READ_WORD_DATA | \ 5222851890Sopenharmony_ci I2C_FUNC_SMBUS_WRITE_WORD_DATA) 5322851890Sopenharmony_ci#define I2C_FUNC_SMBUS_BLOCK_DATA (I2C_FUNC_SMBUS_READ_BLOCK_DATA | \ 5422851890Sopenharmony_ci I2C_FUNC_SMBUS_WRITE_BLOCK_DATA) 5522851890Sopenharmony_ci#define I2C_FUNC_SMBUS_I2C_BLOCK (I2C_FUNC_SMBUS_READ_I2C_BLOCK | \ 5622851890Sopenharmony_ci I2C_FUNC_SMBUS_WRITE_I2C_BLOCK) 5722851890Sopenharmony_ci#define I2C_FUNC_SMBUS_EMUL (I2C_FUNC_SMBUS_QUICK | \ 5822851890Sopenharmony_ci I2C_FUNC_SMBUS_BYTE | \ 5922851890Sopenharmony_ci I2C_FUNC_SMBUS_BYTE_DATA | \ 6022851890Sopenharmony_ci I2C_FUNC_SMBUS_WORD_DATA | \ 6122851890Sopenharmony_ci I2C_FUNC_SMBUS_PROC_CALL | \ 6222851890Sopenharmony_ci I2C_FUNC_SMBUS_WRITE_BLOCK_DATA | \ 6322851890Sopenharmony_ci I2C_FUNC_SMBUS_I2C_BLOCK | \ 6422851890Sopenharmony_ci I2C_FUNC_SMBUS_PEC) 6522851890Sopenharmony_ci#define I2C_SMBUS_BLOCK_MAX 32 6622851890Sopenharmony_ciunion i2c_smbus_data { 6722851890Sopenharmony_ci __u8 byte; 6822851890Sopenharmony_ci __u16 word; 6922851890Sopenharmony_ci __u8 block[I2C_SMBUS_BLOCK_MAX + 2]; 7022851890Sopenharmony_ci 7122851890Sopenharmony_ci}; 7222851890Sopenharmony_ci#define I2C_SMBUS_READ 1 7322851890Sopenharmony_ci#define I2C_SMBUS_WRITE 0 7422851890Sopenharmony_ci#define I2C_SMBUS_QUICK 0 7522851890Sopenharmony_ci#define I2C_SMBUS_BYTE 1 7622851890Sopenharmony_ci#define I2C_SMBUS_BYTE_DATA 2 7722851890Sopenharmony_ci#define I2C_SMBUS_WORD_DATA 3 7822851890Sopenharmony_ci#define I2C_SMBUS_PROC_CALL 4 7922851890Sopenharmony_ci#define I2C_SMBUS_BLOCK_DATA 5 8022851890Sopenharmony_ci#define I2C_SMBUS_I2C_BLOCK_BROKEN 6 8122851890Sopenharmony_ci#define I2C_SMBUS_BLOCK_PROC_CALL 7 8222851890Sopenharmony_ci#define I2C_SMBUS_I2C_BLOCK_DATA 8 8322851890Sopenharmony_ci#endif 84