|
@@ -0,0 +1,60 @@
|
|
|
+Video Multiplexer
|
|
|
+=================
|
|
|
+
|
|
|
+Video multiplexers allow to select between multiple input ports. Video received
|
|
|
+on the active input port is passed through to the output port. Muxes described
|
|
|
+by this binding are controlled by a multiplexer controller that is described by
|
|
|
+the bindings in Documentation/devicetree/bindings/mux/mux-controller.txt
|
|
|
+
|
|
|
+Required properties:
|
|
|
+- compatible : should be "video-mux"
|
|
|
+- mux-controls : mux controller node to use for operating the mux
|
|
|
+- #address-cells: should be <1>
|
|
|
+- #size-cells: should be <0>
|
|
|
+- port@*: at least three port nodes containing endpoints connecting to the
|
|
|
+ source and sink devices according to of_graph bindings. The last port is
|
|
|
+ the output port, all others are inputs.
|
|
|
+
|
|
|
+Optionally, #address-cells, #size-cells, and port nodes can be grouped under a
|
|
|
+ports node as described in Documentation/devicetree/bindings/graph.txt.
|
|
|
+
|
|
|
+Example:
|
|
|
+
|
|
|
+ mux: mux-controller {
|
|
|
+ compatible = "gpio-mux";
|
|
|
+ #mux-control-cells = <0>;
|
|
|
+
|
|
|
+ mux-gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
|
|
|
+ };
|
|
|
+
|
|
|
+ video-mux {
|
|
|
+ compatible = "video-mux";
|
|
|
+ mux-controls = <&mux>;
|
|
|
+ #address-cells = <1>;
|
|
|
+ #size-cells = <0>;
|
|
|
+
|
|
|
+ port@0 {
|
|
|
+ reg = <0>;
|
|
|
+
|
|
|
+ mux_in0: endpoint {
|
|
|
+ remote-endpoint = <&video_source0_out>;
|
|
|
+ };
|
|
|
+ };
|
|
|
+
|
|
|
+ port@1 {
|
|
|
+ reg = <1>;
|
|
|
+
|
|
|
+ mux_in1: endpoint {
|
|
|
+ remote-endpoint = <&video_source1_out>;
|
|
|
+ };
|
|
|
+ };
|
|
|
+
|
|
|
+ port@2 {
|
|
|
+ reg = <2>;
|
|
|
+
|
|
|
+ mux_out: endpoint {
|
|
|
+ remote-endpoint = <&capture_interface_in>;
|
|
|
+ };
|
|
|
+ };
|
|
|
+ };
|
|
|
+};
|