static inline int i2c_do_write(i2c_t *obj, int value) { // write the data if (!(i2c_status(obj) & NACKF)) { // NACF=0 i2c_wait_TDRE(obj); REG(DRT.UINT32) = value; } else { return 0xff; } return i2c_status(obj); }
static inline int i2c_read_address_write(i2c_t *obj, int value) { int status; status = i2c_wait_TDRE(obj); if (status == 0) { /* write the data */ REG(DRT.UINT32) = value; } return status; }