On Tue, Jul 3, 2012 at 10:32 AM, Jean Delvare <khali@xxxxxxxxxxxx> wrote: > On Tue, 3 Jul 2012 10:12:09 +0200, Yegor Yefremov wrote: >> I'm using the second i2c channel to connect to HDMI transmitter >> sii9022a. In order to get EDID information from the attached monitor >> the sii9022a chip passes i2c request direct to the monitors i2c bus. >> To return to sii9022a mode one has to write data to HDMI transmitter, >> but this data won't be acknowledged. Because of this i2c produces >> timeout permanently (omap_i2c omap_i2c.2: controller timed out), so no >> communication is possible. The last bits I see on the scope are the >> i2c address of sii9022a. The CPU automatically end the transfer. >> >> The HDMI chip has i2c address 0x72 (8-bit notation) and EDID channel >> 0xa0 (8-bit notation). AFAIK there is only one device at a time on the >> bus, i.e. as soon as I switch sii9022a to access monitor only 0xa0 >> responds to the queries. And I need to send a message to 0x72 ignoring >> normal i2c conditions in order to turn it back in normal mode. >> >> The driver for this HDMI transmitter can be found here: >> http://gitorious.org/efikamx/linux-kernel.git >> (drivers/video/mxc/siihdmi.c) >> >> How can I send this write request without awaiting for ACK? > > Use I2C_M_IGNORE_NAK, see Documentation/i2c/i2c-protocol. Jean, thanks for the tip. I got it working by disabling the omap-i2c driver and enabling i2c-gpio on the same pins. Only in this combination and I2C_M_IGNORE_NAK I could get back to the HDMI chip. OMAP i2c driver/I2C_M_IGNORE_NAK combo is not working. But I still got no chance to try the latest kernel. Yegor -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html