[linux-dvb] bus control

Manu Abraham abraham.manu at gmail.com
Mon Jul 23 01:56:56 CEST 2007

On 7/23/07, Manu Abraham <abraham.manu at gmail.com> wrote:
> Hi all,
> On one of the devices that i am working upon, it has a bus control entity. ie
> The device looks like this
> The device consists of
> 1) a BUS Interface Unit
> 2) on this bus Interface unit (BIU) there is one single physical I2C bus
> 3) a built in MASTER demodulator
> The I2C bus on the device is _not_ directly connected to any
> peripherals such as demods and or tuners.
> The bus goes to a control unit where the bus is split into 2 based on
> a control word sent to the  Bus Control Unit (BCU)
> The split out bus goes out like this
> 1) goes to the MASTER tuner for the built in demodulator
> 2) goes to a SLAVE demodulator, which has just one switchable I2C
> output for the tuner
> ie , the configuration looks like 2, 2 way switches cascaded together,
> when the MASTER and SLAVE demodulators are cascaded.
> Looking at the device and thinking a lot, i don't see how the control
> can fit in as a part of the frontend at all, as the it has nothing to
> do with the frontend, but just the BIU.
> Some thought that i have, at present go like this
> * register independant virtual buses for each device, on device
> access, the relevant control word is appended to the BIU device
> register.
> * have one bus alone, but add a control for the bus such that the
> control can be initiated from some place, but as i explained, this
> control is not on the frontend/demodulator but on the Host controller.

Replying to my own mail: one second thoughts wondered whether i was
abstract a bit. Other than that when Christoph asked me on IRC on the
same, figured out that it was indeed a bit so.

The device what i mentioned has 2 demodulators and 2 tuners on one
physical I2C bus, which are accessed by selectively switching between
them, since the I2C addresses for the demods are the same. The only
separation being the switch.

So eventually, since words can be abstract, i prefer to depict it with
some code and comments alongwith. Attached is the code that would
control the tuner as well as the MASTER/SLAVE demods.

A note to Patrick: currently i am using the dvb-usb infrastructure. In
the current state dvb-usb uses one single I2C bus, if i were to use
virtual busses to utilize the MASTER/SLAVE combination, with a Control
Word Magic being sent to the device at the time of accessing the
virtual bus, eventually it goes down through the same physical bus.

The issue that i a facing i have depicted as comments in the code itself

-------------- next part --------------
A non-text attachment was scrubbed...
Name: af901x_i2c_gate.c
Type: text/x-csrc
Size: 2641 bytes
Desc: not available
Url : http://www.linuxtv.org/pipermail/linux-dvb/attachments/20070723/45de9ec3/attachment-0001.c 

More information about the linux-dvb mailing list