# SPDX-License-Identifier: GPL-2.0-only
#
# Platform drivers
#	Most drivers here are currently for webcam support

if V4L_PLATFORM_DRIVERS

config DEVICE_MODULES_VIDEO_MEDIATEK_JPEG
	tristate "Mediatek JPEG Codec driver"
	depends on MTK_IOMMU_V1 || DEVICE_MODULES_MTK_IOMMU || COMPILE_TEST
	depends on VIDEO_DEV
	depends on ARCH_MEDIATEK || COMPILE_TEST
	depends on DEVICE_MODULES_MTK_SMI || (COMPILE_TEST && DEVICE_MODULES_MTK_SMI=n)
	select VIDEOBUF2_DMA_CONTIG
	select V4L2_MEM2MEM_DEV
	help
	  Mediatek jpeg codec driver provides HW capability to decode
	  JPEG format

	  To compile this driver as a module, choose M here: the
	  module will be called mtk-jpeg

source "$(KCONFIG_EXT_PREFIX)drivers/media/platform/mtk-vcodec/Kconfig"
source "$(KCONFIG_EXT_PREFIX)drivers/media/platform/mtk-isp/Kconfig"
source "$(KCONFIG_EXT_PREFIX)drivers/media/platform/mtk-aie/Kconfig"

config DEVICE_MODULES_VIDEO_MEDIATEK_VCODEC
	tristate "Mediatek Video Codec driver"
	depends on DEVICE_MODULES_MTK_IOMMU || COMPILE_TEST
	depends on VIDEO_DEV
	depends on ARCH_MEDIATEK || COMPILE_TEST
	depends on VIDEO_MEDIATEK_VPU || MTK_SCP || MTK_TINYSYS_VCP_SUPPORT || VIDEO_MEDIATEK_VCU
	# The two following lines ensure we have the same state ("m" or "y") as
	# our dependencies, to avoid missing symbols during link.
	depends on VIDEO_MEDIATEK_VPU || !VIDEO_MEDIATEK_VPU
	depends on MTK_SCP || !MTK_SCP
	depends on MTK_TINYSYS_VCP_SUPPORT || !MTK_TINYSYS_VCP_SUPPORT
	depends on DEVICE_MODULES_MTK_SMI || (COMPILE_TEST && DEVICE_MODULES_MTK_SMI=n)
	select VIDEOBUF2_DMA_CONTIG
	select V4L2_MEM2MEM_DEV
	select VB2_MEDIATEK_DMA_CONTIG
	select DEVICE_MODULES_VIDEO_MEDIATEK_VCODEC_VPU if VIDEO_MEDIATEK_VPU
	select DEVICE_MODULES_VIDEO_MEDIATEK_VCODEC_SCP if MTK_SCP
	help
	  Mediatek video codec driver provides HW capability to
	  encode and decode in a range of video formats on MT8173
	  and MT8183.

	  Note that support for MT8173 requires VIDEO_MEDIATEK_VPU to
	  also be selected. Support for MT8183 depends on MTK_SCP.

	  To compile this driver as modules, choose M here: the
	  modules will be called mtk-vcodec-dec and mtk-vcodec-enc.

config VIDEO_MEDIATEK_VCU
	tristate "Mediatek VCU driver"
	help
	  Mediatek video kernel driver for user space vpud.

	  The driver support communicate with user space video driver vpud
	  and allocate, free memory, etc.

	  To compile this driver as modules, choose M here: the
	  modules will be called mtk-vcu.

config MTK_TINYSYS_VCP_SUPPORT
	tristate "Mediatek VCP driver"
	help
	  Mediatek video kernel driver for micro-P.

	  The driver support control and communicate vcp and allocate,
	  free memory, etc.

	  To compile this driver as modules, choose M here: the
	  modules will be called vcp and vcp_status.

config DEVICE_MODULES_VIDEO_MEDIATEK_VCODEC_VPU
	bool

config DEVICE_MODULES_VIDEO_MEDIATEK_VCODEC_SCP
	bool

config MTK_CAMSYS_VEND_HOOK
	bool "Support Mediatek CAMSYS vnedor hook"
	depends on VIDEO_DEV
	help
	  If it is enabled, CAMSYS will have vendor hook

endif # V4L_PLATFORM_DRIVERS
