Re: cx231xx review of i2c handling

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

 



On Fri, 2009-03-13 at 00:32 +0100, Hans Verkuil wrote:
> Hi Sri,
> 
> Here is a review of the i2c part of this driver, together with pointers on 
> how to proceed to convert it to v4l2_device/v4l2_subdev.
> 
> Time permitting I hope to look at the v4l2 implementation in the driver as 
> well over the weekend, but the i2c part is for me the most urgent issue at 
> the moment as you've no doubt guessed by now :-)
> 
> Although I couldn't help noticing this typo:
> 
> cx231xx-cards.c:                cx231xx_info("Board is Conexnat RDE 250\n");
> cx231xx-cards.c:                cx231xx_info("Board is Conexnat RDU 250\n");
> 
> :-)
> 
> Looking at cx231xx-i2c.c I see it has the following devices:
> 
> 0x32: Geminit III
> 0x02: Acquarius
> 0xa0: eeprom
> 0x60: Colibri
> 0x8e: IR
> 0x80/0x88: Hammerhead
> 
> And it also uses an external tuner.
> 
> It is my understanding that these devices are integrated on the cx231xx and 
> so are completely internal to it:
> 
> Geminit III, Acquarius, Colibri, Hammerhead.
> 
> Is the eeprom also internal, or is it external?
> 
> Why can Hammerhead be at two addresses? Since it is an integral device I'd 
> expect that the address would be fixed. Or are there two Hammerheads? 
> Looking at the source I'd say that it can only be at address 0x88.
> 
> A general note: please add a description in the cx231xx.h header or in 
> another suitable place for each of these devices. The codenames themselves 
> do not give much of an idea of what the device actually does.

Hans,

The public product brief for the CX23100, CX23101, CX23102 (Polaris?) is
here:

http://www.conexant.com/products/entry.jsp?id=552
http://www.conexant.com/servlets/DownloadServlet/PBR-201370-004.pdf?docid=1371&revid=4

There's a block diagram on the second page of the PDF and a table on the
first page showing that the CX23100 and CX23101 do not have the full
complement of internal components that the CX23102 has.

Since a Hammerhead is a shark as is a Mako, and since the CX25843
firmware is often refered to *MakoC.rom in the Windows drivers, I
guessed that the Hammerhead was an A/V digitizer.  I see you've
confirmed that from the code.  From the product brief, it looks like the
internal Hammerhead is not in the CX23100.

>From the code, it looks like the Colibri is the integrated Analog IF
demodulator.  If true, this unit is also not in the CX23100.  Thus an
analog IF demod and AV digitizer could be external to a CX23100 (but one
would have to wonder why an integrator wouuld ever do that...)

>From the code, the Flatiron looks like an Audio source and has at least
one ADC (sigma-delta) and an Audio Mux to select it's ADC or another
source for audio.  I'm guessing this is the 18 bit audio ADCs onblock on
the diagram.

According to the board entries for dmeod I2C addresses both the Gemini
III and Aquarius are demodulators.  Since the code mentions attaching
the s5h1411 module, sh51411.h mentions I2C addresses 0x32 and 0x34, and
the cx231xx code mentions the Gemini III is at 0x32, then I assume the
Gemini III is a s5h1411.  There is no mention of a linux driver for the
Aquarius I2C address.

The Product brief doesn't show an EEPROM nor does it call one out.  I'll
bet it is not internal to the Polaris.

And that's all I can deduce from publicly available information.


But the *big* question is my mind is why the unit is called Polaris and
not Ursa Minor?  The demods got named after whole constellations, and
not just a single star in one. ;)


Regards,
Andy



--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux