23 #ifndef _DEV_I2C_I2C_H    24 #define _DEV_I2C_I2C_H    31 #include <rtems/thread.h>    33 #include <sys/ioctl.h>    77 #define I2C_BUS_OBTAIN 0x800    84 #define I2C_BUS_RELEASE 0x801    91 #define I2C_BUS_GET_CONTROL 0x802    98 #define I2C_BUS_SET_CLOCK 0x803   105 #define I2C_BUS_CLOCK_DEFAULT 100000   287 #define I2C_DEV_IO_CONTROL 0x900   307   ssize_t (*
write)(
i2c_dev *dev, 
const void *buf, 
size_t n, off_t offset);
   392   const char *bus_path,
 void i2c_bus_obtain(i2c_bus *bus)
Obtains the bus.
Definition: i2c-bus.c:34
 
blksize_t(* get_block_size)(i2c_dev *dev)
Gets the file block size.
Definition: i2c.h:325
 
int(* set_clock)(i2c_bus *bus, unsigned long clock)
Sets the bus clock.
Definition: i2c.h:133
 
Data which Ease the Burden of Consistently Setting Errno.
 
void i2c_bus_destroy_and_free(i2c_bus *bus)
Destroys a bus control and frees its memory.
Definition: i2c-bus.c:294
 
Watchdog_Interval rtems_interval
Used to manage and manipulate intervals specified by clock ticks.
Definition: types.h:127
 
ssize_t(* write)(i2c_dev *dev, const void *buf, size_t n, off_t offset)
Writes to the device.
Definition: i2c.h:307
 
I2C slave device control.
Definition: i2c.h:292
 
rtems_recursive_mutex mutex
Mutex to protect the bus access.
Definition: i2c.h:145
 
i2c_dev * i2c_dev_alloc_and_init(size_t size, const char *bus_path, uint16_t address)
Allocates a device control from the heap and initializes it.
Definition: i2c-dev.c:271
 
int i2c_dev_init(i2c_dev *dev, const char *bus_path, uint16_t address)
Initializes a device control.
Definition: i2c-dev.c:266
 
uint16_t default_address
Default slave device address.
Definition: i2c.h:150
 
Argument type for I2C_RDWR IO control call.
Definition: i2c-dev.h:125
 
unsigned long functionality
Controller functionality.
Definition: i2c.h:175
 
void(* destroy)(i2c_bus *bus)
Destroys the bus.
Definition: i2c.h:140
 
I2C transfer message.
Definition: i2c.h:138
 
uint16_t address
The device address.
Definition: i2c.h:340
 
int(* transfer)(i2c_bus *bus, i2c_msg *msgs, uint32_t msg_count)
Transfers I2C messages.
Definition: i2c.h:122
 
void(* destroy)(i2c_dev *dev)
Destroys the device.
Definition: i2c.h:330
 
unsigned long retries
Transfer retry count.
Definition: i2c.h:165
 
int i2c_bus_register(i2c_bus *bus, const char *bus_path)
Registers a bus control.
Definition: i2c-bus.c:235
 
rtems_interval timeout
Transaction timeout in ticks.
Definition: i2c.h:170
 
I2C bus control.
Definition: i2c.h:110
 
void i2c_bus_release(i2c_bus *bus)
Releases the bus.
Definition: i2c-bus.c:39
 
RTEMS Port of Linux I2C Device API.
 
off_t(* get_size)(i2c_dev *dev)
Gets the file size.
Definition: i2c.h:320
 
int i2c_bus_init(i2c_bus *bus)
Initializes a bus control.
Definition: i2c-bus.c:300
 
int(* ioctl)(i2c_dev *dev, ioctl_command_t command, void *arg)
Device IO control.
Definition: i2c.h:315
 
void i2c_dev_destroy(i2c_dev *dev)
Destroys a device control.
Definition: i2c-dev.c:251
 
i2c_bus * bus
The bus control.
Definition: i2c.h:335
 
bool ten_bit_address
Use 10-bit addresses.
Definition: i2c.h:155
 
int i2c_dev_register(i2c_dev *dev, const char *dev_path)
Registers a device control.
Definition: i2c-dev.c:140
 
RTEMS Port of Linux I2C API.
 
int bus_fd
File descriptor of the bus.
Definition: i2c.h:348
 
int i2c_bus_transfer(i2c_bus *bus, i2c_msg *msgs, uint32_t msg_count)
Transfers I2C messages.
Definition: i2c-bus.c:44
 
unsigned size
Definition: tte.h:74
 
bool use_pec
Use SMBus PEC.
Definition: i2c.h:160
 
i2c_bus * i2c_bus_alloc_and_init(size_t size)
Allocates a bus control from the heap and initializes it.
Definition: i2c-bus.c:307
 
void i2c_dev_destroy_and_free(i2c_dev *dev)
Destroys a device control and frees its memory.
Definition: i2c-dev.c:260
 
ssize_t(* read)(i2c_dev *dev, void *buf, size_t n, off_t offset)
Reads from the device.
Definition: i2c.h:299
 
void i2c_bus_destroy(i2c_bus *bus)
Destroys a bus control.
Definition: i2c-bus.c:289