diff options
author | Marti Bolivar <mbolivar@leaflabs.com> | 2014-01-10 15:11:55 -0500 |
---|---|---|
committer | Marti Bolivar <mbolivar@leaflabs.com> | 2014-01-10 15:11:55 -0500 |
commit | 644d05beb7c32c2823615948217ffec4c5daf878 (patch) | |
tree | f33edea8218a102330f717cd94881b7b4aa0cdf2 /libmaple/include/libmaple/i2c_common.h | |
parent | 024dbd042d50d8b937e881e75bbefad43c5d60f7 (diff) | |
parent | 4f286c0b12876b36033a3e075a9b4f6914762d54 (diff) | |
download | librambutan-644d05beb7c32c2823615948217ffec4c5daf878.tar.gz librambutan-644d05beb7c32c2823615948217ffec4c5daf878.zip |
Merge branch 'master' of github.com:leaflabs/libmaple
Diffstat (limited to 'libmaple/include/libmaple/i2c_common.h')
-rw-r--r-- | libmaple/include/libmaple/i2c_common.h | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/libmaple/include/libmaple/i2c_common.h b/libmaple/include/libmaple/i2c_common.h index 17cabe3..93e17e2 100644 --- a/libmaple/include/libmaple/i2c_common.h +++ b/libmaple/include/libmaple/i2c_common.h @@ -52,9 +52,12 @@ typedef enum i2c_state { I2C_STATE_IDLE = 1, /**< Idle */ I2C_STATE_XFER_DONE = 2, /**< Done with transfer */ I2C_STATE_BUSY = 3, /**< Busy */ + I2C_STATE_SL_RX = 4, /**< Slave receiving */ I2C_STATE_ERROR = -1 /**< Error occurred */ } i2c_state; +typedef void (*i2c_slave_recv_callback_func)(struct i2c_msg *); +typedef void (*i2c_slave_transmit_callback_func)(struct i2c_msg *); /** * @brief I2C device type. */ @@ -88,6 +91,17 @@ typedef struct i2c_dev { nvic_irq_num ev_nvic_line; /**< Event IRQ number */ nvic_irq_num er_nvic_line; /**< Error IRQ number */ volatile i2c_state state; /**< Device state */ + uint32 config_flags; /**< Configuration flags */ + + /* + * Slave implementation. Callback functions in this struct allow + * for a separate callback function for each I2C unit available onboard + */ + i2c_slave_transmit_callback_func i2c_slave_transmit_callback; + i2c_slave_recv_callback_func i2c_slave_recv_callback; + + struct i2c_msg *i2c_slave_msg; /* the message that the i2c slave will use */ + } i2c_dev; #endif |