# SPDX-License-Identifier: GPL-2.0-only
config DRM_TEGRA
	tristate "NVIDIA Tegra DRM"
	depends on ARCH_TEGRA || COMPILE_TEST
	depends on COMMON_CLK
	depends on DRM
	depends on OF
	select DRM_DISPLAY_DP_HELPER
	select DRM_DISPLAY_HDMI_HELPER
	select DRM_DISPLAY_HELPER
	select DRM_DISPLAY_DP_AUX_BUS
	select DRM_KMS_HELPER
	select DRM_MIPI_DSI
	select DRM_PANEL
	select FB_DMAMEM_HELPERS if DRM_FBDEV_EMULATION
	select TEGRA_HOST1X
	select INTERCONNECT
	select IOMMU_IOVA
	select CEC_CORE if CEC_NOTIFIER
	select SND_SIMPLE_CARD if SND_SOC_TEGRA20_SPDIF
	select SND_SOC_HDMI_CODEC if SND_SOC_TEGRA20_SPDIF
	select SND_AUDIO_GRAPH_CARD if SND_SOC_TEGRA20_SPDIF
	help
	  Choose this option if you have an NVIDIA Tegra SoC.

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

if DRM_TEGRA

config DRM_TEGRA_DEBUG
	bool "NVIDIA Tegra DRM debug support"
	help
	  Say yes here to enable debugging support.

config DRM_TEGRA_STAGING
	bool "Enable HOST1X interface"
	depends on STAGING
	help
	  Say yes if HOST1X should be available for userspace DRM users.

	  If unsure, choose N.

endif
