Re: MC44S803 frontend (it works)

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

 



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

[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux