Open Source Software from Katalix Systems.

LibI2C

LIBI2C provides a C API to the Linux I2C subsystem. It is distributed as two components.

  • libi2c.so, licensed under the GNU Library Public License.
  • Several simple applications, licensed under the GNU Public License.

Online Documentation

The functions provided by LibI2C are listed below.

	extern int libi2c_bus_open(int bus_no);
	extern int libi2c_bus_close(int fd);
	extern int libi2c_bus_scan(int bus_no, u_int8_t *addrs, int max_devices);
	
	extern int libi2c_i2c_read_block(int fd, u_int16_t slaveaddr, int slaveaddr_size, 
					 u_int32_t subaddr, int subaddr_size, 
					 u_int8_t *data, int len);
	extern int libi2c_i2c_write_block(int fd, u_int16_t slaveaddr, int slaveaddr_size, 
					  u_int32_t subaddr, int subaddr_size, 
					  u_int8_t *data, int len);
	
	int libi2c_i2c_read_eddc_block(int fd, u_int8_t eddc_seg, 
	                               u_int16_t slaveaddr, int slaveaddr_size,
	                               u_int32_t subaddr, int subaddr_size,
	                               u_int8_t *data, int len);
	int libi2c_i2c_write_eddc_block(int fd, u_int8_t eddc_seg, 
	                                u_int16_t slaveaddr, int slaveaddr_size,
	                                u_int32_t subaddr, int subaddr_size, 
	                                u_int8_t *data, int len);
	
	extern int libi2c_smbus_probe(int fd);
	extern int libi2c_smbus_read_next_byte(int fd, u_int8_t *result);
	extern int libi2c_smbus_read_byte(int fd, u_int8_t cmd, u_int8_t *result);
	extern int libi2c_smbus_read_word(int fd, u_int8_t cmd, u_int16_t *result);
	extern int libi2c_smbus_read_block(int fd, u_int8_t cmd, u_int8_t *buf);
	extern int libi2c_smbus_write_next_byte(int fd, u_int8_t value);
	extern int libi2c_smbus_write_byte(int fd, u_int8_t cmd, u_int8_t value);
	extern int libi2c_smbus_write_word(int fd, u_int8_t cmd, u_int16_t value);
	extern int libi2c_smbus_write_block(int fd, u_int8_t cmd, u_int8_t *buf, int buf_len);
	

Downloads

LibI2C may be downloaded here. http://opensource.katalix.com/libi2c/libi2c-0.12.tar.gz.