
config VIDEO_SAMSUNG_EXYNOS4_IS
	bool "Samsung S5P/EXYNOS4 SoC series Camera Subsystem driver"
	depends on VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API
	depends on ARCH_S5PV210 || ARCH_EXYNOS || COMPILE_TEST
	depends on OF && COMMON_CLK
	help
	  Say Y here to enable camera host interface devices for
	  Samsung S5P and EXYNOS SoC series.

if VIDEO_SAMSUNG_EXYNOS4_IS

config VIDEO_EXYNOS4_IS_COMMON
       tristate
       depends on m

config VIDEO_S5P_FIMC
	tristate "S5P/EXYNOS4 FIMC/CAMIF camera interface driver"
	depends on m
	depends on I2C
	depends on HAS_DMA
	select VIDEOBUF2_DMA_CONTIG
	select V4L2_MEM2MEM_DEV
	depends on MFD_SYSCON
	select VIDEO_EXYNOS4_IS_COMMON
	help
	  This is a V4L2 driver for Samsung S5P and EXYNOS4 SoC camera host
	  interface and video postprocessor (FIMC) devices.

	  To compile this driver as a module, choose M here: the
	  module will be called s5p-fimc.

config VIDEO_S5P_MIPI_CSIS
	tristate "S5P/EXYNOS MIPI-CSI2 receiver (MIPI-CSIS) driver"
	depends on m
	depends on REGULATOR
	depends on GENERIC_PHY
	help
	  This is a V4L2 driver for Samsung S5P and EXYNOS4 SoC MIPI-CSI2
	  receiver (MIPI-CSIS) devices.

	  To compile this driver as a module, choose M here: the
	  module will be called s5p-csis.

if SOC_EXYNOS4212 || SOC_EXYNOS4412 || SOC_EXYNOS5250

config VIDEO_EXYNOS_FIMC_LITE
	tristate "EXYNOS FIMC-LITE camera interface driver"
	depends on m
	depends on I2C
	depends on HAS_DMA
	select VIDEOBUF2_DMA_CONTIG
	select VIDEO_EXYNOS4_IS_COMMON
	help
	  This is a V4L2 driver for Samsung EXYNOS4/5 SoC FIMC-LITE camera
	  host interface.

	  To compile this driver as a module, choose M here: the
	  module will be called exynos-fimc-lite.
endif

config VIDEO_EXYNOS4_FIMC_IS
	tristate "EXYNOS4x12 FIMC-IS (Imaging Subsystem) driver"
	depends on m
	depends on I2C
	depends on HAS_DMA
	select VIDEOBUF2_DMA_CONTIG
	depends on OF
	depends on FW_LOADER
	help
	  This is a V4L2 driver for Samsung EXYNOS4x12 SoC series
	  FIMC-IS (Imaging Subsystem).

	  To compile this driver as a module, choose M here: the
	  module will be called exynos4-fimc-is.

config VIDEO_EXYNOS4_ISP_DMA_CAPTURE
	bool "EXYNOS4x12 FIMC-IS ISP Direct DMA capture support"
	depends on VIDEO_EXYNOS4_FIMC_IS
	select VIDEO_EXYNOS4_IS_COMMON
	default y
	  help
	  This option enables an additional video device node exposing a V4L2
	  video capture interface for the FIMC-IS ISP raw (Bayer) capture DMA.

endif # VIDEO_SAMSUNG_EXYNOS4_IS
