I would know this information because if I wanted to use Intel Edison without Arduino board I don't know, for example, how to remove support for these IO expanders or use an IO expander with another I2C address or add GPIOs mapped on IO expander outputs.
The I2C1 wiring is not exposed on the Arduino board because it is directly connected to the PCAL9555 to provide all of the pin-muxing capabilities. I suggest you to use mini breakout board where you have access to I2C1 and I2C6 through the 70-pin connector.
2 of 2 people found this helpful
Then, in which point kernel is learned to search IO expanders at I2C addresses 0x20, 0x21, 0x22 and 0x23.
The board is SFI (Simple Firmware Interface) enabled, from that the kernel takes DEVS table and parses it.
You may check SFI 0.8.2 specification and dump table from /sys/firmware/sfi/tables/DEVS.