blob: 2f28a7dad93fb50c8947ab230d7e5d2fce676692 [file] [log] [blame]
Tom Rini53633a82024-02-29 12:33:36 -05001# SPDX-License-Identifier: GPL-2.0
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/media/video-mux.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Video Multiplexer
8
9maintainers:
10 - Sakari Ailus <sakari.ailus@linux.intel.com>
11 - Laurent Pinchart <laurent.pinchart@ideasonboard.com>
12
13description:
14 Video multiplexers allow to select between multiple input ports. Video
15 received on the active input port is passed through to the output port. Muxes
16 described by this binding are controlled by a multiplexer controller.
17
18properties:
19 compatible:
20 const: video-mux
21
22 mux-controls:
23 maxItems: 1
24
25 '#address-cells':
26 const: 1
27
28 '#size-cells':
29 const: 0
30
31 ports:
32 $ref: /schemas/graph.yaml#/properties/ports
33
34 patternProperties:
35 '^port@':
36 $ref: /schemas/graph.yaml#/properties/port
37
38 required:
39 - port@0
40 - port@1
41 - port@2
42
43patternProperties:
44 '^port@':
45 $ref: /schemas/graph.yaml#/properties/port
46 description:
47 At least three port nodes containing endpoints connecting to the source
48 and sink devices according to of_graph bindings. The last port is the
49 output port, all others are inputs.
50
51required:
52 - compatible
53 - mux-controls
54
55oneOf:
56 - required:
57 - ports
58 - required:
59 - port@0
60 - port@1
61 - port@2
62
63additionalProperties: false
64
65examples:
66 - |
67 #include <dt-bindings/gpio/gpio.h>
68
69 mux: mux-controller {
70 compatible = "gpio-mux";
71 #mux-control-cells = <0>;
72
73 mux-gpios = <&gpio1 15 GPIO_ACTIVE_HIGH>;
74 };
75
76 video-mux {
77 compatible = "video-mux";
78 mux-controls = <&mux>;
79 #address-cells = <1>;
80 #size-cells = <0>;
81
82 port@0 {
83 reg = <0>;
84
85 mux_in0: endpoint {
86 remote-endpoint = <&video_source0_out>;
87 };
88 };
89
90 port@1 {
91 reg = <1>;
92
93 mux_in1: endpoint {
94 remote-endpoint = <&video_source1_out>;
95 };
96 };
97
98 port@2 {
99 reg = <2>;
100
101 mux_out: endpoint {
102 remote-endpoint = <&capture_interface_in>;
103 };
104 };
105 };
106...