config FB_OMAP
	tristate "OMAP frame buffer support"
	depends on FB
	depends on ARCH_OMAP1
	select FB_CFB_FILLRECT
	select FB_CFB_COPYAREA
	select FB_CFB_IMAGEBLIT
	help
          Frame buffer driver for OMAP based boards.

config FB_OMAP_LCDC_EXTERNAL
	bool "External LCD controller support"
	depends on FB_OMAP
	help
	  Say Y here, if you want to have support for boards with an
	  external LCD controller connected to the SoSSI/RFBI interface.

config FB_OMAP_LCDC_HWA742
	bool "Epson HWA742 LCD controller support"
	depends on FB_OMAP && FB_OMAP_LCDC_EXTERNAL
	help
	  Say Y here if you want to have support for the external
	  Epson HWA742 LCD controller.

config FB_OMAP_MANUAL_UPDATE
	bool "Default to manual update mode"
	depends on FB_OMAP && FB_OMAP_LCDC_EXTERNAL
	help
	  Say Y here, if your user-space applications are capable of
	  notifying the frame buffer driver when a change has occurred in
	  the frame buffer content and thus a reload of the image data to
	  the external frame buffer is required. If unsure, say N.

config FB_OMAP_LCD_MIPID
	bool "MIPI DBI-C/DCS compatible LCD support"
	depends on FB_OMAP && SPI_MASTER
	help
	  Say Y here if you want to have support for LCDs compatible with
	  the Mobile Industry Processor Interface DBI-C/DCS
	  specification. (Supported LCDs: Philips LPH8923, Sharp LS041Y3)

config FB_OMAP_LCD_H3
	bool "TPS65010 LCD controller on OMAP-H3"
	depends on MACH_OMAP_H3
	depends on TPS65010=y
	default y
	help
	  Say Y here if you want to have support for the LCD on the
	  H3 board.

config FB_OMAP_DMA_TUNE
        bool "Set DMA SDRAM access priority high"
        depends on FB_OMAP
        help
          On systems in which video memory is in system memory
          (SDRAM) this will speed up graphics DMA operations.
          If you have such a system and want to use rotation
          answer yes. Answer no if you have a dedicated video
          memory, or don't use any of the accelerated features.


