config OMAP2_DSS_INIT
	bool

menuconfig OMAP2_DSS
        tristate "OMAP2+ Display Subsystem support"
	select VIDEOMODE_HELPERS
	select OMAP2_DSS_INIT
	select HDMI
        help
	  OMAP2+ Display Subsystem support.

if OMAP2_DSS

config OMAP2_DSS_DEBUG
	bool "Debug support"
	default n
	help
	  This enables printing of debug messages. Alternatively, debug messages
	  can also be enabled by setting CONFIG_DYNAMIC_DEBUG and then setting
	  appropriate flags in <debugfs>/dynamic_debug/control.

config OMAP2_DSS_DEBUGFS
	bool "Debugfs filesystem support"
	depends on DEBUG_FS
	default n
	help
	  This enables debugfs for OMAPDSS at <debugfs>/omapdss. This enables
	  querying about clock configuration and register configuration of dss,
	  dispc, dsi, hdmi and rfbi.

config OMAP2_DSS_COLLECT_IRQ_STATS
	bool "Collect DSS IRQ statistics"
	depends on OMAP2_DSS_DEBUGFS
	default n
	help
	  Collect DSS IRQ statistics, printable via debugfs.

	  The statistics can be found from
	  <debugfs>/omapdss/dispc_irq for DISPC interrupts, and
	  <debugfs>/omapdss/dsi_irq for DSI interrupts.

config OMAP2_DSS_DPI
	bool "DPI support"
	default y
	help
	  DPI Interface. This is the Parallel Display Interface.

config OMAP2_DSS_RFBI
	bool "RFBI support"
	depends on BROKEN
        default n
	help
	  MIPI DBI support (RFBI, Remote Framebuffer Interface, in Texas
	  Instrument's terminology).

	  DBI is a bus between the host processor and a peripheral,
	  such as a display or a framebuffer chip.

	  See http://www.mipi.org/ for DBI specifications.

config OMAP2_DSS_VENC
	bool "VENC support"
        default y
	help
	  OMAP Video Encoder support for S-Video and composite TV-out.

config OMAP2_DSS_HDMI_COMMON
	bool

config OMAP4_DSS_HDMI
	bool "HDMI support for OMAP4"
        default y
	select OMAP2_DSS_HDMI_COMMON
	help
	  HDMI support for OMAP4 based SoCs.

config OMAP4_DSS_HDMI_AUDIO
	bool

config OMAP5_DSS_HDMI
	bool "HDMI support for OMAP5"
	default n
	select OMAP2_DSS_HDMI_COMMON
	help
	  HDMI Interface for OMAP5 and similar cores. This adds the High
	  Definition Multimedia Interface. See http://www.hdmi.org/ for HDMI
	  specification.

config OMAP5_DSS_HDMI_AUDIO
	depends on OMAP5_DSS_HDMI
	bool

config OMAP2_DSS_SDI
	bool "SDI support"
        default n
	help
	  SDI (Serial Display Interface) support.

	  SDI is a high speed one-way display serial bus between the host
	  processor and a display.

config OMAP2_DSS_DSI
	bool "DSI support"
        default n
	help
	  MIPI DSI (Display Serial Interface) support.

	  DSI is a high speed half-duplex serial interface between the host
	  processor and a peripheral, such as a display or a framebuffer chip.

	  See http://www.mipi.org/ for DSI specifications.

config OMAP2_DSS_MIN_FCK_PER_PCK
	int "Minimum FCK/PCK ratio (for scaling)"
	range 0 32
	default 0
	help
	  This can be used to adjust the minimum FCK/PCK ratio.

	  With this you can make sure that DISPC FCK is at least
	  n x PCK. Video plane scaling requires higher FCK than
	  normally.

	  If this is set to 0, there's no extra constraint on the
	  DISPC FCK. However, the FCK will at minimum be
	  2xPCK (if active matrix) or 3xPCK (if passive matrix).

	  Max FCK is 173MHz, so this doesn't work if your PCK
	  is very high.

config OMAP2_DSS_SLEEP_AFTER_VENC_RESET
	bool "Sleep 20ms after VENC reset"
	default y
	help
	  There is a 20ms sleep after VENC reset which seemed to fix the
	  reset. The reason for the bug is unclear, and it's also unclear
	  on what platforms this happens.

	  This option enables the sleep, and is enabled by default. You can
	  disable the sleep if it doesn't cause problems on your platform.

endif
