diff options
author | Christian Mauderer <christian.mauderer@embedded-brains.de> | 2022-02-03 09:39:39 +0100 |
---|---|---|
committer | Christian Mauderer <christian.mauderer@embedded-brains.de> | 2022-02-10 09:07:46 +0100 |
commit | 974d24f8a8018308a1ac202286e486fda2fd8a83 (patch) | |
tree | 1f8a16d44cf913de0c58092654f3e997d6eed122 /bsps/arm/atsam/include/bsp/atsam-i2c.h | |
parent | termios: Pass number of sent chars to l_start (diff) | |
download | rtems-974d24f8a8018308a1ac202286e486fda2fd8a83.tar.bz2 |
bsp/atsam/i2c: Simplify driver
Do some clean ups. Remove superfluous variables. Eliminate some overly
complex logic (information about transfer and remaining bytes has been
tracked redundantly in multiple variables).
This patch doesn't change the behavior of the driver.
Update #4592
Diffstat (limited to 'bsps/arm/atsam/include/bsp/atsam-i2c.h')
-rw-r--r-- | bsps/arm/atsam/include/bsp/atsam-i2c.h | 22 |
1 files changed, 8 insertions, 14 deletions
diff --git a/bsps/arm/atsam/include/bsp/atsam-i2c.h b/bsps/arm/atsam/include/bsp/atsam-i2c.h index ae0fe97584..532be1dae5 100644 --- a/bsps/arm/atsam/include/bsp/atsam-i2c.h +++ b/bsps/arm/atsam/include/bsp/atsam-i2c.h @@ -30,33 +30,27 @@ extern "C" { 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; + transfer_state trans_state; uint32_t current_msg_todo; uint8_t *current_msg_byte; + uint32_t output_clock; - bool read; rtems_binary_semaphore sem; rtems_vector_number irq; } atsam_i2c_bus; |