On Tue, 07 Jul 2009 11:38:46 +0000, Jonathan Cameron wrote:
> Basically it's protocol is a standard smbus type write byte command
> (address 0x19) followed by a delay (command specific) and then
> a read of multiple bytes (number is command dependant.)
>
> Unfortunately the device doesn't seem do anything helpful like notify
> you of how many bytes it is sending (as per smbus block read).
>
> I fear to make this work you'll need to write a kernel space driver.
> The first step is a conventional smbus send byte command. Follow this
> with a suitable delay. The second will need to make use of
> i2c_transfer with a msg looking something like
>
> char bob[6];
> struct i2c_msg read_msg = {
> .addr = 0x19,
> .flags = I2C_M_RD,
> .len = 6, // as appropriate to the command
> .buf = bob,
> };
>
> then i2c_transfer(adap, &read_msg, 1);
>
> should do the job.
Note: this could be done from userspace too if needed. The i2c-dev
interface supports raw reads and writes.
--
Jean Delvare
--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html