1df330515SLaurent PinchartXilinx Video IP Pipeline (VIPP)
2df330515SLaurent Pinchart-------------------------------
3df330515SLaurent Pinchart
4df330515SLaurent PinchartGeneral concept
5df330515SLaurent Pinchart---------------
6df330515SLaurent Pinchart
7df330515SLaurent PinchartXilinx video IP pipeline processes video streams through one or more Xilinx
8df330515SLaurent Pinchartvideo IP cores. Each video IP core is represented as documented in video.txt
9df330515SLaurent Pinchartand IP core specific documentation, xlnx,v-*.txt, in this directory. The DT
10df330515SLaurent Pinchartnode of the VIPP represents as a top level node of the pipeline and defines
11df330515SLaurent Pinchartmappings between DMAs and the video IP cores.
12df330515SLaurent Pinchart
13df330515SLaurent PinchartRequired properties:
14df330515SLaurent Pinchart
15df330515SLaurent Pinchart- compatible: Must be "xlnx,video".
16df330515SLaurent Pinchart
17df330515SLaurent Pinchart- dmas, dma-names: List of one DMA specifier and identifier string (as defined
18df330515SLaurent Pinchart  in Documentation/devicetree/bindings/dma/dma.txt) per port. Each port
19df330515SLaurent Pinchart  requires a DMA channel with the identifier string set to "port" followed by
20df330515SLaurent Pinchart  the port index.
21df330515SLaurent Pinchart
22df330515SLaurent Pinchart- ports: Video port, using the DT bindings defined in ../video-interfaces.txt.
23df330515SLaurent Pinchart
24df330515SLaurent PinchartRequired port properties:
25df330515SLaurent Pinchart
26df330515SLaurent Pinchart- direction: should be either "input" or "output" depending on the direction
27df330515SLaurent Pinchart  of stream.
28df330515SLaurent Pinchart
29df330515SLaurent PinchartExample:
30df330515SLaurent Pinchart
31df330515SLaurent Pinchart	video_cap {
32df330515SLaurent Pinchart		compatible = "xlnx,video";
33df330515SLaurent Pinchart		dmas = <&vdma_1 1>, <&vdma_3 1>;
34df330515SLaurent Pinchart		dma-names = "port0", "port1";
35df330515SLaurent Pinchart
36df330515SLaurent Pinchart		ports {
37df330515SLaurent Pinchart			#address-cells = <1>;
38df330515SLaurent Pinchart			#size-cells = <0>;
39df330515SLaurent Pinchart
40df330515SLaurent Pinchart			port@0 {
41df330515SLaurent Pinchart				reg = <0>;
42df330515SLaurent Pinchart				direction = "input";
43df330515SLaurent Pinchart				vcap0_in0: endpoint {
44df330515SLaurent Pinchart					remote-endpoint = <&scaler0_out>;
45df330515SLaurent Pinchart				};
46df330515SLaurent Pinchart			};
47df330515SLaurent Pinchart			port@1 {
48df330515SLaurent Pinchart				reg = <1>;
49df330515SLaurent Pinchart				direction = "input";
50df330515SLaurent Pinchart				vcap0_in1: endpoint {
51df330515SLaurent Pinchart					remote-endpoint = <&switch_out1>;
52df330515SLaurent Pinchart				};
53df330515SLaurent Pinchart			};
54df330515SLaurent Pinchart		};
55df330515SLaurent Pinchart	};
56