i2c device driver from scratch