The TCA8424 documentation says: ...
#!/usr/bin/python import fcntl import os import struct class I2C(object): I2C_SLAVE = 0x0703 def __init__(self, fname): self.fd = os.open(fname, os.O_RDWR) def __del__(self): os.close(self.fd) def select_device(self, devaddr): if fcntl.ioctl(self.fd, self.I2C_SLAVE, devaddr) < 0: return IOError('ioctl error') def write(self, data): os.write(self.fd, data) def read(self, count): data = '' while 1: d = os.read(self.fd, count - len(data)) if len(d)==0: raise IOError("EOF while reading %d bytes" % count) data += d if len(data) == count: return data if __name__ == '__main__': port = I2C('/dev/i2c-1') port.select_device(0x76) # or 0x77 for i in range(10): port.write(struct.pack('<H', i)) v = ord(p.read(1)) print "reg=%02Xh val=%02Xh" % (i, v)