Unchanged from the original RFC where I said: We need to populate our I2C devices from the device tree, but some of our systems have multiplexers which currently break this process. The basic idea is to have the generic i2c-mux framework propagate the device_node for the child bus into the corresponding i2c_adapter, and then call of_i2c_register_devices(). This means that the device tree bindings for *all* i2c muxes must have some common properties. I try to document these in mux.txt. This is now tested against 3.1.0-rc3 and seems to be working well. David Daney (2): i2c: Add a struct device * parameter to i2c_add_mux_adapter() i2c/of: Automatically populate i2c mux busses from device tree data. Documentation/devicetree/bindings/i2c/mux.txt | 54 +++++++++++++++++++++++++ drivers/i2c/i2c-mux.c | 44 ++++++++++++++++---- drivers/i2c/muxes/gpio-i2cmux.c | 3 +- drivers/i2c/muxes/pca9541.c | 3 +- drivers/i2c/muxes/pca954x.c | 2 +- include/linux/i2c-mux.h | 3 +- 6 files changed, 96 insertions(+), 13 deletions(-) create mode 100644 Documentation/devicetree/bindings/i2c/mux.txt -- 1.7.2.3 -- 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