[i2c] Two start conditions for PCA9554
Hans J. Koch
hjk at linutronix.de
Thu May 1 22:39:36 CEST 2008
On Wed, Apr 30, 2008 at 02:26:22PM -0700, Trent Piepho wrote:
> On Tue, 29 Apr 2008, Hans J. Koch wrote:
> > I have an embedded board with a PCA9554 on it. It's an 8-bit IO expander
> > similar to the PCF8574 in mainline. One difference is that when reading
> > from the inputs, you have to do the following:
> >
> > - start condition
> > - send slave address, R/W=0
> > - send command (0x00 = read input register)
> > - issue another start condition (!)
> > - send slave address, R/W=1
> > - read data
> > - stop condition
> >
> > Can such a protocol be handled by the i2c subsystem?
>
> Yes. That is a normal repeated start transaction, and AFAIK exactly what
> all the other PCA, and virtually every other i2c chip for that matter, use.
> The smbus read byte data function will do this for you.
OK, thanks. I admit, I would be strange if the i2c subsystem didn't
support that.
>
> If you want multiple stops in a single transaction, the i2c subsystem can't
> do it, but I wrote a simple patch that allows it.
No need for that now, but I'll remember that...
Thanks,
Hans
More information about the i2c
mailing list