Bindings for Analog Devices ADG792A/G Triple 4:1 Multiplexers Required properties: - compatible : "adi,adg792a" or "adi,adg792g" - #mux-control-cells : <0> if parallel (the three muxes are bound together with a single mux controller controlling all three muxes), or <1> if not (one mux controller for each mux). * Standard mux-controller bindings as described in mux-controller.yaml Optional properties for ADG792G: - gpio-controller : if present, #gpio-cells below is required. - #gpio-cells : should be <2> - First cell is the GPO line number, i.e. 0 or 1 - Second cell is used to specify active high (0) or active low (1) Optional properties: - idle-state : if present, array of states that the mux controllers will have when idle. The special state MUX_IDLE_AS_IS is the default and MUX_IDLE_DISCONNECT is also supported. States 0 through 3 correspond to signals A through D in the datasheet. Example: /* * Three independent mux controllers (of which one is used). * Mux 0 is disconnected when idle, mux 1 idles in the previously * selected state and mux 2 idles with signal B. */ &i2c0 { mux: mux-controller@50 { compatible = "adi,adg792a"; reg = <0x50>; #mux-control-cells = <1>; idle-state = <MUX_IDLE_DISCONNECT MUX_IDLE_AS_IS 1>; }; }; adc-mux { compatible = "io-channel-mux"; io-channels = <&adc 0>; io-channel-names = "parent"; mux-controls = <&mux 2>; channels = "sync-1", "", "out"; }; /* * Three parallel muxes with one mux controller, useful e.g. if * the adc is differential, thus needing two signals to be muxed * simultaneously for correct operation. */ &i2c0 { pmux: mux-controller@50 { compatible = "adi,adg792a"; reg = <0x50>; #mux-control-cells = <0>; idle-state = <1>; }; }; diff-adc-mux { compatible = "io-channel-mux"; io-channels = <&adc 0>; io-channel-names = "parent"; mux-controls = <&pmux>; channels = "sync-1", "", "out"; };