Skip to content

Commit

Permalink
Merge pull request #2013 from mlyle/mpl-i2cfuse
Browse files Browse the repository at this point in the history
i2c: refactor common between F3 and F4
  • Loading branch information
tracernz authored Jan 1, 2018
2 parents d9d2e08 + 28fed93 commit be3307d
Show file tree
Hide file tree
Showing 5 changed files with 828 additions and 1,581 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -51,15 +51,25 @@ enum i2c_adapter_state {
I2C_STATE_BUS_ERROR,

I2C_STATE_STOPPED,
I2C_STATE_STOPPING,
I2C_STATE_STARTING,

I2C_STATE_TRANSFER_COMPLETE,

I2C_STATE_NACK,

#if defined(STM32F30X)
I2C_STATE_WRITE_BYTE,
I2C_STATE_READ_BYTE,
#elif defined(STM32F4XX)
I2C_STATE_STOPPING,

I2C_STATE_R_MORE_TXN_ADDR,
I2C_STATE_R_MORE_TXN_PRE_ONE,
I2C_STATE_R_MORE_TXN_PRE_FIRST,
I2C_STATE_R_MORE_TXN_PRE_MIDDLE,
I2C_STATE_R_MORE_TXN_PRE_LAST,
I2C_STATE_R_MORE_TXN_POST_LAST,

I2C_STATE_MORE_TXN_POST_LAST,

I2C_STATE_R_LAST_TXN_ADDR,
I2C_STATE_R_LAST_TXN_PRE_ONE,
Expand All @@ -75,22 +85,41 @@ enum i2c_adapter_state {
I2C_STATE_W_LAST_TXN_ADDR,
I2C_STATE_W_LAST_TXN_MIDDLE,
I2C_STATE_W_LAST_TXN_LAST,

I2C_STATE_NACK,

I2C_STATE_W_MORE_TXN_PRE,
I2C_STATE_W_LAST_TXN_PRE,
I2C_STATE_W_LAST_TXN_POST_LAST,
#endif // STM32F4XX

I2C_STATE_NUM_STATES /* Must be last */
};

enum i2c_adapter_event {
I2C_EVENT_AUTO,
I2C_EVENT_START,
I2C_EVENT_RECEIVER_BUFFER_NOT_EMPTY,
I2C_EVENT_TRANSMIT_BUFFER_EMPTY,
I2C_EVENT_TRANSFER_COMPLETE,
I2C_EVENT_STOP,
I2C_EVENT_NACK,
I2C_EVENT_BUS_ERROR,
I2C_EVENT_STOPPED,
I2C_EVENT_AUTO,

#if defined(STM32F30X)
I2C_EVENT_RECEIVER_BUFFER_NOT_EMPTY,
I2C_EVENT_TRANSMIT_BUFFER_EMPTY,
I2C_EVENT_TRANSFER_COMPLETE,
#elif defined(STM32F4XX)
I2C_EVENT_R_MORE_TXN_STARTED,
I2C_EVENT_W_MORE_TXN_STARTED,
I2C_EVENT_R_LAST_TXN_STARTED,
I2C_EVENT_W_LAST_TXN_STARTED,
I2C_EVENT_ADDR_SENT_LEN_EQ_0,
I2C_EVENT_ADDR_SENT_LEN_EQ_1,
I2C_EVENT_ADDR_SENT_LEN_EQ_2,
I2C_EVENT_ADDR_SENT_LEN_GT_2,
I2C_EVENT_TRANSFER_DONE_LEN_EQ_0,
I2C_EVENT_TRANSFER_DONE_LEN_EQ_1,
I2C_EVENT_TRANSFER_DONE_LEN_EQ_2,
I2C_EVENT_TRANSFER_DONE_LEN_GT_2,
#endif /* STM32F4XX */

I2C_EVENT_NUM_EVENTS /* Must be last */
};
Expand All @@ -99,15 +128,15 @@ enum pios_i2c_adapter_magic {
PIOS_I2C_DEV_MAGIC = 0xa9a9b8b8,
};

#if defined(PIOS_I2C_DIAGNOSTICS)
#define I2C_LOG_DEPTH 20

enum pios_i2c_error_type {
PIOS_I2C_ERROR_EVENT,
PIOS_I2C_ERROR_FSM,
PIOS_I2C_ERROR_INTERRUPT
};

#if defined(PIOS_I2C_DIAGNOSTICS)
#define I2C_LOG_DEPTH 20

struct pios_i2c_fault_history {
enum pios_i2c_error_type type;
uint32_t evirq[I2C_LOG_DEPTH];
Expand Down
Loading

0 comments on commit be3307d

Please sign in to comment.