Hi Antti, >> Yes. Currently, MC44S803 uses a READ in mc44s80x_get_devid() to check the ID register. >> According to the spec from freescale, a READ needs to be a seperate I2c transaction, >> because the STOP bit is used to latch the address registers. That's the reason why a >> dedicated READ support is needed (most other tuners use a WRITE / READ combined I2c >> transaction instead). > > OK. Maybe comment to the code is required, but I can add it. I am > willing to see, if you have, usb-sniffs for tuner read and write. there is documentation for this tuner at the freescale web page: http://www.freescale.com/files/rf_if/doc/data_sheet/MC44S803.pdf?pspll=1 >From page 8: I2C OPERATION The same 24-bit shift register is used to shift data in and out of the part. The input data stream is clocked in on the rising edge of SCLK into the shift register with the MSB first. The IC Address and R/W bit are sent first. This allows the IC to determine if it is the device that is being communicated with. After that, 24 bits are clocked in to control the IC. If less than 24 bits are required, then 16 or 8 bits could be used. In other words, commands can be sent in 1, 2, or 3 byte increments depending on the requirements for the particular control register you are writing to. Data can be read back from the IC in 1, 2, or 3 byte increments also. The Master controls the clock line, whether writing to the part or reading from it. After each byte that is sent, the device that receives it sends an acknowledge bit. The output data stream is clocked out of the shift register on the falling edge of SCLK and valid on the rising edge, with the MSB first. The data stored in the shift register is loaded into one of the appropriate registers after the Stop Condition is sent. The 4 LSBs are the Control Register Address Bits. This means a READ needs to be implemented using 2 transactions. One transaction to write the address and one to read the value back. The read operations are specified on pages 22 and 23: There are 16 Data Registers that can be read back from the IC. The 1011 Control Register (Data Register Address) controls which of these Data Registers will be read out of the IC during the next read operation. To select the desired Data Register this address register first needs to be set. Then on the next read operation the desired data will be available. Currently the driver only reads the ID bits to verify it's talking to a MC44S80x chip. The READ operation was modeled after the "official" driver from TerraTec: ftp://ftp.terratec.net/Receiver/Cinergy_T_USB_XE/Update/Cinergy_T_USB_XE_MKII_Drv_Linux.zip >>> Maybe I can move MC44S803 and needed AF9015 changes to my devel tree at >>> linuxtv.org... But that does not change problem that tuner is not still >>> in v4l-dvb-master nor coming for Kernel before Manu will pull it. >> Unfortunately, i didn't see any comments from Manu yet... > > we will waiting... OK, we'll do. Thanks, Jochen _______________________________________________ linux-dvb users mailing list For V4L/DVB development, please use instead linux-media@xxxxxxxxxxxxxxx linux-dvb@xxxxxxxxxxx http://www.linuxtv.org/cgi-bin/mailman/listinfo/linux-dvb