xref: /freebsd/sys/contrib/device-tree/Bindings/media/video-mux.txt (revision e1c4c8dd8d2d10b6104f06856a77bd5b4813a801)
1Video Multiplexer
2=================
3
4Video multiplexers allow to select between multiple input ports. Video received
5on the active input port is passed through to the output port. Muxes described
6by this binding are controlled by a multiplexer controller that is described by
7the bindings in Documentation/devicetree/bindings/mux/mux-controller.txt
8
9Required properties:
10- compatible : should be "video-mux"
11- mux-controls : mux controller node to use for operating the mux
12- #address-cells: should be <1>
13- #size-cells: should be <0>
14- port@*: at least three port nodes containing endpoints connecting to the
15  source and sink devices according to of_graph bindings. The last port is
16  the output port, all others are inputs.
17
18Optionally, #address-cells, #size-cells, and port nodes can be grouped under a
19ports node as described in Documentation/devicetree/bindings/graph.txt.
20
21Example:
22
23	mux: mux-controller {
24		compatible = "gpio-mux";
25		#mux-control-cells = <0>;
26
27		mux-gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
28	};
29
30	video-mux {
31		compatible = "video-mux";
32		mux-controls = <&mux>;
33		#address-cells = <1>;
34		#size-cells = <0>;
35
36		port@0 {
37			reg = <0>;
38
39			mux_in0: endpoint {
40				remote-endpoint = <&video_source0_out>;
41			};
42		};
43
44		port@1 {
45			reg = <1>;
46
47			mux_in1: endpoint {
48				remote-endpoint = <&video_source1_out>;
49			};
50		};
51
52		port@2 {
53			reg = <2>;
54
55			mux_out: endpoint {
56				remote-endpoint = <&capture_interface_in>;
57			};
58		};
59	};
60};
61