Hello Frank, On Thu, Apr 04, 2024 at 12:19:13PM -0400, Frank Li wrote: > imx8qxp-mek use two kind audio codec, wm8960 and wm8962. Using dummy gpio > i2c bus mux to connect both i2c devices. One will probe failure and other > will probe success when devices driver check whoami. So one dtb can cover > both board configuration. > > Signed-off-by: Frank Li <Frank.Li@xxxxxxx> > --- > arch/arm64/boot/dts/freescale/imx8qxp-mek.dts | 210 ++++++++++++++++++ > 1 file changed, 210 insertions(+) > > diff --git a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts b/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts > index 8360bb851ac03..adff87c7cf305 100644 > --- a/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts > +++ b/arch/arm64/boot/dts/freescale/imx8qxp-mek.dts > @@ -44,6 +51,105 @@ usb3_data_ss: endpoint { [...] > + /* > + * This dummy i2c mux. GPIO actually will not impact selection. At actual boards, only 1 > + * device connectted. I2C client driver will check ID when probe. Only matched ID's driver > + * probe successfully. > + */ > + i2cvmux: i2cmux { > + compatible = "i2c-mux-gpio"; > + #address-cells = <1>; > + #size-cells = <0>; > + mux-gpios = <&lsio_gpio5 0 GPIO_ACTIVE_HIGH>; /* use an unused gpio */ There is for sure people that have more experience and competency that me and it would be interesting to hear their feedback, but this looks like a bad hack, and you are just playing with the driver behavior to ensure that you get what you need. Francesco