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.