This is a tool I have been developing for complex I2C bus structures (lsi2c) the output of this should help with this complex multiplexer testing. I was able to overcome the problem by creating persistent paths describing where the devices reside. I will be testing compatibility with this setup. I will be reporting on my test results within a few days. [root@p2020 ~]# ./lsi2c -h Usage: lsi2c [OPTION]... -c, --config-file Specify a config file -C, --print-config Display i2c devices in configuration file -a, --all Print all i2c-devs in bus tree -d, --print-devices Display sysfs i2c devices -t, --tree Print i2c bus and children -p, --path Parse an i2c-dev path -P, --probe Probe an i2c-dev at addr on path -F, --func Print I2C bus functionality -T, --timeout Set adapter timeout in milliseconds -S, --retry-count Set adapter max retry count -h, --help Display this help text -V, --version Display the program version -v, --verbose Be verbose -i, --initialize Initialize devices in configuration file -r, --remove Remove devices in configuration file -k, --kmod Try to initialize i2c_dev kernel module Use `-' after `-c' to read the config file from stdin. [root@p2020 ~]# ./lsi2c -v Searching for i2c devices I2C Adapters: bus: i2c-0 path: 0 type: i2c name: MPC adapter at 0xffe03000 parent: ffe03000.i2c bus: i2c-2 path: 0:0.0 type: mux name: i2c-0-mux (chan_id 0) parent: i2c-0 bus: i2c-3 path: 0:0.1 type: mux name: i2c-0-mux (chan_id 1) parent: i2c-0 bus: i2c-4 path: 0:0.2 type: mux name: i2c-0-mux (chan_id 2) parent: i2c-0 bus: i2c-5 path: 0:0.3 type: mux name: i2c-0-mux (chan_id 3) parent: i2c-0 bus: i2c-6 path: 0:0.4 type: mux name: i2c-0-mux (chan_id 4) parent: i2c-0 bus: i2c-7 path: 0:0.5 type: mux name: i2c-0-mux (chan_id 5) parent: i2c-0 bus: i2c-8 path: 0:0.6 type: mux name: i2c-0-mux (chan_id 6) parent: i2c-0 bus: i2c-9 path: 0:0.7 type: mux name: i2c-0-mux (chan_id 7) parent: i2c-0 bus: i2c-1 path: 1 type: i2c name: MPC adapter at 0xffe03100 parent: ffe03100.i2c bus: i2c-10 path: 1:0.0 type: mux name: i2c-1-mux (chan_id 0) parent: i2c-1 bus: i2c-11 path: 1:0.1 type: mux name: i2c-1-mux (chan_id 1) parent: i2c-1 bus: i2c-18 path: 1:0.1:0.0 type: mux name: i2c-11-mux (chan_id 0) parent: i2c-11 bus: i2c-12 path: 1:0.2 type: mux name: i2c-1-mux (chan_id 2) parent: i2c-1 bus: i2c-40 path: 1:0.2:0.0 type: mux name: i2c-12-mux (chan_id 0) parent: i2c-12 bus: i2c-41 path: 1:0.2:0.0:0.0 type: mux name: i2c-40-mux (chan_id 0) parent: i2c-40 bus: i2c-42 path: 1:0.2:0.0:0.1 type: mux name: i2c-40-mux (chan_id 1) parent: i2c-40 bus: i2c-43 path: 1:0.2:0.0:0.2 type: mux name: i2c-40-mux (chan_id 2) parent: i2c-40 bus: i2c-44 path: 1:0.2:0.0:0.3 type: mux name: i2c-40-mux (chan_id 3) parent: i2c-40 bus: i2c-45 path: 1:0.2:0.0:0.4 type: mux name: i2c-40-mux (chan_id 4) parent: i2c-40 bus: i2c-46 path: 1:0.2:0.0:0.5 type: mux name: i2c-40-mux (chan_id 5) parent: i2c-40 bus: i2c-47 path: 1:0.2:0.0:0.6 type: mux name: i2c-40-mux (chan_id 6) parent: i2c-40 bus: i2c-48 path: 1:0.2:0.0:0.7 type: mux name: i2c-40-mux (chan_id 7) parent: i2c-40 bus: i2c-49 path: 1:0.2:0.0:1.0 type: mux name: i2c-40-mux (chan_id 0) parent: i2c-40 bus: i2c-50 path: 1:0.2:0.0:1.1 type: mux name: i2c-40-mux (chan_id 1) parent: i2c-40 bus: i2c-51 path: 1:0.2:0.0:1.2 type: mux name: i2c-40-mux (chan_id 2) parent: i2c-40 bus: i2c-52 path: 1:0.2:0.0:1.3 type: mux name: i2c-40-mux (chan_id 3) parent: i2c-40 bus: i2c-53 path: 1:0.2:0.0:1.4 type: mux name: i2c-40-mux (chan_id 4) parent: i2c-40 bus: i2c-54 path: 1:0.2:0.0:1.5 type: mux name: i2c-40-mux (chan_id 5) parent: i2c-40 bus: i2c-55 path: 1:0.2:0.0:1.6 type: mux name: i2c-40-mux (chan_id 6) parent: i2c-40 bus: i2c-56 path: 1:0.2:0.0:1.7 type: mux name: i2c-40-mux (chan_id 7) parent: i2c-40 bus: i2c-13 path: 1:0.3 type: mux name: i2c-1-mux (chan_id 3) parent: i2c-1 bus: i2c-23 path: 1:0.3:0.0 type: mux name: i2c-13-mux (chan_id 0) parent: i2c-13 bus: i2c-24 path: 1:0.3:0.0:0.0 type: mux name: i2c-23-mux (chan_id 0) parent: i2c-23 bus: i2c-25 path: 1:0.3:0.0:0.1 type: mux name: i2c-23-mux (chan_id 1) parent: i2c-23 bus: i2c-26 path: 1:0.3:0.0:0.2 type: mux name: i2c-23-mux (chan_id 2) parent: i2c-23 bus: i2c-27 path: 1:0.3:0.0:0.3 type: mux name: i2c-23-mux (chan_id 3) parent: i2c-23 bus: i2c-28 path: 1:0.3:0.0:0.4 type: mux name: i2c-23-mux (chan_id 4) parent: i2c-23 bus: i2c-29 path: 1:0.3:0.0:0.5 type: mux name: i2c-23-mux (chan_id 5) parent: i2c-23 bus: i2c-30 path: 1:0.3:0.0:0.6 type: mux name: i2c-23-mux (chan_id 6) parent: i2c-23 bus: i2c-31 path: 1:0.3:0.0:0.7 type: mux name: i2c-23-mux (chan_id 7) parent: i2c-23 bus: i2c-32 path: 1:0.3:0.0:1.0 type: mux name: i2c-23-mux (chan_id 0) parent: i2c-23 bus: i2c-33 path: 1:0.3:0.0:1.1 type: mux name: i2c-23-mux (chan_id 1) parent: i2c-23 bus: i2c-34 path: 1:0.3:0.0:1.2 type: mux name: i2c-23-mux (chan_id 2) parent: i2c-23 bus: i2c-35 path: 1:0.3:0.0:1.3 type: mux name: i2c-23-mux (chan_id 3) parent: i2c-23 bus: i2c-36 path: 1:0.3:0.0:1.4 type: mux name: i2c-23-mux (chan_id 4) parent: i2c-23 bus: i2c-37 path: 1:0.3:0.0:1.5 type: mux name: i2c-23-mux (chan_id 5) parent: i2c-23 bus: i2c-38 path: 1:0.3:0.0:1.6 type: mux name: i2c-23-mux (chan_id 6) parent: i2c-23 bus: i2c-39 path: 1:0.3:0.0:1.7 type: mux name: i2c-23-mux (chan_id 7) parent: i2c-23 bus: i2c-14 path: 1:0.4 type: mux name: i2c-1-mux (chan_id 4) parent: i2c-1 bus: i2c-19 path: 1:0.4:0.0 type: mux name: i2c-14-mux (chan_id 0) parent: i2c-14 bus: i2c-15 path: 1:0.5 type: mux name: i2c-1-mux (chan_id 5) parent: i2c-1 bus: i2c-20 path: 1:0.5:0.0 type: mux name: i2c-15-mux (chan_id 0) parent: i2c-15 bus: i2c-16 path: 1:0.6 type: mux name: i2c-1-mux (chan_id 6) parent: i2c-1 bus: i2c-21 path: 1:0.6:0.0 type: mux name: i2c-16-mux (chan_id 0) parent: i2c-16 bus: i2c-17 path: 1:0.7 type: mux name: i2c-1-mux (chan_id 7) parent: i2c-1 bus: i2c-22 path: 1:0.7:0.0 type: mux name: i2c-17-mux (chan_id 0) parent: i2c-17 Count: 57 [root@p2020 ~]# ./lsi2c -v -d Searching for i2c devices I2C Devices: bus=0 type=i2c bus_path=0 address=0x70 name=pca9548 driver=pca954x module=(null) bus=6 type=mux bus_path=0:0.4 address=0x68 name=ds1339 driver=rtc-ds1307 module=(null) bus=1 type=i2c bus_path=1 address=0x74 name=pca9548 driver=pca954x module=(null) bus=11 type=mux bus_path=1:0.1 address=0x73 name=pca9541 driver=pca9541 module=(null) bus=12 type=mux bus_path=1:0.2 address=0x70 name=pca9541 driver=pca9541 module=(null) bus=40 type=mux bus_path=1:0.2:0.0 address=0x73 name=pca9547 driver=pca954x module=(null) bus=40 type=mux bus_path=1:0.2:0.0 address=0x71 name=pca9547 driver=pca954x module=(null) bus=13 type=mux bus_path=1:0.3 address=0x70 name=pca9541 driver=pca9541 module=(null) bus=23 type=mux bus_path=1:0.3:0.0 address=0x73 name=pca9547 driver=pca954x module=(null) bus=23 type=mux bus_path=1:0.3:0.0 address=0x71 name=pca9547 driver=pca954x module=(null) bus=14 type=mux bus_path=1:0.4 address=0x73 name=pca9541 driver=pca9541 module=(null) bus=15 type=mux bus_path=1:0.5 address=0x73 name=pca9541 driver=pca9541 module=(null) bus=16 type=mux bus_path=1:0.6 address=0x73 name=pca9541 driver=pca9541 module=(null) bus=17 type=mux bus_path=1:0.7 address=0x73 name=pca9541 driver=pca9541 module=(null) Count: 10 On Mon, Nov 3, 2014 at 11:33 PM, Wolfram Sang <wsa@xxxxxxxxxxxxx> wrote: >> > What is your muxing setup? >> > >> Complicated ;-). > > ... > > Ooooookay... well, for testing these patches, your setup is absolutely > awesome, of course :D May I ask what you are doing with that amount of > I2C? > -- - Danielle Costantino -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html