162306a36Sopenharmony_ciXilinx Video IP Pipeline (VIPP)
262306a36Sopenharmony_ci-------------------------------
362306a36Sopenharmony_ci
462306a36Sopenharmony_ciGeneral concept
562306a36Sopenharmony_ci---------------
662306a36Sopenharmony_ci
762306a36Sopenharmony_ciXilinx video IP pipeline processes video streams through one or more Xilinx
862306a36Sopenharmony_civideo IP cores. Each video IP core is represented as documented in video.txt
962306a36Sopenharmony_ciand IP core specific documentation, xlnx,v-*.txt, in this directory. The DT
1062306a36Sopenharmony_cinode of the VIPP represents as a top level node of the pipeline and defines
1162306a36Sopenharmony_cimappings between DMAs and the video IP cores.
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciRequired properties:
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci- compatible: Must be "xlnx,video".
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci- dmas, dma-names: List of one DMA specifier and identifier string (as defined
1862306a36Sopenharmony_ci  in Documentation/devicetree/bindings/dma/dma.txt) per port. Each port
1962306a36Sopenharmony_ci  requires a DMA channel with the identifier string set to "port" followed by
2062306a36Sopenharmony_ci  the port index.
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ci- ports: Video port, using the DT bindings defined in ../video-interfaces.txt.
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ciRequired port properties:
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ci- direction: should be either "input" or "output" depending on the direction
2762306a36Sopenharmony_ci  of stream.
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ciExample:
3062306a36Sopenharmony_ci
3162306a36Sopenharmony_ci	video_cap {
3262306a36Sopenharmony_ci		compatible = "xlnx,video";
3362306a36Sopenharmony_ci		dmas = <&vdma_1 1>, <&vdma_3 1>;
3462306a36Sopenharmony_ci		dma-names = "port0", "port1";
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci		ports {
3762306a36Sopenharmony_ci			#address-cells = <1>;
3862306a36Sopenharmony_ci			#size-cells = <0>;
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci			port@0 {
4162306a36Sopenharmony_ci				reg = <0>;
4262306a36Sopenharmony_ci				direction = "input";
4362306a36Sopenharmony_ci				vcap0_in0: endpoint {
4462306a36Sopenharmony_ci					remote-endpoint = <&scaler0_out>;
4562306a36Sopenharmony_ci				};
4662306a36Sopenharmony_ci			};
4762306a36Sopenharmony_ci			port@1 {
4862306a36Sopenharmony_ci				reg = <1>;
4962306a36Sopenharmony_ci				direction = "input";
5062306a36Sopenharmony_ci				vcap0_in1: endpoint {
5162306a36Sopenharmony_ci					remote-endpoint = <&switch_out1>;
5262306a36Sopenharmony_ci				};
5362306a36Sopenharmony_ci			};
5462306a36Sopenharmony_ci		};
5562306a36Sopenharmony_ci	};
56