mirror of
https://github.com/torvalds/linux.git
synced 2024-12-25 20:32:22 +00:00
f6689802eb
Analog Devices ADG792A/G is a triple 4:1 mux. Acked-by: Jonathan Cameron <jic23@kernel.org> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Peter Rosin <peda@axentia.se> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
76 lines
1.9 KiB
Plaintext
76 lines
1.9 KiB
Plaintext
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.txt
|
|
|
|
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";
|
|
};
|