config FB_OMAP
	tristate "OMAP frame buffer support (EXPERIMENTAL)"
	depends on FB && ARCH_OMAP
	select FB_CFB_FILLRECT
	select FB_CFB_COPYAREA
	select FB_CFB_IMAGEBLIT
	help
          Frame buffer driver for OMAP based boards.

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_BOOTLOADER_INIT
	bool "Check bootloader initialization"
	depends on FB_OMAP
	help
	  Say Y here if you want to enable checking if the bootloader has
	  already initialized the display controller. In this case the
	  driver will skip the initialization.

config FB_OMAP_CONSISTENT_DMA_SIZE
	int "Consistent DMA memory size (MB)"
	depends on FB_OMAP
	range 1 14
	default 2
	help
	  Increase the DMA consistent memory size according to your video
	  memory needs, for example if you want to use multiple planes.
	  The size must be 2MB aligned.
	  If unsure say 1.

config FB_OMAP_DMA_TUNE
        bool "Set DMA SDRAM access priority high"
        depends on FB_OMAP && ARCH_OMAP1
        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.

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_LCDC_BLIZZARD
	bool "Epson Blizzard 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 Blizzard LCD controller.
