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