menuconfig OMAP2_DSS
        tristate "OMAP2+ Display Subsystem support (EXPERIMENTAL)"
        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 spesifications.

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 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
        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 spesifications.

config OMAP2_DSS_USE_DSI_PLL
	bool "Use DSI PLL for PCLK (EXPERIMENTAL)"
	default n
	depends on OMAP2_DSS_DSI
	help
	  Use DSI PLL to generate pixel clock.  Currently only for DPI output.
	  DSI PLL can be used to generate higher and more precise pixel clocks.

config OMAP2_DSS_FAKE_VSYNC
	bool "Fake VSYNC irq from manual update displays"
	default n
	help
	  If this is selected, DSI will generate a fake DISPC VSYNC interrupt
	  when DSI has sent a frame. This is only needed with DSI or RFBI
	  displays using manual mode, and you want VSYNC to, for example,
	  time animation.

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.

endif
