Documentation / devicetree / bindings / mux / adi,adg792a.txt


Based on kernel version 6.8. Page generated on 2024-03-11 21:26 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75
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";
	};