# SPDX-License-Identifier: GPL-2.0-only
config DRM_DW_HDMI
	tristate
	select DRM_DISPLAY_HDMI_HELPER
	select DRM_DISPLAY_HELPER
	select DRM_KMS_HELPER
	select REGMAP_MMIO
	select CEC_CORE if CEC_NOTIFIER

config DRM_DW_HDMI_AHB_AUDIO
	tristate "Synopsys Designware AHB Audio interface"
	depends on DRM_DW_HDMI && SND
	select SND_PCM
	select SND_PCM_ELD
	select SND_PCM_IEC958
	help
	  Support the AHB Audio interface which is part of the Synopsys
	  Designware HDMI block.  This is used in conjunction with
	  the i.MX6 HDMI driver.

config DRM_DW_HDMI_I2S_AUDIO
	tristate "Synopsys Designware I2S Audio interface"
	depends on SND_SOC
	depends on DRM_DW_HDMI
	select SND_SOC_HDMI_CODEC
	help
	  Support the I2S Audio interface which is part of the Synopsys
	  Designware HDMI block.

config DRM_DW_HDMI_GP_AUDIO
	tristate "Synopsys Designware GP Audio interface"
	depends on DRM_DW_HDMI && SND
	select SND_PCM
	select SND_PCM_ELD
	select SND_PCM_IEC958
	help
	  Support the GP Audio interface which is part of the Synopsys
	  Designware HDMI block.

config DRM_DW_HDMI_CEC
	tristate "Synopsis Designware CEC interface"
	depends on DRM_DW_HDMI
	select CEC_CORE
	select CEC_NOTIFIER
	help
	  Support the CE interface which is part of the Synopsys
	  Designware HDMI block.

config DRM_DW_HDMI_QP
	tristate
	select DRM_DISPLAY_HDMI_HELPER
	select DRM_DISPLAY_HDMI_STATE_HELPER
	select DRM_DISPLAY_HELPER
	select DRM_KMS_HELPER
	select REGMAP_MMIO

config DRM_DW_MIPI_DSI
	tristate
	select DRM_KMS_HELPER
	select DRM_MIPI_DSI
	select DRM_PANEL_BRIDGE

config DRM_DW_MIPI_DSI2
	tristate
	select DRM_KMS_HELPER
	select DRM_MIPI_DSI
	select DRM_PANEL_BRIDGE
