# SPDX-License-Identifier: GPL-2.0-only
menu "OMAPFB Panel and Encoder Drivers"
	depends on FB_OMAP2_DSS

config FB_OMAP2_ENCODER_OPA362
	tristate "OPA362 external analog amplifier"
	help
	  Driver for OPA362 external analog TV amplifier controlled
	  through a GPIO.

config FB_OMAP2_ENCODER_TFP410
	tristate "TFP410 DPI to DVI Encoder"
	help
	  Driver for TFP410 DPI to DVI encoder.

config FB_OMAP2_ENCODER_TPD12S015
	tristate "TPD12S015 HDMI ESD protection and level shifter"
	help
	  Driver for TPD12S015, which offers HDMI ESD protection and level
	  shifting.

config FB_OMAP2_CONNECTOR_DVI
	tristate "DVI Connector"
	depends on I2C
	help
	  Driver for a generic DVI connector.

config FB_OMAP2_CONNECTOR_HDMI
	tristate "HDMI Connector"
	help
	  Driver for a generic HDMI connector.

config FB_OMAP2_CONNECTOR_ANALOG_TV
	tristate "Analog TV Connector"
	help
	  Driver for a generic analog TV connector.

config FB_OMAP2_PANEL_DPI
	tristate "Generic DPI panel"
	help
	  Driver for generic DPI panels.

config FB_OMAP2_PANEL_DSI_CM
	tristate "Generic DSI Command Mode Panel"
	depends on BACKLIGHT_CLASS_DEVICE
	depends on DRM_PANEL_DSI_CM = n
	help
	  Driver for generic DSI command mode panels.

config FB_OMAP2_PANEL_SONY_ACX565AKM
	tristate "ACX565AKM Panel"
	depends on SPI && BACKLIGHT_CLASS_DEVICE
	depends on DRM_PANEL_SONY_ACX565AKM = n
	help
	  This is the LCD panel used on Nokia N900

config FB_OMAP2_PANEL_LGPHILIPS_LB035Q02
	tristate "LG.Philips LB035Q02 LCD Panel"
	depends on SPI
	help
	  LCD Panel used on the Gumstix Overo Palo35

config FB_OMAP2_PANEL_SHARP_LS037V7DW01
	tristate "Sharp LS037V7DW01 LCD Panel"
	depends on BACKLIGHT_CLASS_DEVICE
	depends on DRM_PANEL_SHARP_LS037V7DW01 = n
	help
	  LCD Panel used in TI's SDP3430 and EVM boards

config FB_OMAP2_PANEL_TPO_TD028TTEC1
	tristate "TPO TD028TTEC1 LCD Panel"
	depends on SPI
	depends on DRM_PANEL_TPO_TD028TTEC1 = n
	help
	  LCD panel used in Openmoko.

config FB_OMAP2_PANEL_TPO_TD043MTEA1
	tristate "TPO TD043MTEA1 LCD Panel"
	depends on SPI
	depends on DRM_PANEL_TPO_TD043MTEA1 = n
	help
	  LCD Panel used in OMAP3 Pandora

config FB_OMAP2_PANEL_NEC_NL8048HL11
	tristate "NEC NL8048HL11 Panel"
	depends on SPI
	depends on BACKLIGHT_CLASS_DEVICE
	depends on DRM_PANEL_NEC_NL8048HL11 = n
	help
	  This NEC NL8048HL11 panel is TFT LCD used in the
	  Zoom2/3/3630 sdp boards.

endmenu
