dt-bindings: media: Convert video-mux to DT schema
Now that we have the graph schema, convert the video-mux binding to DT schema. Cc: Sakari Ailus <sakari.ailus@linux.intel.com> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Cc: Mauro Carvalho Chehab <mchehab@kernel.org> Cc: linux-media@vger.kernel.org Signed-off-by: Rob Herring <robh@kernel.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Sakari Ailus <sakari.ailus@linux.intel.com> Link: https://lore.kernel.org/r/20210311234042.1588310-1-robh@kernel.org
This commit is contained in:
parent
c59773d204
commit
3b2e006220
|
@ -1,60 +0,0 @@
|
|||
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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
|
@ -0,0 +1,106 @@
|
|||
# SPDX-License-Identifier: GPL-2.0
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/media/video-mux.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Video Multiplexer
|
||||
|
||||
maintainers:
|
||||
- Sakari Ailus <sakari.ailus@linux.intel.com>
|
||||
- Laurent Pinchart <laurent.pinchart@ideasonboard.com>
|
||||
|
||||
description:
|
||||
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.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: video-mux
|
||||
|
||||
mux-controls:
|
||||
maxItems: 1
|
||||
|
||||
'#address-cells':
|
||||
const: 1
|
||||
|
||||
'#size-cells':
|
||||
const: 0
|
||||
|
||||
ports:
|
||||
$ref: /schemas/graph.yaml#/properties/ports
|
||||
|
||||
patternProperties:
|
||||
'^port@':
|
||||
$ref: /schemas/graph.yaml#/properties/port
|
||||
|
||||
required:
|
||||
- port@0
|
||||
- port@1
|
||||
- port@2
|
||||
|
||||
patternProperties:
|
||||
'^port@':
|
||||
$ref: /schemas/graph.yaml#/properties/port
|
||||
description:
|
||||
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.
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- mux-controls
|
||||
|
||||
oneOf:
|
||||
- required:
|
||||
- ports
|
||||
- required:
|
||||
- port@0
|
||||
- port@1
|
||||
- port@2
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
|
||||
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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
Loading…
Reference in New Issue