+enum {
+ TWI_COND_START = (1 << 0),
+ TWI_COND_STOP = (1 << 1),
+ TWI_COND_ADDR = (1 << 2),
+ TWI_COND_ACK = (1 << 3),
+ TWI_COND_WRITE = (1 << 4),
+ TWI_COND_READ = (1 << 5),
+};
+
+typedef struct avr_twi_msg_t {
+ uint32_t unused : 8,
+ msg : 8,
+ addr : 8,
+ data : 8;
+} avr_twi_msg_t;
+
+typedef struct avr_twi_msg_irq_t {
+ union {
+ uint32_t v;
+ avr_twi_msg_t twi;
+ } u;
+} avr_twi_msg_irq_t;