media: v4l: xilinx: Add Xilinx MIPI CSI-2 Rx Subsystem driver

The Xilinx MIPI CSI-2 Rx Subsystem soft IP is used to capture images
from MIPI CSI-2 camera sensors and output AXI4-Stream video data ready
for image processing. Please refer to PG232 for details.

The CSI2 Rx controller filters out all packets except for the packets
with data type fixed in hardware. RAW8 packets are always allowed to
pass through.

It is also used to setup and handle interrupts and enable the core. It
logs all the events in respective counters between streaming on and off.

The driver supports only the video format bridge enabled configuration.
Some data types like YUV 422 10bpc, RAW16, RAW20 are supported when the
CSI v2.0 feature is enabled in design. When the VCX feature is enabled,
the maximum number of virtual channels becomes 16 from 4.

Signed-off-by: Vishal Sagar <vishal.sagar@xilinx.com>
Reviewed-by: Hyun Kwon <hyun.kwon@xilinx.com>
Reviewed-by: Luca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
This commit is contained in:
Vishal Sagar 2020-05-27 15:57:19 +02:00 committed by Mauro Carvalho Chehab
parent 9e5eb9a451
commit ba5bf51acf
3 changed files with 1119 additions and 0 deletions

View File

@ -12,6 +12,13 @@ config VIDEO_XILINX
if VIDEO_XILINX if VIDEO_XILINX
config VIDEO_XILINX_CSI2RXSS
tristate "Xilinx CSI-2 Rx Subsystem"
help
Driver for Xilinx MIPI CSI-2 Rx Subsystem. This is a V4L sub-device
based driver that takes input from CSI-2 Tx source and converts
it into an AXI4-Stream.
config VIDEO_XILINX_TPG config VIDEO_XILINX_TPG
tristate "Xilinx Video Test Pattern Generator" tristate "Xilinx Video Test Pattern Generator"
depends on VIDEO_XILINX depends on VIDEO_XILINX

View File

@ -3,5 +3,6 @@
xilinx-video-objs += xilinx-dma.o xilinx-vip.o xilinx-vipp.o xilinx-video-objs += xilinx-dma.o xilinx-vip.o xilinx-vipp.o
obj-$(CONFIG_VIDEO_XILINX) += xilinx-video.o obj-$(CONFIG_VIDEO_XILINX) += xilinx-video.o
obj-$(CONFIG_VIDEO_XILINX_CSI2RXSS) += xilinx-csi2rxss.o
obj-$(CONFIG_VIDEO_XILINX_TPG) += xilinx-tpg.o obj-$(CONFIG_VIDEO_XILINX_TPG) += xilinx-tpg.o
obj-$(CONFIG_VIDEO_XILINX_VTC) += xilinx-vtc.o obj-$(CONFIG_VIDEO_XILINX_VTC) += xilinx-vtc.o

File diff suppressed because it is too large Load Diff