# SPDX-License-Identifier: GPL-2.0
config DRM_RCAR_DU
	tristate "DRM Support for R-Car Display Unit"
	depends on DRM && OF
	depends on ARM || ARM64
	depends on ARCH_RENESAS || COMPILE_TEST
	imply DRM_RCAR_CMM
	imply DRM_RCAR_LVDS
	select DRM_KMS_HELPER
	select DRM_KMS_CMA_HELPER
	select DRM_GEM_CMA_HELPER
	select VIDEOMODE_HELPERS
	help
	  Choose this option if you have an R-Car chipset.
	  If M is selected the module will be called rcar-du-drm.

config DRM_RCAR_CMM
	tristate "R-Car DU Color Management Module (CMM) Support"
	depends on DRM && OF
	depends on DRM_RCAR_DU
	help
	  Enable support for R-Car Color Management Module (CMM).

config DRM_RCAR_DW_HDMI
	tristate "R-Car DU Gen3 HDMI Encoder Support"
	depends on DRM && OF
	select DRM_DW_HDMI
	help
	  Enable support for R-Car Gen3 internal HDMI encoder.

config DRM_RCAR_LVDS
	tristate "R-Car DU LVDS Encoder Support"
	depends on DRM && DRM_BRIDGE && OF
	select DRM_PANEL
	select OF_FLATTREE
	select OF_OVERLAY
	help
	  Enable support for the R-Car Display Unit embedded LVDS encoders.

config DRM_RCAR_VSP
	bool "R-Car DU VSP Compositor Support" if ARM
	default y if ARM64
	depends on DRM_RCAR_DU
	depends on VIDEO_RENESAS_VSP1=y || (VIDEO_RENESAS_VSP1 && DRM_RCAR_DU=m)
	help
	  Enable support to expose the R-Car VSP Compositor as KMS planes.

config DRM_RCAR_WRITEBACK
	bool
	default y if ARM64
