# SPDX-License-Identifier: GPL-2.0-only
config DRM_BRIDGE
	def_bool y
	depends on DRM
	help
	  Bridge registration and lookup framework.

config DRM_PANEL_BRIDGE
	def_bool y
	depends on DRM_BRIDGE
	select DRM_PANEL
	help
	  DRM bridge wrapper of DRM panels

config DRM_AUX_BRIDGE
	tristate
	depends on DRM_BRIDGE && OF
	select AUXILIARY_BUS
	select DRM_PANEL_BRIDGE
	help
	  Simple transparent bridge that is used by several non-DRM drivers to
	  build bridges chain.

config DRM_AUX_HPD_BRIDGE
	tristate
	depends on DRM_BRIDGE && OF
	select AUXILIARY_BUS
	help
	  Simple bridge that terminates the bridge chain and provides HPD
	  support.

menu "Display Interface Bridges"
	depends on DRM && DRM_BRIDGE

config DRM_CHIPONE_ICN6211
	tristate "Chipone ICN6211 MIPI-DSI/RGB Converter bridge"
	depends on OF
	select DRM_KMS_HELPER
	select DRM_MIPI_DSI
	select DRM_PANEL_BRIDGE
	select REGMAP_I2C
	help
	  ICN6211 is MIPI-DSI/RGB Converter bridge from chipone.

	  It has a flexible configuration of MIPI DSI signal input
	  and produce RGB565, RGB666, RGB888 output format.

	  If in doubt, say "N".

config DRM_CHRONTEL_CH7033
	tristate "Chrontel CH7033 Video Encoder"
	depends on OF
	select DRM_KMS_HELPER
	help
	  Enable support for the Chrontel CH7033 VGA/DVI/HDMI Encoder, as
	  found in the Dell Wyse 3020 thin client.

	  If in doubt, say "N".

config DRM_CROS_EC_ANX7688
	tristate "ChromeOS EC ANX7688 bridge"
	depends on OF
	depends on I2C_CROS_EC_TUNNEL || COMPILE_TEST
	select DRM_KMS_HELPER
	select REGMAP_I2C
	help
	  ChromeOS EC ANX7688 is an ultra-low power
	  4K Ultra-HD (4096x2160p60) mobile HD transmitter
	  designed for ChromeOS devices. It converts HDMI
	  2.0 to DisplayPort 1.3 Ultra-HD. It is connected
	  to the ChromeOS Embedded Controller.

config DRM_DISPLAY_CONNECTOR
	tristate "Display connector support"
	depends on OF
	help
	  Driver for display connectors with support for DDC and hot-plug
	  detection. Most display controllers handle display connectors
	  internally and don't need this driver, but the DRM subsystem is
	  moving towards separating connector handling from display controllers
	  on ARM-based platforms. Saying Y here when this driver is not needed
	  will not cause any issue.

config DRM_FSL_LDB
	tristate "Freescale i.MX8MP LDB bridge"
	depends on OF
	depends on ARCH_MXC || COMPILE_TEST
	select DRM_KMS_HELPER
	select DRM_PANEL_BRIDGE
	help
	  Support for i.MX8MP DPI-to-LVDS on-SoC encoder.

config DRM_ITE_IT6263
	tristate "ITE IT6263 LVDS/HDMI bridge"
	depends on OF
	select DRM_DISPLAY_HDMI_STATE_HELPER
	select DRM_DISPLAY_HELPER
	select DRM_BRIDGE_CONNECTOR
	select DRM_KMS_HELPER
	select REGMAP_I2C
	help
	  ITE IT6263 LVDS to HDMI bridge chip driver.

config DRM_ITE_IT6505
	tristate "ITE IT6505 DisplayPort bridge"
	depends on OF
	select DRM_DISPLAY_DP_HELPER
	select DRM_DISPLAY_HDCP_HELPER
	select DRM_DISPLAY_HELPER
	select DRM_DISPLAY_DP_AUX_BUS
	select DRM_KMS_HELPER
	select EXTCON
	select CRYPTO
	select CRYPTO_HASH
	help
	  ITE IT6505 DisplayPort bridge chip driver.

config DRM_LONTIUM_LT8912B
	tristate "Lontium LT8912B DSI/HDMI bridge"
	depends on OF
	select DRM_PANEL_BRIDGE
	select DRM_KMS_HELPER
	select DRM_MIPI_DSI
	select REGMAP_I2C
	select VIDEOMODE_HELPERS
	help
	  Driver for Lontium LT8912B DSI to HDMI bridge
	  chip driver.
	  Please say Y if you have such hardware.

	  Say M here if you want to support this hardware as a module.
	  The module will be named "lontium-lt8912b".

config DRM_LONTIUM_LT9211
	tristate "Lontium LT9211 DSI/LVDS/DPI bridge"
	depends on OF
	select DRM_PANEL_BRIDGE
	select DRM_KMS_HELPER
	select DRM_MIPI_DSI
	select REGMAP_I2C
	help
	  Driver for Lontium LT9211 Single/Dual-Link DSI/LVDS or Single DPI
	  input to Single-link/Dual-Link DSI/LVDS or Single DPI output bridge
	  chip.
	  Please say Y if you have such hardware.

config DRM_LONTIUM_LT9611
	tristate "Lontium LT9611 DSI/HDMI bridge"
	select SND_SOC_HDMI_CODEC if SND_SOC
	depends on OF
	select DRM_PANEL_BRIDGE
	select DRM_KMS_HELPER
	select DRM_MIPI_DSI
	select DRM_DISPLAY_HELPER
	select DRM_DISPLAY_HDMI_STATE_HELPER
	select REGMAP_I2C
	help
	  Driver for Lontium LT9611 DSI to HDMI bridge
	  chip driver that converts dual DSI and I2S to
	  HDMI signals
	  Please say Y if you have such hardware.

config DRM_LONTIUM_LT9611UXC
	tristate "Lontium LT9611UXC DSI/HDMI bridge"
	select SND_SOC_HDMI_CODEC if SND_SOC
	depends on OF
	select DRM_PANEL_BRIDGE
	select DRM_KMS_HELPER
	select DRM_MIPI_DSI
	select REGMAP_I2C
	help
	  Driver for Lontium LT9611UXC DSI to HDMI bridge
	  chip driver that converts dual DSI and I2S to
	  HDMI signals
	  Please say Y if you have such hardware.

config DRM_ITE_IT66121
	tristate "ITE IT66121 HDMI bridge"
	depends on OF
	select DRM_KMS_HELPER
	select REGMAP_I2C
	help
	  Support for ITE IT66121 HDMI bridge.

config DRM_LVDS_CODEC
	tristate "Transparent LVDS encoders and decoders support"
	depends on OF
	select DRM_KMS_HELPER
	select DRM_PANEL_BRIDGE
	help
	  Support for transparent LVDS encoders and decoders that don't
	  require any configuration.

config DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW
	tristate "MegaChips stdp4028-ge-b850v3-fw and stdp2690-ge-b850v3-fw"
	depends on OF
	select DRM_KMS_HELPER
	select DRM_PANEL
	help
	  This is a driver for the display bridges of
	  GE B850v3 that convert dual channel LVDS
	  to DP++. This is used with the i.MX6 imx-ldb
	  driver. You are likely to say N here.

config DRM_MICROCHIP_LVDS_SERIALIZER
	tristate "Microchip LVDS serializer support"
	depends on OF
	depends on DRM_ATMEL_HLCDC
	help
	  Support for Microchip's LVDS serializer.

config DRM_NWL_MIPI_DSI
	tristate "Northwest Logic MIPI DSI Host controller"
	depends on DRM
	depends on COMMON_CLK
	depends on OF && HAS_IOMEM
	select DRM_KMS_HELPER
	select DRM_MIPI_DSI
	select DRM_PANEL_BRIDGE
	select GENERIC_PHY
	select GENERIC_PHY_MIPI_DPHY
	select MFD_SYSCON
	select MULTIPLEXER
	select REGMAP_MMIO
	help
	  This enables the Northwest Logic MIPI DSI Host controller as
	  for example found on NXP's i.MX8 Processors.

config DRM_NXP_PTN3460
	tristate "NXP PTN3460 DP/LVDS bridge"
	depends on OF
	select DRM_KMS_HELPER
	select DRM_PANEL
	help
	  NXP PTN3460 eDP-LVDS bridge chip driver.

config DRM_PARADE_PS8622
	tristate "Parade eDP/LVDS bridge"
	depends on OF
	select DRM_PANEL
	select DRM_KMS_HELPER
	select BACKLIGHT_CLASS_DEVICE
	help
	  Parade eDP-LVDS bridge chip driver.

config DRM_PARADE_PS8640
	tristate "Parade PS8640 MIPI DSI to eDP Converter"
	depends on OF
	select DRM_DISPLAY_DP_HELPER
	select DRM_DISPLAY_HELPER
	select DRM_DISPLAY_DP_AUX_BUS
	select DRM_KMS_HELPER
	select DRM_MIPI_DSI
	select DRM_PANEL
	help
	  Choose this option if you have PS8640 for display
	  The PS8640 is a high-performance and low-power
	  MIPI DSI to eDP converter

config DRM_SAMSUNG_DSIM
	tristate "Samsung MIPI DSIM bridge driver"
	depends on COMMON_CLK
	depends on OF && HAS_IOMEM
	select DRM_KMS_HELPER
	select DRM_MIPI_DSI
	select DRM_PANEL_BRIDGE
	select GENERIC_PHY
	select GENERIC_PHY_MIPI_DPHY
	help
	  The Samsung MIPI DSIM bridge controller driver.
	  This MIPI DSIM bridge can be found it on Exynos SoCs and
	  NXP's i.MX8M Mini/Nano.

config DRM_SIL_SII8620
	tristate "Silicon Image SII8620 HDMI/MHL bridge"
	depends on OF
	select DRM_KMS_HELPER
	select EXTCON
	depends on RC_CORE || !RC_CORE
	help
	  Silicon Image SII8620 HDMI/MHL bridge chip driver.

config DRM_SII902X
	tristate "Silicon Image sii902x RGB/HDMI bridge"
	depends on OF
	select DRM_KMS_HELPER
	select REGMAP_I2C
	select I2C_MUX
	select SND_SOC_HDMI_CODEC if SND_SOC
	help
	  Silicon Image sii902x bridge chip driver.

config DRM_SII9234
	tristate "Silicon Image SII9234 HDMI/MHL bridge"
	depends on OF
	help
	  Say Y here if you want support for the MHL interface.
	  It is an I2C driver, that detects connection of MHL bridge
	  and starts encapsulation of HDMI signal.

config DRM_SIMPLE_BRIDGE
	tristate "Simple DRM bridge support"
	depends on OF
	select DRM_KMS_HELPER
	help
	  Support for non-programmable DRM bridges, such as ADI ADV7123, TI
	  THS8134 and THS8135 or passive resistor ladder DACs.

config DRM_THINE_THC63LVD1024
	tristate "Thine THC63LVD1024 LVDS decoder bridge"
	depends on OF
	help
	  Thine THC63LVD1024 LVDS/parallel converter driver.

config DRM_TOSHIBA_TC358762
	tristate "TC358762 DSI/DPI bridge"
	depends on OF
	select DRM_MIPI_DSI
	select DRM_KMS_HELPER
	select DRM_PANEL_BRIDGE
	help
	  Toshiba TC358762 DSI/DPI bridge driver.

config DRM_TOSHIBA_TC358764
	tristate "TC358764 DSI/LVDS bridge"
	depends on OF
	select DRM_MIPI_DSI
	select DRM_KMS_HELPER
	select DRM_PANEL
	help
	  Toshiba TC358764 DSI/LVDS bridge driver.

config DRM_TOSHIBA_TC358767
	tristate "Toshiba TC358767 eDP bridge"
	depends on OF
	select DRM_DISPLAY_DP_HELPER
	select DRM_DISPLAY_HELPER
	select DRM_KMS_HELPER
	select REGMAP_I2C
	select DRM_MIPI_DSI
	select DRM_PANEL
	help
	  Toshiba TC358767 eDP bridge chip driver.

config DRM_TOSHIBA_TC358768
	tristate "Toshiba TC358768 MIPI DSI bridge"
	depends on OF
	select DRM_KMS_HELPER
	select REGMAP_I2C
	select DRM_PANEL
	select DRM_MIPI_DSI
	select VIDEOMODE_HELPERS
	help
	  Toshiba TC358768AXBG/TC358778XBG DSI bridge chip driver.

config DRM_TOSHIBA_TC358775
	tristate "Toshiba TC358775 DSI/LVDS bridge"
	depends on OF
	select DRM_DISPLAY_DP_HELPER
	select DRM_DISPLAY_HELPER
	select DRM_KMS_HELPER
	select REGMAP_I2C
	select DRM_PANEL
	select DRM_MIPI_DSI
	help
	  Toshiba TC358775 DSI/LVDS bridge chip driver.

config DRM_TI_DLPC3433
	tristate "TI DLPC3433 Display controller"
	depends on DRM && DRM_PANEL
	depends on OF
	select DRM_MIPI_DSI
	help
	  TI DLPC3433 is a MIPI DSI based display controller bridge
	  for processing high resolution DMD based projectors.

	  It has a flexible configuration of MIPI DSI and DPI signal
	  input that produces a DMD output in RGB565, RGB666, RGB888
	  formats.

	  It supports up to 720p resolution with 60 and 120 Hz refresh
	  rates.

config DRM_TI_TDP158
	tristate "TI TDP158 HDMI/TMDS bridge"
	depends on OF
	select DRM_PANEL_BRIDGE
	help
	  Texas Instruments TDP158 HDMI/TMDS Bridge driver

config DRM_TI_TFP410
	tristate "TI TFP410 DVI/HDMI bridge"
	depends on OF
	select DRM_KMS_HELPER
	help
	  Texas Instruments TFP410 DVI/HDMI Transmitter driver

config DRM_TI_SN65DSI83
	tristate "TI SN65DSI83 and SN65DSI84 DSI to LVDS bridge"
	depends on OF
	select DRM_KMS_HELPER
	select REGMAP_I2C
	select DRM_PANEL
	select DRM_MIPI_DSI
	help
	  Texas Instruments SN65DSI83 and SN65DSI84 DSI to LVDS Bridge driver

config DRM_TI_SN65DSI86
	tristate "TI SN65DSI86 DSI to eDP bridge"
	depends on OF
	select DRM_DISPLAY_DP_HELPER
	select DRM_DISPLAY_HELPER
	select DRM_BRIDGE_CONNECTOR
	select DRM_KMS_HELPER
	select REGMAP_I2C
	select DRM_PANEL
	select DRM_MIPI_DSI
	select AUXILIARY_BUS
	select DRM_DISPLAY_DP_AUX_BUS
	help
	  Texas Instruments SN65DSI86 DSI to eDP Bridge driver

config DRM_TI_TPD12S015
	tristate "TI TPD12S015 HDMI level shifter and ESD protection"
	depends on OF
	select DRM_KMS_HELPER
	help
	  Texas Instruments TPD12S015 HDMI level shifter and ESD protection
	  driver.

source "drivers/gpu/drm/bridge/analogix/Kconfig"

source "drivers/gpu/drm/bridge/adv7511/Kconfig"

source "drivers/gpu/drm/bridge/cadence/Kconfig"

source "drivers/gpu/drm/bridge/imx/Kconfig"

source "drivers/gpu/drm/bridge/synopsys/Kconfig"

endmenu
