# drivers/media/platform/s5p-tv/Kconfig
#
# Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
#	http://www.samsung.com/
# Tomasz Stanislawski <t.stanislaws@samsung.com>
#
# Licensed under GPL

config VIDEO_SAMSUNG_S5P_TV
	bool "Samsung TV driver for S5P platform"
	depends on (PLAT_S5P || ARCH_EXYNOS) && PM_RUNTIME
	default n
	---help---
	  Say Y here to enable selecting the TV output devices for
	  Samsung S5P platform.

if VIDEO_SAMSUNG_S5P_TV

config VIDEO_SAMSUNG_S5P_HDMI
	tristate "Samsung HDMI Driver"
	depends on m
	depends on VIDEO_V4L2
	depends on VIDEO_SAMSUNG_S5P_TV
	select VIDEO_SAMSUNG_S5P_HDMIPHY
	help
	  Say Y here if you want support for the HDMI output
	  interface in S5P Samsung SoC. The driver can be compiled
	  as module. It is an auxiliary driver, that exposes a V4L2
	  subdev for use by other drivers. This driver requires
	  hdmiphy driver to work correctly.

config VIDEO_SAMSUNG_S5P_HDMI_DEBUG
	bool "Enable debug for HDMI Driver"
	depends on VIDEO_SAMSUNG_S5P_HDMI
	default n
	help
	  Enables debugging for HDMI driver.

config VIDEO_SAMSUNG_S5P_HDMIPHY
	tristate "Samsung HDMIPHY Driver"
	depends on m
	depends on VIDEO_DEV && VIDEO_V4L2 && I2C
	depends on VIDEO_SAMSUNG_S5P_TV
	help
	  Say Y here if you want support for the physical HDMI
	  interface in S5P Samsung SoC. The driver can be compiled
	  as module. It is an I2C driver, that exposes a V4L2
	  subdev for use by other drivers.

config VIDEO_SAMSUNG_S5P_SII9234
	tristate "Samsung SII9234 Driver"
	depends on m
	depends on VIDEO_DEV && VIDEO_V4L2 && I2C
	depends on VIDEO_SAMSUNG_S5P_TV
	help
	  Say Y here if you want support for the MHL interface
	  in S5P Samsung SoC. The driver can be compiled
	  as module. It is an I2C driver, that exposes a V4L2
	  subdev for use by other drivers.

config VIDEO_SAMSUNG_S5P_SDO
	tristate "Samsung Analog TV Driver"
	depends on m
	depends on VIDEO_DEV && VIDEO_V4L2
	depends on VIDEO_SAMSUNG_S5P_TV
	help
	  Say Y here if you want support for the analog TV output
	  interface in S5P Samsung SoC. The driver can be compiled
	  as module. It is an auxiliary driver, that exposes a V4L2
	  subdev for use by other drivers. This driver requires
	  hdmiphy driver to work correctly.

config VIDEO_SAMSUNG_S5P_MIXER
	tristate "Samsung Mixer and Video Processor Driver"
	depends on m
	depends on VIDEO_DEV && VIDEO_V4L2
	depends on VIDEO_SAMSUNG_S5P_TV
	select VIDEOBUF2_DMA_CONTIG
	help
	  Say Y here if you want support for the Mixer in Samsung S5P SoCs.
	  This device produce image data to one of output interfaces.

config VIDEO_SAMSUNG_S5P_MIXER_DEBUG
	bool "Enable debug for Mixer Driver"
	depends on VIDEO_SAMSUNG_S5P_MIXER
	default n
	help
	  Enables debugging for Mixer driver.

endif # VIDEO_SAMSUNG_S5P_TV
