I2C_I2DR
HWRITE1(sc, I2C_I2DR, (addr << 1) | 1);
HREAD1(sc, I2C_I2DR);
((uint8_t*)data)[i] = HREAD1(sc, I2C_I2DR);
HWRITE1(sc, I2C_I2DR, addr << 1);
HWRITE1(sc, I2C_I2DR, ((uint8_t*)cmd)[i]);
HWRITE1(sc, I2C_I2DR, ((uint8_t*)data)[i]);