# SPDX-License-Identifier: GPL-2.0-only
config DRM_MEDIATEK
	tristate "DRM Support for Mediatek SoCs"
	depends on DRM
	depends on ARCH_MEDIATEK || COMPILE_TEST
	depends on COMMON_CLK
	depends on HAVE_ARM_SMCCC || COMPILE_TEST
	depends on OF
	depends on MTK_MMSYS
	select DRM_CLIENT_SELECTION
	select DRM_GEM_DMA_HELPER
	select DRM_KMS_HELPER
	select DRM_DISPLAY_HELPER
	select DRM_BRIDGE_CONNECTOR
	select DRM_MIPI_DSI
	select DRM_PANEL
	select VIDEOMODE_HELPERS
	help
	  Choose this option if you have a Mediatek SoCs.
	  The module will be called mediatek-drm
	  This driver provides kernel mode setting and
	  buffer management to userspace.

config DRM_MEDIATEK_DP
	tristate "DRM DPTX Support for MediaTek SoCs"
	depends on DRM_MEDIATEK
	select DRM_DISPLAY_HELPER
	select DRM_DISPLAY_DP_HELPER
	select DRM_DISPLAY_DP_AUX_BUS
	help
	  DRM/KMS Display Port driver for MediaTek SoCs.

config DRM_MEDIATEK_HDMI_COMMON
	tristate
	depends on DRM_MEDIATEK
	select DRM_DISPLAY_HDMI_HELPER
	select DRM_DISPLAY_HELPER
	select SND_SOC_HDMI_CODEC if SND_SOC
	help
	  MediaTek SoC HDMI common library

config DRM_MEDIATEK_HDMI
	tristate "DRM HDMI Support for Mediatek SoCs"
	depends on DRM_MEDIATEK
	select DRM_MEDIATEK_HDMI_COMMON
	help
	  DRM/KMS HDMI driver for Mediatek SoCs

config DRM_MEDIATEK_HDMI_V2
	tristate "DRM HDMI v2 IP support for MediaTek SoCs"
	depends on DRM_MEDIATEK
	select DRM_MEDIATEK_HDMI_COMMON
	help
	  Say yes here to enable support for the HDMIv2 IP and related
	  DDCv2 as found in the MediaTek MT8195, MT8188 SoCs and other
	  variants.
	  This driver can also be built as a module. If so, the HDMIv2
	  module will be called "mtk_hdmi_v2", and the DDCv2 module
	  will be called "mtk_hdmi_ddc_v2".
