The purpose of this page is to describe the Xilinx Linux V4L2 pipeline driver.









Overview
The Xilinx Linux V4L2 pipeline driver(xilinx-vipp.c) represents the whole pipeline with multiple sub-devices. In the V4L2 framework it is a bridge driver. The pipeline can be configured through the media node(/dev/media*), and the control operations such as stream on/off can be performed through the video node(/dev/video*). Both device nodes are created be the pipeline driver. The pipeline driver also includes the wrapper layer of the dmaengine API, in current implementation to the VDMA driver/IP, and this enabled to read/write frames from RAM.

Note: Xilinx video systems with Linux expect that the DRM framework with the OSD or Xylon IP are used for video output. A video output pipeline using only V4L2 (no DRM) is not supported at this time.

The general description of V4L2 framework is documented here, v4l2-framework.txt.

Linux Kernel defconfig

CONFIG_VIDEO_XILINX should be enabled. The CONFIG_VIDEO_XILINX depends on CONFIG_VIDEO_V4L2, CONFIG_VIDEO_V4L2_SUBDEV_API, and CONFIG_OF.

Device tree binding

The dts node should be defined with correct configuration. The common dts properties are described in video.txt
axi_video_cap {
    compatible = "xlnx,axi-video";
    dmas = <&axi_vdma_1 1>, <&axi_vdma_3 1>;
    dma-names = "port0", "port1";
 
    ports {
        #address-cells = <1>;
        #size-cells = <0>;
 
        port@0 {
            reg = <0>;
            direction = "input";
            vcap0_in0: endpoint {
                remote-endpoint = <&scaler0_out>;
            };
        };
        port@1 {
            reg = <1>;
            direction = "input";
            vcap0_in1: endpoint {
                remote-endpoint = <&switch_out1>;
            };
        };
    };
};
 

Example Designs


Related Links