refine i2c.c