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

# V4L drivers

comment "NXP media platform drivers"

config VIDEO_IMX7_CSI
	tristate "NXP CSI Bridge driver"
	depends on ARCH_MXC || COMPILE_TEST
	depends on HAS_DMA
	depends on VIDEO_DEV
	select MEDIA_CONTROLLER
	select V4L2_FWNODE
	select VIDEOBUF2_DMA_CONTIG
	select VIDEO_V4L2_SUBDEV_API
	help
	  Driver for the NXP Camera Sensor Interface (CSI) Bridge. This device
	  is found in the i.MX6UL/L, i.MX7 and i.MX8M[MQ] SoCs.

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
	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.

# 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/dw100/Kconfig"
source "drivers/media/platform/nxp/imx-jpeg/Kconfig"
