I have been performing timing measurements on an Android application that communicates to a device by means of an I2C interface. I have discovered that single I2C read and writes are taking around 450ms to execute. I have verified that the I2C interface is running at 400KHz, so I would expect I2C operations on a single byte to take around 170us. It therefore appears that there is an overhead of over 250us to use the I2C drivers within the android kernel?
Is this typical of I2C operations using the linux kernel I2C devices? I realise that Android uses a specific flavour of linux, however I'd like to know what to expect on a typical linux system and if there is anything I can do to improve on IO speed. I am confident that I am running on a powerful enough hardware platform.
Thanks in advance.