On 08/07/2019 16:44, Enrico Weigelt wrote:

> On 08.07.19 13:08, Marc Gonzalez wrote:
> 
>> The tuner (si2157) is not on the i2c5 bus, instead it is on a private
>> i2c bus *behind* si2168, which routes requests to the proper client.
> 
> Should the si2168 make up its own i2c controller ?

It does AFAIU ;-)

https://elixir.bootlin.com/linux/latest/source/drivers/media/dvb-frontends/si2168.c#L780

        /* create mux i2c adapter for tuner */
        dev->muxc = i2c_mux_alloc(client->adapter, &client->dev, 1, 0, 
I2C_MUX_LOCKED, si2168_select, si2168_deselect);

        ret = i2c_mux_add_adapter(dev->muxc, 0, 0, 0);

        /* this is the new internal i2c bus */
        struct i2c_adapter *si2168_bus = dev->muxc->adapter[0];


One problem is that since the internal bus is "created" (declared?) at run-time,
it doesn't seem possible to define it (or its client) in DT.

Regards.

Reply via email to