Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

+106 -60
-60
Documentation/devicetree/bindings/media/video-mux.txt
··· 1 - Video Multiplexer 2 - ================= 3 - 4 - Video multiplexers allow to select between multiple input ports. Video received 5 - on the active input port is passed through to the output port. Muxes described 6 - by this binding are controlled by a multiplexer controller that is described by 7 - the bindings in Documentation/devicetree/bindings/mux/mux-controller.txt 8 - 9 - Required 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 - 18 - Optionally, #address-cells, #size-cells, and port nodes can be grouped under a 19 - ports node as described in Documentation/devicetree/bindings/graph.txt. 20 - 21 - Example: 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 - };
+106
Documentation/devicetree/bindings/media/video-mux.yaml
··· 1 + # 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 + 7 + title: Video Multiplexer 8 + 9 + maintainers: 10 + - Sakari Ailus <sakari.ailus@linux.intel.com> 11 + - Laurent Pinchart <laurent.pinchart@ideasonboard.com> 12 + 13 + description: 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 + 18 + properties: 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 + 43 + patternProperties: 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 + 51 + required: 52 + - compatible 53 + - mux-controls 54 + 55 + oneOf: 56 + - required: 57 + - ports 58 + - required: 59 + - port@0 60 + - port@1 61 + - port@2 62 + 63 + additionalProperties: false 64 + 65 + examples: 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 + ...