summaryrefslogtreecommitdiffstats
path: root/bsps/arm/atsam/include/bsp/atsam-i2c.h
diff options
context:
space:
mode:
Diffstat (limited to 'bsps/arm/atsam/include/bsp/atsam-i2c.h')
-rw-r--r--bsps/arm/atsam/include/bsp/atsam-i2c.h32
1 files changed, 10 insertions, 22 deletions
diff --git a/bsps/arm/atsam/include/bsp/atsam-i2c.h b/bsps/arm/atsam/include/bsp/atsam-i2c.h
index ae0fe97584..a6a9c27d48 100644
--- a/bsps/arm/atsam/include/bsp/atsam-i2c.h
+++ b/bsps/arm/atsam/include/bsp/atsam-i2c.h
@@ -28,35 +28,23 @@ extern "C" {
#define TWI_AMOUNT_PINS 2
-typedef enum {
- TX_SEND_DATA,
- TX_SEND_STOP,
- TX_CONT_MESSAGE_NEEDED,
- RX_SEND_DATA,
- RX_SEND_STOP,
- RX_CONT_MESSAGE_NEEDED,
- TX_RX_STOP_SENT
-}transfer_state;
-
-typedef struct {
- uint8_t status;
- uint8_t *data;
- bool stop_request;
- uint32_t data_size;
- uint32_t already_transferred;
- transfer_state trans_state;
-} transfer_desc;
-
typedef struct {
i2c_bus base;
- i2c_msg *msgs;
Twihs *regs;
- transfer_desc trans_desc;
+
+ /* First message and number of messages that have to be processed. */
+ i2c_msg *msgs;
uint32_t msg_todo;
+
+ /* Information about the current transfer. */
+ bool stop_request;
uint32_t current_msg_todo;
uint8_t *current_msg_byte;
+
+ /* Error information that can be returned to the task */
+ uint32_t err;
+
uint32_t output_clock;
- bool read;
rtems_binary_semaphore sem;
rtems_vector_number irq;
} atsam_i2c_bus;