config DRM_EXYNOS
	tristate "DRM Support for Samsung SoC EXYNOS Series"
	depends on OF && DRM && (ARCH_S3C64XX || ARCH_EXYNOS || ARCH_MULTIPLATFORM)
	select DRM_KMS_HELPER
	select VIDEOMODE_HELPERS
	select SND_SOC_HDMI_CODEC if SND_SOC
	help
	  Choose this option if you have a Samsung SoC EXYNOS chipset.
	  If M is selected the module will be called exynosdrm.

if DRM_EXYNOS

config DRM_EXYNOS_IOMMU
	bool
	depends on EXYNOS_IOMMU
	default y

comment "CRTCs"

config DRM_EXYNOS_FIMD
	bool "FIMD"
	depends on !FB_S3C
	select MFD_SYSCON
	help
	  Choose this option if you want to use Exynos FIMD for DRM.

config DRM_EXYNOS5433_DECON
	bool "DECON on Exynos5433"
	help
	  Choose this option if you want to use Exynos5433 DECON for DRM.

config DRM_EXYNOS7_DECON
	bool "DECON on Exynos7"
	depends on !FB_S3C
	help
	  Choose this option if you want to use Exynos DECON for DRM.

config DRM_EXYNOS_MIXER
	bool "Mixer"
	help
	  Choose this option if you want to use Exynos Mixer for DRM.

config DRM_EXYNOS_VIDI
	bool "Virtual Display"
	help
	  Choose this option if you want to use Exynos VIDI for DRM.

comment "Encoders and Bridges"

config DRM_EXYNOS_DPI
	bool "Parallel output"
	depends on DRM_EXYNOS_FIMD
	select DRM_PANEL
	default n
	help
	  This enables support for Exynos parallel output.

config DRM_EXYNOS_DSI
	bool "MIPI-DSI host"
	depends on DRM_EXYNOS_FIMD || DRM_EXYNOS5433_DECON || DRM_EXYNOS7_DECON
	select DRM_MIPI_DSI
	select DRM_PANEL
	default n
	help
	  This enables support for Exynos MIPI-DSI device.

config DRM_EXYNOS_DP
	bool "EXYNOS specific extensions for Analogix DP driver"
	depends on DRM_EXYNOS_FIMD || DRM_EXYNOS7_DECON
	select DRM_ANALOGIX_DP
	default DRM_EXYNOS
	select DRM_PANEL
	help
	  This enables support for DP device.

config DRM_EXYNOS_HDMI
	bool "HDMI"
	depends on DRM_EXYNOS_MIXER || DRM_EXYNOS5433_DECON
	select CEC_CORE if CEC_NOTIFIER
	help
	  Choose this option if you want to use Exynos HDMI for DRM.

config DRM_EXYNOS_MIC
	bool "Mobile Image Compressor"
	depends on DRM_EXYNOS5433_DECON
	help
	  Choose this option if you want to use Exynos MIC for DRM.

comment "Sub-drivers"

config DRM_EXYNOS_G2D
	bool "G2D"
	depends on VIDEO_SAMSUNG_S5P_G2D=n
	select FRAME_VECTOR
	help
	  Choose this option if you want to use Exynos G2D for DRM.

config DRM_EXYNOS_IPP
	bool "Image Post Processor"
	help
	  Choose this option if you want to use IPP feature for DRM.

config DRM_EXYNOS_FIMC
	bool "FIMC"
	depends on DRM_EXYNOS_IPP && MFD_SYSCON
	help
	  Choose this option if you want to use Exynos FIMC for DRM.

config DRM_EXYNOS_ROTATOR
	bool "Rotator"
	depends on DRM_EXYNOS_IPP
	help
	  Choose this option if you want to use Exynos Rotator for DRM.

config DRM_EXYNOS_GSC
	bool "GScaler"
	depends on DRM_EXYNOS_IPP && ARCH_EXYNOS5 && VIDEO_SAMSUNG_EXYNOS_GSC=n
	help
	  Choose this option if you want to use Exynos GSC for DRM.

endif
