# SPDX-License-Identifier: GPL-2.0-only

# V4L drivers

comment "NXP media platform drivers"

config VIDEO_IMX_MIPI_CSIS
	tristate "NXP MIPI CSI-2 CSIS receiver found on i.MX7 and i.MX8 models"
	depends on ARCH_MXC || COMPILE_TEST
	depends on VIDEO_DEV
	select MEDIA_CONTROLLER
	select V4L2_FWNODE
	select VIDEO_V4L2_SUBDEV_API
	default n
	help
	  Video4Linux2 sub-device driver for the MIPI CSI-2 CSIS receiver
	  v3.3/v3.6.3 found on some i.MX7 and i.MX8 SoCs.

config VIDEO_VIU
	tristate "NXP VIU Video Driver"
	depends on V4L_PLATFORM_DRIVERS
	depends on VIDEO_DEV && (PPC_MPC512x || COMPILE_TEST) && I2C
	select VIDEOBUF_DMA_CONTIG
	default y
	help
	  Support for Freescale VIU video driver. This device captures
	  video data, or overlays video on DIU frame buffer.

	  Say Y here if you want to enable VIU device on MPC5121e Rev2+.
	  In doubt, say N.

# mem2mem drivers

config VIDEO_IMX_PXP
	tristate "NXP i.MX Pixel Pipeline (PXP)"
	depends on V4L_MEM2MEM_DRIVERS
	depends on VIDEO_DEV && (ARCH_MXC || COMPILE_TEST)
	select VIDEOBUF2_DMA_CONTIG
	select V4L2_MEM2MEM_DEV
	help
	  The i.MX Pixel Pipeline is a memory-to-memory engine for scaling,
	  color space conversion, and rotation.

config VIDEO_MX2_EMMAPRP
	tristate "NXP MX2 eMMa-PrP support"
	depends on V4L_MEM2MEM_DRIVERS
	depends on VIDEO_DEV
	depends on SOC_IMX27 || COMPILE_TEST
	select VIDEOBUF2_DMA_CONTIG
	select V4L2_MEM2MEM_DEV
	help
	    MX2X chips have a PrP that can be used to process buffers from
	    memory to memory. Operations include resizing and format
	    conversion.

source "drivers/media/platform/nxp/imx-jpeg/Kconfig"
