This reverts commit71812af723
, reversing changes made tocc0be1ad68
. Wolfram Sang says: Please revert. Besides the driver in net, it modifies the I2C core code. This has not been acked by the I2C maintainer (in this case me). So, please don't pull this in via the net tree. The question raised here (extending SMBus calls to 255 byte) is complicated because we need ABI backwards compatibility. Link: https://lore.kernel.org/all/YZJ9H4eM%2FM7OXVN0@shikoro/ Signed-off-by: Jakub Kicinski <kuba@kernel.org>
61 lines
1.9 KiB
C
61 lines
1.9 KiB
C
/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
|
|
/*
|
|
* i2c-dev.h - I2C bus char device interface
|
|
*
|
|
* Copyright (C) 1995-97 Simon G. Vogl
|
|
* Copyright (C) 1998-99 Frodo Looijaard <frodol@dds.nl>
|
|
*/
|
|
|
|
#ifndef _UAPI_LINUX_I2C_DEV_H
|
|
#define _UAPI_LINUX_I2C_DEV_H
|
|
|
|
#include <linux/types.h>
|
|
#include <linux/compiler.h>
|
|
|
|
/* /dev/i2c-X ioctl commands. The ioctl's parameter is always an
|
|
* unsigned long, except for:
|
|
* - I2C_FUNCS, takes pointer to an unsigned long
|
|
* - I2C_RDWR, takes pointer to struct i2c_rdwr_ioctl_data
|
|
* - I2C_SMBUS, takes pointer to struct i2c_smbus_ioctl_data
|
|
*/
|
|
#define I2C_RETRIES 0x0701 /* number of times a device address should
|
|
be polled when not acknowledging */
|
|
#define I2C_TIMEOUT 0x0702 /* set timeout in units of 10 ms */
|
|
|
|
/* NOTE: Slave address is 7 or 10 bits, but 10-bit addresses
|
|
* are NOT supported! (due to code brokenness)
|
|
*/
|
|
#define I2C_SLAVE 0x0703 /* Use this slave address */
|
|
#define I2C_SLAVE_FORCE 0x0706 /* Use this slave address, even if it
|
|
is already in use by a driver! */
|
|
#define I2C_TENBIT 0x0704 /* 0 for 7 bit addrs, != 0 for 10 bit */
|
|
|
|
#define I2C_FUNCS 0x0705 /* Get the adapter functionality mask */
|
|
|
|
#define I2C_RDWR 0x0707 /* Combined R/W transfer (one STOP only) */
|
|
|
|
#define I2C_PEC 0x0708 /* != 0 to use PEC with SMBus */
|
|
#define I2C_SMBUS 0x0720 /* SMBus transfer */
|
|
|
|
|
|
/* This is the structure as used in the I2C_SMBUS ioctl call */
|
|
struct i2c_smbus_ioctl_data {
|
|
__u8 read_write;
|
|
__u8 command;
|
|
__u32 size;
|
|
union i2c_smbus_data __user *data;
|
|
};
|
|
|
|
/* This is the structure as used in the I2C_RDWR ioctl call */
|
|
struct i2c_rdwr_ioctl_data {
|
|
struct i2c_msg __user *msgs; /* pointers to i2c_msgs */
|
|
__u32 nmsgs; /* number of i2c_msgs */
|
|
};
|
|
|
|
#define I2C_RDWR_IOCTL_MAX_MSGS 42
|
|
/* Originally defined with a typo, keep it for compatibility */
|
|
#define I2C_RDRW_IOCTL_MAX_MSGS I2C_RDWR_IOCTL_MAX_MSGS
|
|
|
|
|
|
#endif /* _UAPI_LINUX_I2C_DEV_H */
|