18c2ecf20Sopenharmony_ciXilinx Video IP Pipeline (VIPP) 28c2ecf20Sopenharmony_ci------------------------------- 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ciGeneral concept 58c2ecf20Sopenharmony_ci--------------- 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_ciXilinx video IP pipeline processes video streams through one or more Xilinx 88c2ecf20Sopenharmony_civideo IP cores. Each video IP core is represented as documented in video.txt 98c2ecf20Sopenharmony_ciand IP core specific documentation, xlnx,v-*.txt, in this directory. The DT 108c2ecf20Sopenharmony_cinode of the VIPP represents as a top level node of the pipeline and defines 118c2ecf20Sopenharmony_cimappings between DMAs and the video IP cores. 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ciRequired properties: 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci- compatible: Must be "xlnx,video". 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ci- dmas, dma-names: List of one DMA specifier and identifier string (as defined 188c2ecf20Sopenharmony_ci in Documentation/devicetree/bindings/dma/dma.txt) per port. Each port 198c2ecf20Sopenharmony_ci requires a DMA channel with the identifier string set to "port" followed by 208c2ecf20Sopenharmony_ci the port index. 218c2ecf20Sopenharmony_ci 228c2ecf20Sopenharmony_ci- ports: Video port, using the DT bindings defined in ../video-interfaces.txt. 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ciRequired port properties: 258c2ecf20Sopenharmony_ci 268c2ecf20Sopenharmony_ci- direction: should be either "input" or "output" depending on the direction 278c2ecf20Sopenharmony_ci of stream. 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ciExample: 308c2ecf20Sopenharmony_ci 318c2ecf20Sopenharmony_ci video_cap { 328c2ecf20Sopenharmony_ci compatible = "xlnx,video"; 338c2ecf20Sopenharmony_ci dmas = <&vdma_1 1>, <&vdma_3 1>; 348c2ecf20Sopenharmony_ci dma-names = "port0", "port1"; 358c2ecf20Sopenharmony_ci 368c2ecf20Sopenharmony_ci ports { 378c2ecf20Sopenharmony_ci #address-cells = <1>; 388c2ecf20Sopenharmony_ci #size-cells = <0>; 398c2ecf20Sopenharmony_ci 408c2ecf20Sopenharmony_ci port@0 { 418c2ecf20Sopenharmony_ci reg = <0>; 428c2ecf20Sopenharmony_ci direction = "input"; 438c2ecf20Sopenharmony_ci vcap0_in0: endpoint { 448c2ecf20Sopenharmony_ci remote-endpoint = <&scaler0_out>; 458c2ecf20Sopenharmony_ci }; 468c2ecf20Sopenharmony_ci }; 478c2ecf20Sopenharmony_ci port@1 { 488c2ecf20Sopenharmony_ci reg = <1>; 498c2ecf20Sopenharmony_ci direction = "input"; 508c2ecf20Sopenharmony_ci vcap0_in1: endpoint { 518c2ecf20Sopenharmony_ci remote-endpoint = <&switch_out1>; 528c2ecf20Sopenharmony_ci }; 538c2ecf20Sopenharmony_ci }; 548c2ecf20Sopenharmony_ci }; 558c2ecf20Sopenharmony_ci }; 56