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

# V4L drivers
config VIDEO_STM32_DCMI
	tristate "STM32 Digital Camera Memory Interface (DCMI) support"
	depends on V4L_PLATFORM_DRIVERS
	depends on VIDEO_DEV && OF
	depends on ARCH_STM32 || COMPILE_TEST
	select VIDEOBUF2_DMA_CONTIG
	select MEDIA_CONTROLLER
	select V4L2_FWNODE
	help
	  This module makes the STM32 Digital Camera Memory Interface (DCMI)
	  available as a v4l2 device.

	  To compile this driver as a module, choose M here: the module
	  will be called stm32-dcmi.

config VIDEO_STM32_DCMIPP
	tristate "STM32 Digital Camera Memory Interface Pixel Processor (DCMIPP) support"
	depends on V4L_PLATFORM_DRIVERS
	depends on VIDEO_DEV
	depends on ARCH_STM32 || COMPILE_TEST
	select MEDIA_CONTROLLER
	select VIDEOBUF2_DMA_CONTIG
	select VIDEO_V4L2_SUBDEV_API
	select V4L2_FWNODE
	help
	  This module makes the STM32 Digital Camera Memory Interface
	  Pixel Processor (DCMIPP) available as a v4l2 device.

	  To compile this driver as a module, choose M here: the module
	  will be called stm32-dcmipp.

# Mem2mem drivers
config VIDEO_STM32_DMA2D
	tristate "STM32 Chrom-Art Accelerator (DMA2D)"
	depends on V4L_MEM2MEM_DRIVERS
	depends on VIDEO_DEV
	depends on ARCH_STM32 || COMPILE_TEST
	select VIDEOBUF2_DMA_CONTIG
	select V4L2_MEM2MEM_DEV
	help
	  Enables DMA2D hardware support on stm32.

	  The STM32 DMA2D is a memory-to-memory engine for pixel conversion
	  and specialized DMA dedicated to image manipulation.
