config VIDEO_DAVINCI_VPIF_DISPLAY
	tristate "TI DaVinci VPIF V4L2-Display driver"
	depends on VIDEO_DEV && ARCH_DAVINCI
	select VIDEOBUF2_DMA_CONTIG
	select VIDEO_ADV7343 if MEDIA_SUBDRV_AUTOSELECT
	select VIDEO_THS7303 if MEDIA_SUBDRV_AUTOSELECT
	help
	  Enables Davinci VPIF module used for display devices.
	  This module is used for display on TI DM6467/DA850/OMAPL138
	  SoCs.

	  To compile this driver as a module, choose M here. There will
	  be two modules called vpif.ko and vpif_display.ko

config VIDEO_DAVINCI_VPIF_CAPTURE
	tristate "TI DaVinci VPIF video capture driver"
	depends on VIDEO_DEV && ARCH_DAVINCI
	select VIDEOBUF2_DMA_CONTIG
	help
	  Enables Davinci VPIF module used for capture devices.
	  This module is used for capture on TI DM6467/DA850/OMAPL138
	  SoCs.

	  To compile this driver as a module, choose M here. There will
	  be two modules called vpif.ko and vpif_capture.ko

config VIDEO_DM6446_CCDC
	tristate "TI DM6446 CCDC video capture driver"
	depends on VIDEO_V4L2 && (ARCH_DAVINCI || ARCH_OMAP3)
	select VIDEOBUF_DMA_CONTIG
	help
	   Enables DaVinci CCD hw module. DaVinci CCDC hw interfaces
	   with decoder modules such as TVP5146 over BT656 or
	   sensor module such as MT9T001 over a raw interface. This
	   module configures the interface and CCDC/ISIF to do
	   video frame capture from slave decoders.

	   To compile this driver as a module, choose M here. There will
	   be three modules called vpfe_capture.ko, vpss.ko and dm644x_ccdc.ko

config VIDEO_DM355_CCDC
	tristate "TI DM355 CCDC video capture driver"
	depends on VIDEO_V4L2 && ARCH_DAVINCI
	select VIDEOBUF_DMA_CONTIG
	help
	   Enables DM355 CCD hw module. DM355 CCDC hw interfaces
	   with decoder modules such as TVP5146 over BT656 or
	   sensor module such as MT9T001 over a raw interface. This
	   module configures the interface and CCDC/ISIF to do
	   video frame capture from a slave decoders

	   To compile this driver as a module, choose M here. There will
	   be three modules called vpfe_capture.ko, vpss.ko and dm355_ccdc.ko

config VIDEO_DM365_ISIF
	tristate "TI DM365 ISIF video capture driver"
	depends on VIDEO_V4L2 && ARCH_DAVINCI
	select VIDEOBUF_DMA_CONTIG
	help
	   Enables ISIF hw module. This is the hardware module for
	   configuring ISIF in VPFE to capture Raw Bayer RGB data from
	   a image sensor or YUV data from a YUV source.

	   To compile this driver as a module, choose M here. There will
	   be three modules called vpfe_capture.ko, vpss.ko and isif.ko

config VIDEO_DAVINCI_VPBE_DISPLAY
	tristate "TI DaVinci VPBE V4L2-Display driver"
	depends on ARCH_DAVINCI
	select VIDEOBUF2_DMA_CONTIG
	help
	    Enables Davinci VPBE module used for display devices.
	    This module is used for display on TI DM644x/DM365/DM355
	    based display devices.

	    To compile this driver as a module, choose M here. There will
	    be five modules created called vpss.ko, vpbe.ko, vpbe_osd.ko,
	    vpbe_venc.ko and vpbe_display.ko
