Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: CX88 i2c issue w/ DVB tuners



On Sat, 11 Sep 2004, Andrew de Quincey wrote:
>
<snip>
> > int card_i2c_write (struct card *card, const u8 *buf, int len)
> > {
> >  struct i2c_msg m = { .flags = 0, .buf = buf, .len = len };
> >  return i2c_transfer(&card->i2c_adap, &m, 1) == 1 ? len : -EIO;
> > }
> >
> >
> > int card_i2c_read (struct card *card, const u8 *buf, int len)
> > {
> >  struct i2c_msg m = { .flags = I2C_M_RD, .buf = buf, .len = len };
> >  return i2c_transfer(&card->i2c_adap, &m, 1) == 1 ? len : -EIO;
> > }
>
> "Almost all". The cx88 does not for example. It only implements the setscl,
> setsda, getscl, getsda functions. The standard kernel i2c bitbanging code
> does the rest.

I know this point is long disproved, but I wanted to ask something not
entirely related ... is there any reason the cx88 driver doesn't use
hardware i2c?  I implemented it in my (Mac) driver and it seems to work
fine for me ('tho I'm not talking to any analogue i2c chips yet...) also
the algo is similar (identical?) to the one for bt8x8 hardware i2c.

Expecting the response: 'patches welcome' :)

{P^/




Home | Main Index | Thread Index