--- .../devicetree/bindings/misc/mux-gpio.txt | 79 ++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 Documentation/devicetree/bindings/misc/mux-gpio.txt diff --git a/Documentation/devicetree/bindings/misc/mux-gpio.txt b/Documentation/devicetree/bindings/misc/mux-gpio.txt new file mode 100644 index 000000000000..73699a37824f --- /dev/null +++ b/Documentation/devicetree/bindings/misc/mux-gpio.txt @@ -0,0 +1,79 @@ +GPIO-based multiplexer controller bindings + +Define what GPIO pins are used to control a multiplexer. Or several +multiplexers, if the same pins control more than one multiplexer. + +Required properties: +- compatible : "mux-gpio" +- mux-gpios : list of gpios used to control the multiplexer, least + significant bit first. + +Optional properties: +- idle-state : if present, the state the mux will have when idle. + +Example: + control_mux: control-adc-mux { + compatible = "mux-gpio"; + + mux-gpios = <&pioA 0 GPIO_ACTIVE_HIGH>, + <&pioA 1 GPIO_ACTIVE_HIGH>; + }; + + adc-mux { + compatible = "iio-mux"; + io-channels = <&adc 0>; + io-channel-names = "parent"; + + control-muxes = <&control_mux>; + control-mux-names = "mux"; + + #address-cells = <1>; + #size-cells = <0>; + + sync-1@0 { + reg = <0>; + }; + + in@1 { + reg = <1>; + }; + + out@2 { + reg = <2>; + }; + + sync-2@3 { + reg = <3>; + }; + }; + + i2c-mux { + compatible = "i2c-mux-simple,mux-locked"; + i2c-parent = <&i2c1>; + + control-muxes = <&control_mux>; + control-mux-names = "mux"; + + #address-cells = <1>; + #size-cells = <0>; + + i2c@0 { + reg = <0>; + #address-cells = <1>; + #size-cells = <0>; + + ssd1307: oled@3c { + /* ... */ + }; + }; + + i2c@3 { + reg = <3>; + #address-cells = <1>; + #size-cells = <0>; + + pca9555: pca9555@20 { + /* ... */ + }; + }; + }; -- 2.1.4 -- 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