# SPDX-License-Identifier: GPL-2.0-only
config DRM_SUN4I
	tristate "DRM Support for Allwinner A10 Display Engine"
	depends on DRM && (ARM || ARM64) && COMMON_CLK
	depends on ARCH_SUNXI || COMPILE_TEST
	select DRM_GEM_CMA_HELPER
	select DRM_KMS_HELPER
	select DRM_KMS_CMA_HELPER
	select DRM_PANEL
	select REGMAP_MMIO
	select VIDEOMODE_HELPERS
	help
	  Choose this option if you have an Allwinner SoC with a
	  Display Engine. If M is selected the module will be called
	  sun4i-drm.

if DRM_SUN4I

config DRM_SUN4I_HDMI
	tristate "Allwinner A10 HDMI Controller Support"
	default DRM_SUN4I
	help
	  Choose this option if you have an Allwinner SoC with an HDMI
	  controller.

config DRM_SUN4I_HDMI_CEC
	bool "Allwinner A10 HDMI CEC Support"
	depends on DRM_SUN4I_HDMI
	select CEC_CORE
	select CEC_PIN
	help
	  Choose this option if you have an Allwinner SoC with an HDMI
	  controller and want to use CEC.

config DRM_SUN4I_BACKEND
	tristate "Support for Allwinner A10 Display Engine Backend"
	default DRM_SUN4I
	help
	  Choose this option if you have an Allwinner SoC with the
	  original Allwinner Display Engine, which has a backend to
	  do some alpha blending and feed graphics to TCON. If M is
	  selected the module will be called sun4i-backend.

config DRM_SUN6I_DSI
	tristate "Allwinner A31 MIPI-DSI Controller Support"
	default MACH_SUN8I
	select CRC_CCITT
	select DRM_MIPI_DSI
	select PHY_SUN6I_MIPI_DPHY
	help
	  Choose this option if you want have an Allwinner SoC with
	  MIPI-DSI support. If M is selected the module will be called
	  sun6i_mipi_dsi.

config DRM_SUN8I_DW_HDMI
	tristate "Support for Allwinner version of DesignWare HDMI"
	depends on DRM_SUN4I
	select DRM_DW_HDMI
	help
	  Choose this option if you have an Allwinner SoC with the
	  DesignWare HDMI controller with custom HDMI PHY. If M is
	  selected the module will be called sun8i_dw_hdmi.

config DRM_SUN8I_MIXER
	tristate "Support for Allwinner Display Engine 2.0 Mixer"
	default MACH_SUN8I
	help
	  Choose this option if you have an Allwinner SoC with the
	  Allwinner Display Engine 2.0, which has a mixer to do some
	  graphics mixture and feed graphics to TCON, If M is
	  selected the module will be called sun8i-mixer.

config DRM_SUN8I_TCON_TOP
	tristate
	default DRM_SUN4I if DRM_SUN8I_MIXER!=n
	help
	  TCON TOP is responsible for configuring display pipeline for
	  HTMI, TVE and LCD.

endif
