Hi Jan, > > +Required properties: > > +- compatible: "i2c-demux-pinctrl" > > +- i2c-parent: List of phandles of I2C masters available for selection. The first > > + one will be used as default. > > +- i2c-bus-name: The name of this bus. Also needed as pinctrl-name for the I2C > > + parents. > [...] > > + i2chdmi: i2c@8 { > > + compatible = "i2c-demux-pinctrl"; > > + i2c-parent = <&gpioi2c>, <&iic2>, <&i2c2>; > > + i2c-bus-name = "i2c-hdmi"; > > + #address-cells = <1>; > > + #size-cells = <0>; > [...] > > + gpioi2c: i2c@9 { > > + #address-cells = <1>; > > + #size-cells = <0>; > > + compatible = "i2c-gpio"; > [...] > > +&i2c2 { > > + pinctrl-0 = <&i2c2_pins>; > > + pinctrl-names = "i2c-hdmi"; > > + > > + clock-frequency = <100000>; > > +}; > [...] > > +&iic2 { > > + pinctrl-0 = <&iic2_pins>; > > + pinctrl-names = "i2c-hdmi"; > > + > > + clock-frequency = <100000>; > > +}; > [...] > > It seems that the demux-pinctrl driver reconfigures the pinctrl settings > for the parent devices. I would have expected to have alternative > pinctrl state on the demux node support switching the same external pins > between the different controllers. Wouldn't it be possible to have > pinctrl conflicts between &i2c2_pins and &iic2_pins otherwise? I don't think so. Before i2c2 is enabled, iic2 gets disabled (status = "disabled" via OF_DYNAMIC) and thus the pins get free. Doing it this way, you could even have something like this: pinctrl-0 = <&iic2_pins>, <&iic2_c_pins>; pinctrl-names = "i2c-hdmi", "i2c-sensors"; which allows you to demux this controller to this or that bus. I haven't tested this, though. Wolfram