23 #ifndef _DEV_I2C_I2C_H 24 #define _DEV_I2C_I2C_H 74 #define I2C_BUS_OBTAIN 0x800 81 #define I2C_BUS_RELEASE 0x801 88 #define I2C_BUS_GET_CONTROL 0x802 95 #define I2C_BUS_SET_CLOCK 0x803 102 #define I2C_BUS_CLOCK_DEFAULT 100000 284 #define I2C_DEV_IO_CONTROL 0x900 304 ssize_t (*
write)(
i2c_dev *dev,
const void *buf,
size_t n, off_t offset);
312 int (*ioctl)(
i2c_dev *dev, ioctl_command_t command,
void *arg);
389 const char *bus_path,
void i2c_bus_obtain(i2c_bus *bus)
Obtains the bus.
Definition: i2c-bus.c:34
rtems_id mutex
Mutex to protect the bus access.
Definition: i2c.h:142
ssize_t read(int fd, void *buffer, size_t count)
POSIX 1003.1b 6.4.1 - Read From a File.
Definition: read.c:27
int(* set_clock)(i2c_bus *bus, unsigned long clock)
Sets the bus clock.
Definition: i2c.h:130
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:319
Objects_Id rtems_id
Used to manage and manipulate RTEMS object identifiers.
Definition: types.h:80
I2C slave device control.
Definition: i2c.h:289
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:270
ssize_t write(int fd, const void *buffer, size_t count)
POSIX 1003.1b 6.4.2 - Write to a File.
Definition: write.c:30
int i2c_dev_init(i2c_dev *dev, const char *bus_path, uint16_t address)
Initializes a device control.
Definition: i2c-dev.c:265
uint16_t default_address
Default slave device address.
Definition: i2c.h:147
Argument type for I2C_RDWR IO control call.
Definition: i2c-dev.h:125
unsigned long functionality
Controller functionality.
Definition: i2c.h:172
void(* destroy)(i2c_bus *bus)
Destroys the bus.
Definition: i2c.h:137
I2C transfer message.
Definition: i2c.h:137
uint16_t address
The device address.
Definition: i2c.h:337
int(* transfer)(i2c_bus *bus, i2c_msg *msgs, uint32_t msg_count)
Transfers I2C messages.
Definition: i2c.h:119
Watchdog_Interval rtems_interval
Used to manage and manipulate intervals specified by clock ticks.
Definition: types.h:119
unsigned long retries
Transfer retry count.
Definition: i2c.h:162
int i2c_bus_register(i2c_bus *bus, const char *bus_path)
Registers a bus control.
Definition: i2c-bus.c:242
rtems_interval timeout
Transaction timeout in ticks.
Definition: i2c.h:167
I2C bus control.
Definition: i2c.h:107
void i2c_bus_release(i2c_bus *bus)
Releases the bus.
Definition: i2c-bus.c:43
RTEMS Port of Linux I2C Device API.
int i2c_bus_init(i2c_bus *bus)
Initializes a bus control.
Definition: i2c-bus.c:325
void i2c_dev_destroy(i2c_dev *dev)
Destroys a device control.
Definition: i2c-dev.c:250
i2c_bus * bus
The bus control.
Definition: i2c.h:332
bool ten_bit_address
Use 10-bit addresses.
Definition: i2c.h:152
int i2c_dev_register(i2c_dev *dev, const char *dev_path)
Registers a device control.
Definition: i2c-dev.c:139
RTEMS Port of Linux I2C API.
int bus_fd
File descriptor of the bus.
Definition: i2c.h:345
int i2c_bus_transfer(i2c_bus *bus, i2c_msg *msgs, uint32_t msg_count)
Transfers I2C messages.
Definition: i2c-bus.c:52
bool use_pec
Use SMBus PEC.
Definition: i2c.h:157
i2c_bus * i2c_bus_alloc_and_init(size_t size)
Allocates a bus control from the heap and initializes it.
Definition: i2c-bus.c:332
void i2c_dev_destroy_and_free(i2c_dev *dev)
Destroys a device control and frees its memory.
Definition: i2c-dev.c:259
void i2c_bus_destroy(i2c_bus *bus)
Destroys a bus control.
Definition: i2c-bus.c:310