hi! i'm trying to make the EureSys Picolo Pro 2 card switch input but I ran into trouble. The card is simple it has a BT chip but the internal muxer is not used. There is an external four channel multiplexer. There is a PCF8575 between the multiplexer and the BT chip. It is connected to the SDA & SCL pin on the BT878. The address of the chip is 0x27. I know that the chip address is shifted with one bit so I use 0xa7 in the driver. the bttv_I2CWrite(btv, 0xa7, 0xff, 0xff, 1) returns normally it says it could send the two bytes. But I can do it on all the other addresses from 0xa0 to 0xa7 as well. Reading from device is strange. I modified the bttv_I2CRead to read 2 bytes instead of one and I got the following results (I did write 0xff, 0x00 to all addresses): 0xa0 -> 0 0xff 0xa1 -> 0 0xff 0xa2 -> 0 0xff 0xa3 -> 0 0xff 0xa4 -> 0 0x1 0xa5 -> 0 0x1 0xa6 -> 0xff 0xff 0xa7 -> 0xff 0xff It seems that something is garbled. If I change the udelay in the algo structure then It can still send the bytes without error, but it's not possible since the bus has a max . freq of 400kHz. Unfortunately I don't know the PCF8575 (I2C to parallel bus converter) well and it says something it is set to inout mode at power-on, and I need to set the outputs to 1 to switch to output mode. There is a I2C register in the BT chip, it supports hardware and software mode, now software is set, but I don't know why a software mode can be better than the bulit-in I2C support. Or did I miss something with the I2C? Thanks, Gabor