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

comment "Verisilicon media platform drivers"

config VIDEO_HANTRO
	tristate "Hantro VPU driver"
	depends on ARCH_MXC || ARCH_ROCKCHIP || ARCH_AT91 || ARCH_SUNXI || ARCH_STM32 || COMPILE_TEST
	depends on V4L_MEM2MEM_DRIVERS
	depends on VIDEO_DEV
	select MEDIA_CONTROLLER
	select VIDEOBUF2_DMA_CONTIG
	select VIDEOBUF2_VMALLOC
	select V4L2_MEM2MEM_DEV
	select V4L2_H264
	select V4L2_VP9
	help
	  Support for the Hantro IP based Video Processing Units present on
	  Rockchip, NXP i.MX8M and STM32MP25 SoCs, which accelerate video
	  and image encoding and decoding.
	  To compile this driver as a module, choose M here: the module
	  will be called hantro-vpu.

config VIDEO_HANTRO_IMX8M
	bool "Hantro VPU i.MX8M support"
	depends on VIDEO_HANTRO
	depends on ARCH_MXC || COMPILE_TEST
	default y
	help
	  Enable support for i.MX8M SoCs.

config VIDEO_HANTRO_SAMA5D4
	bool "Hantro VDEC SAMA5D4 support"
	depends on VIDEO_HANTRO
	depends on ARCH_AT91 || COMPILE_TEST
	default y
	help
	  Enable support for Microchip SAMA5D4 SoCs.

config VIDEO_HANTRO_ROCKCHIP
	bool "Hantro VPU Rockchip support"
	depends on VIDEO_HANTRO
	depends on ARCH_ROCKCHIP || COMPILE_TEST
	default y
	help
	  Enable support for RK3288, RK3328, and RK3399 SoCs.

config VIDEO_HANTRO_SUNXI
	bool "Hantro VPU Allwinner support"
	depends on VIDEO_HANTRO
	depends on ARCH_SUNXI || COMPILE_TEST
	default y
	help
	  Enable support for H6 SoC.

config VIDEO_HANTRO_STM32MP25
	bool "Hantro STM32MP25 support"
	depends on VIDEO_HANTRO
	depends on ARCH_STM32 || COMPILE_TEST
	default y
	help
	  Enable support for STM32MP25 SoCs.
