menuconfig OMAP2_DSS
        tristate "OMAP2+ Display Subsystem support"
        depends on ARCH_OMAP2PLUS
        help
	  OMAP2+ Display Subsystem support.

if OMAP2_DSS

config OMAP2_VRAM_SIZE
	int "VRAM size (MB)"
	range 0 32
	default 0
	help
	  The amount of SDRAM to reserve at boot time for video RAM use.
	  This VRAM will be used by omapfb and other drivers that need
	  large continuous RAM area for video use.

	  You can also set this with "vram=<bytes>" kernel argument, or
	  in the board file.

config OMAP2_DSS_DEBUG_SUPPORT
        bool "Debug support"
	default y
	help
	  This enables debug messages. You need to enable printing
	  with 'debug' module parameter.

config OMAP2_DSS_COLLECT_IRQ_STATS
	bool "Collect DSS IRQ statistics"
	depends on OMAP2_DSS_DEBUG_SUPPORT
	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"
        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 OMAP4_DSS_HDMI
	bool "HDMI support"
	depends on ARCH_OMAP4
        default y
	help
	  HDMI Interface. This adds the High Definition Multimedia Interface.
	  See http://www.hdmi.org/ for HDMI specification.

config OMAP4_DSS_HDMI_AUDIO
	bool
	depends on OMAP4_DSS_HDMI

config OMAP2_DSS_SDI
	bool "SDI support"
	depends on ARCH_OMAP3
        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"
	depends on ARCH_OMAP3 || ARCH_OMAP4 || ARCH_OMAP5
        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
