Name

struct i2c_client — represent an I2C slave device

Synopsis

struct i2c_client {
  unsigned short flags;
  unsigned short addr;
  char name[I2C_NAME_SIZE];
  struct i2c_adapter * adapter;
  struct i2c_driver * driver;
  int usage_count;
  struct device dev;
  int irq;
  char driver_name[KOBJ_NAME_LEN];
  struct list_head list;
  struct completion released;
};  

Members

flags

I2C_CLIENT_TEN indicates the device uses a ten bit chip address; I2C_CLIENT_PEC indicates it uses SMBus Packet Error Checking

addr

Address used on the I2C bus connected to the parent adapter.

name[I2C_NAME_SIZE]

Indicates the type of the device, usually a chip name that's generic enough to hide second-sourcing and compatible revisions.

adapter

manages the bus segment hosting this I2C device

driver

device's driver, hence pointer to access routines

usage_count

counts current number of users of this client

dev

Driver model device node for the slave.

irq

indicates the IRQ generated by this device (if any)

driver_name[KOBJ_NAME_LEN]

Identifies new-style driver used with this device; also used as the module name for hotplug/coldplug modprobe support.

list

list of active/busy clients

released

used to synchronize client releases & detaches and references

Description

An i2c_client identifies a single device (i.e. chip) connected to an i2c bus. The behaviour exposed to Linux is defined by the driver managing the device.