The unified diff between revisions [dea51752..] and [4f22e7ef..] is displayed below. It can also be downloaded as a raw diff.
This diff has been restricted to the following files: 'i2c.h'
# # old_revision [dea51752ff3061ddca80de6685b04dac53ac77e1] # new_revision [4f22e7ef7d3064e3b51a5b868a4722f3f13c747b] # # patch "i2c.h" # from [383d50d6e5547f52b22d5a878835d6c21926f031] # to [096c6ddae7948e9802621e5cda6f7289fd917cab] # ============================================================ --- i2c.h 383d50d6e5547f52b22d5a878835d6c21926f031 +++ i2c.h 096c6ddae7948e9802621e5cda6f7289fd917cab @@ -2,16 +2,26 @@ #define __I2C_H #include "types.h" + +#define I2C_IN_PROGRESS 0 +#define I2C_SUCCESS 1 +#define I2C_FAIL 2 + +typedef int i2c_result; + +struct i2c_transaction { + int address; /* i2c first byte, including address and r/w flag */ + int bytes; /* number of bytes to read or write */ + unsigned char *data; /* pointer to the data */ + i2c_result *result; /* pointer to store the result */ + struct i2c_transaction *next; /* NULL or next transaction */ +}; + + void init_i2c(void); -extern int i2cstat; -int i2c_wait(void); -void i2c_go(void); int i2c_conreg(void); int i2c_statreg(void); -bool i2c_send_start(void); -bool i2c_send_address(int addr, bool write); -bool i2c_send_data(unsigned int data); -bool i2c_receive_data(unsigned int *data, bool last); -void i2c_send_stop(void); +bool i2c_start_transaction(struct i2c_transaction *t); +bool i2c_busy(void); #endif /* __I2C_H */