![]() |
RTEMS 6.1
|
I2C Support. More...
Files | |
| file | i2c.c |
| I2C support implementation. | |
| file | i2c.h |
| I2C support API. | |
Functions | |
| rtems_status_code | lpc32xx_i2c_init (volatile lpc32xx_i2c *i2c, unsigned clock_in_hz) |
| Initializes the I2C module i2c. | |
| void | lpc32xx_i2c_reset (volatile lpc32xx_i2c *i2c) |
| Resets the I2C module i2c. | |
| rtems_status_code | lpc32xx_i2c_clock (volatile lpc32xx_i2c *i2c, unsigned clock_in_hz) |
| Sets the I2C module i2c clock. | |
| rtems_status_code | lpc32xx_i2c_write_start (volatile lpc32xx_i2c *i2c, unsigned addr) |
| Starts a write transaction on the I2C module i2c. | |
| rtems_status_code | lpc32xx_i2c_write_with_optional_stop (volatile lpc32xx_i2c *i2c, const uint8_t *out, size_t n, bool stop) |
| Writes data via the I2C module i2c with optional stop. | |
| rtems_status_code | lpc32xx_i2c_read_start (volatile lpc32xx_i2c *i2c, unsigned addr) |
| Starts a read transaction on the I2C module i2c. | |
| rtems_status_code | lpc32xx_i2c_read_with_optional_stop (volatile lpc32xx_i2c *i2c, uint8_t *in, size_t n, bool stop) |
| Reads data via the I2C module i2c with optional stop. | |
| rtems_status_code | lpc32xx_i2c_write_and_read (volatile lpc32xx_i2c *i2c, unsigned addr, const uint8_t *out, size_t out_size, uint8_t *in, size_t in_size) |
| Writes and reads data via the I2C module i2c. | |
I2C TX Data FIFO Register (I2Cn_TX) | |
| #define | I2C_TX_READ BSP_BIT32(0) |
| #define | I2C_TX_ADDR(val) BSP_FLD32(val, 1, 7) |
| #define | I2C_TX_START BSP_BIT32(8) |
| #define | I2C_TX_STOP BSP_BIT32(9) |
I2C Support.
All writes and reads will be performed in master mode. Exclusive bus access will be assumed.
| rtems_status_code lpc32xx_i2c_clock | ( | volatile lpc32xx_i2c * | i2c, |
| unsigned | clock_in_hz | ||
| ) |
Sets the I2C module i2c clock.
Valid clock_in_hz values are 100000 and 400000.
| RTEMS_SUCCESSFUL | Successful operation. |
| RTEMS_INVALID_CLOCK | Invalid clock_in_hz value. |
| rtems_status_code lpc32xx_i2c_init | ( | volatile lpc32xx_i2c * | i2c, |
| unsigned | clock_in_hz | ||
| ) |
| rtems_status_code lpc32xx_i2c_read_start | ( | volatile lpc32xx_i2c * | i2c, |
| unsigned | addr | ||
| ) |
Starts a read transaction on the I2C module i2c.
The address parameter addr must not contain the read/write bit.
The error status may be delayed to the next lpc32xx_i2c_read_with_optional_stop() due to controller flaws.
| RTEMS_SUCCESSFUL | Successful operation. |
| RTEMS_IO_ERROR | Received a NACK from the slave. |
| rtems_status_code lpc32xx_i2c_read_with_optional_stop | ( | volatile lpc32xx_i2c * | i2c, |
| uint8_t * | in, | ||
| size_t | n, | ||
| bool | stop | ||
| ) |
Reads data via the I2C module i2c with optional stop.
| RTEMS_SUCCESSFUL | Successful operation. |
| RTEMS_IO_ERROR | Received a NACK from the slave. |
| RTEMS_NOT_IMPLEMENTED | Stop is false. |
| rtems_status_code lpc32xx_i2c_write_and_read | ( | volatile lpc32xx_i2c * | i2c, |
| unsigned | addr, | ||
| const uint8_t * | out, | ||
| size_t | out_size, | ||
| uint8_t * | in, | ||
| size_t | in_size | ||
| ) |
Writes and reads data via the I2C module i2c.
This will be one bus transaction.
| RTEMS_SUCCESSFUL | Successful operation. |
| RTEMS_IO_ERROR | Received a NACK from the slave. |
| rtems_status_code lpc32xx_i2c_write_start | ( | volatile lpc32xx_i2c * | i2c, |
| unsigned | addr | ||
| ) |
Starts a write transaction on the I2C module i2c.
The address parameter addr must not contain the read/write bit.
The error status may be delayed to the next lpc32xx_i2c_write_with_optional_stop() due to controller flaws.
| RTEMS_SUCCESSFUL | Successful operation. |
| RTEMS_IO_ERROR | Received a NACK from the slave. |
| rtems_status_code lpc32xx_i2c_write_with_optional_stop | ( | volatile lpc32xx_i2c * | i2c, |
| const uint8_t * | out, | ||
| size_t | n, | ||
| bool | stop | ||
| ) |
Writes data via the I2C module i2c with optional stop.
The error status may be delayed to the next lpc32xx_i2c_write_with_optional_stop() due to controller flaws.
| RTEMS_SUCCESSFUL | Successful operation. |
| RTEMS_IO_ERROR | Received a NACK from the slave. |