I2C
Functions
libsoc_i2c_init
i2c* libsoc_i2c_init (uint8_t i2c_bus, uint8_t i2c_address)
- 
uint8_t i2c_bus the linux enumerated bus number 
- 
uint8_t i2c_address the peripherals address on the i2c bus 
Initialises a new i2c instance at the specificed address. Returns a malloced i2c struct which must be freed with libsoc_i2c_free when no longer needed.
Returns NULL on failure.
libsoc_i2c_free
int libsoc_i2c_free (i2c * i2c)
- 
i2c* i2c previously initialised i2c struct 
Free the memory associated with a previously initialised i2c struct and release the hold on the i2c address.
Returns EXIT_SUCCESS or EXIT_FAILURE
libsoc_i2c_write
int libsoc_i2c_write (i2c * i2c, uint8_t * buffer, uint16_t len)
- 
i2c* i2c previously initialised i2c struct 
- 
uint8_t* buffer pointer to output data buffer 
- 
uint16_t len length of data to write in bytes 
Write len bytes starting from the buffer data pointer to the specified
i2c device.
Returns EXIT_SUCCESS or EXIT_FAILURE
libsoc_i2c_read
int libsoc_i2c_read (i2c * i2c, uint8_t * buffer, uint16_t len)
- 
i2c* i2c previously initialised i2c struct 
- 
uint8_t* buffer pointer to input data buffer 
- 
uint16_t len length of data to read in bytes 
Read len bytes into the buffer data pointer from the specified
i2c device.
Returns EXIT_SUCCESS or EXIT_FAILURE
libsoc_i2c_set_timeout
int libsoc_i2c_set_timeout(i2c * i2c, int timeout)
- 
i2c* i2c previously initialised i2c struct 
- 
int timeout i2c timeout in milliseconds/10 
Set the timeout of a i2c device in milliseconds/10. For example if a timeout of
20ms is requred, timeout would be set to 2.
    // 20ms timeout, 2*10ms
    libsoc_i2c_set_timeout(device, 2);
Returns EXIT_SUCCESS or EXIT_FAILURE