#
# Multimedia Video device configuration
#

if VIDEO_V4L2

config VIDEO_IR_I2C
	tristate "I2C module for IR" if !MEDIA_SUBDRV_AUTOSELECT
	depends on m
	depends on I2C && RC_CORE
	default y
	---help---
	  Most boards have an IR chip directly connected via GPIO. However,
	  some video boards have the IR connected via I2C bus.

	  If your board doesn't have an I2C IR chip, you may disable this
	  option.

	  In doubt, say Y.

#
# Encoder / Decoder module configuration
#

menu "Encoders, decoders, sensors and other helper chips"
	visible if !MEDIA_SUBDRV_AUTOSELECT || COMPILE_TEST

comment "Audio decoders, processors and mixers"

config VIDEO_TVAUDIO
	tristate "Simple audio decoder chips"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for several audio decoder chips found on some bt8xx boards:
	  Philips: tda9840, tda9873h, tda9874h/a, tda9850, tda985x, tea6300,
		   tea6320, tea6420, tda8425, ta8874z.
	  Microchip: pic16c54 based design on ProVideo PV951 board.

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

config VIDEO_TDA7432
	tristate "Philips TDA7432 audio processor"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for tda7432 audio decoder chip found on some bt8xx boards.

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

config VIDEO_TDA9840
	tristate "Philips TDA9840 audio processor"
	depends on m
	depends on I2C
	---help---
	  Support for tda9840 audio decoder chip found on some Zoran boards.

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

config VIDEO_TEA6415C
	tristate "Philips TEA6415C audio processor"
	depends on m
	depends on I2C
	---help---
	  Support for tea6415c audio decoder chip found on some bt8xx boards.

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

config VIDEO_TEA6420
	tristate "Philips TEA6420 audio processor"
	depends on m
	depends on I2C
	---help---
	  Support for tea6420 audio decoder chip found on some bt8xx boards.

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

config VIDEO_MSP3400
	tristate "Micronas MSP34xx audio decoders"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for the Micronas MSP34xx series of audio decoders.

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

config VIDEO_CS3308
	tristate "Cirrus Logic CS3308 audio ADC"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for the Cirrus Logic CS3308 High Performance 8-Channel
	  Analog Volume Control

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

config VIDEO_CS5345
	tristate "Cirrus Logic CS5345 audio ADC"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for the Cirrus Logic CS5345 24-bit, 192 kHz
	  stereo A/D converter.

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

config VIDEO_CS53L32A
	tristate "Cirrus Logic CS53L32A audio ADC"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for the Cirrus Logic CS53L32A low voltage
	  stereo A/D converter.

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

config VIDEO_TLV320AIC23B
	tristate "Texas Instruments TLV320AIC23B audio codec"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for the Texas Instruments TLV320AIC23B audio codec.

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

config VIDEO_UDA1342
	tristate "Philips UDA1342 audio codec"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for the Philips UDA1342 audio codec.

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

config VIDEO_WM8775
	tristate "Wolfson Microelectronics WM8775 audio ADC with input mixer"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for the Wolfson Microelectronics WM8775 high
	  performance stereo A/D Converter with a 4 channel input mixer.

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

config VIDEO_WM8739
	tristate "Wolfson Microelectronics WM8739 stereo audio ADC"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for the Wolfson Microelectronics WM8739
	  stereo A/D Converter.

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

config VIDEO_VP27SMPX
	tristate "Panasonic VP27's internal MPX"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for the internal MPX of the Panasonic VP27s tuner.

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

config VIDEO_SONY_BTF_MPX
	tristate "Sony BTF's internal MPX"
	depends on m
	depends on VIDEO_V4L2 && I2C
	help
	  Support for the internal MPX of the Sony BTF-PG472Z tuner.

	  To compile this driver as a module, choose M here: the
	  module will be called sony-btf-mpx.

comment "RDS decoders"

config VIDEO_SAA6588
	tristate "SAA6588 Radio Chip RDS decoder support"
	depends on m
	depends on VIDEO_V4L2 && I2C

	help
	  Support for this Radio Data System (RDS) decoder. This allows
	  seeing radio station identification transmitted using this
	  standard.

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

comment "Video decoders"

config VIDEO_ADV7180
	tristate "Analog Devices ADV7180 decoder"
	depends on m
	depends on VIDEO_V4L2 && I2C && VIDEO_V4L2_SUBDEV_API
	---help---
	  Support for the Analog Devices ADV7180 video decoder.

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

config VIDEO_ADV7183
	tristate "Analog Devices ADV7183 decoder"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  V4l2 subdevice driver for the Analog Devices
	  ADV7183 video decoder.

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

config VIDEO_ADV7604
	depends on !KERNEL_3_17
	tristate "Analog Devices ADV7604 decoder"
	depends on m
	depends on VIDEO_V4L2 && I2C && VIDEO_V4L2_SUBDEV_API
	depends on GPIOLIB || COMPILE_TEST
	select BPAUTO_HDMI
	---help---
	  Support for the Analog Devices ADV7604 video decoder.

	  This is a Analog Devices Component/Graphics Digitizer
	  with 4:1 Multiplexed HDMI Receiver.

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

config VIDEO_ADV7842
	tristate "Analog Devices ADV7842 decoder"
	depends on m
	depends on VIDEO_V4L2 && I2C && VIDEO_V4L2_SUBDEV_API
	select BPAUTO_HDMI
	---help---
	  Support for the Analog Devices ADV7842 video decoder.

	  This is a Analog Devices Component/Graphics/SD Digitizer
	  with 2:1 Multiplexed HDMI Receiver.

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

config VIDEO_BT819
	tristate "BT819A VideoStream decoder"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for BT819A video decoder.

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

config VIDEO_BT856
	tristate "BT856 VideoStream decoder"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for BT856 video decoder.

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

config VIDEO_BT866
	tristate "BT866 VideoStream decoder"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for BT866 video decoder.

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

config VIDEO_KS0127
	tristate "KS0127 video decoder"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for KS0127 video decoder.

	  This chip is used on AverMedia AVS6EYES Zoran-based MJPEG
	  cards.

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

config VIDEO_ML86V7667
	tristate "OKI ML86V7667 video decoder"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for the OKI Semiconductor ML86V7667 video decoder.

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

config VIDEO_SAA7110
	tristate "Philips SAA7110 video decoder"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for the Philips SAA7110 video decoders.

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

config VIDEO_SAA711X
	tristate "Philips SAA7111/3/4/5 video decoders"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for the Philips SAA7111/3/4/5 video decoders.

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

config VIDEO_TC358743
	depends on !KERNEL_3_13
	tristate "Toshiba TC358743 decoder"
	depends on m
	depends on VIDEO_V4L2 && I2C && VIDEO_V4L2_SUBDEV_API
	select BPAUTO_HDMI
	---help---
	  Support for the Toshiba TC358743 HDMI to MIPI CSI-2 bridge.

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

config VIDEO_TVP514X
	tristate "Texas Instruments TVP514x video decoder"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  This is a Video4Linux2 sensor-level driver for the TI TVP5146/47
	  decoder. It is currently working with the TI OMAP3 camera
	  controller.

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

config VIDEO_TVP5150
	tristate "Texas Instruments TVP5150 video decoder"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for the Texas Instruments TVP5150 video decoder.

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

config VIDEO_TVP7002
	tristate "Texas Instruments TVP7002 video decoder"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for the Texas Instruments TVP7002 video decoder.

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

config VIDEO_TW2804
	tristate "Techwell TW2804 multiple video decoder"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for the Techwell tw2804 multiple video decoder.

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

config VIDEO_TW9903
	tristate "Techwell TW9903 video decoder"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for the Techwell tw9903 multi-standard video decoder
	  with high quality down scaler.

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

config VIDEO_TW9906
	tristate "Techwell TW9906 video decoder"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for the Techwell tw9906 enhanced multi-standard comb filter
	  video decoder with YCbCr input support.

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

config VIDEO_VPX3220
	tristate "vpx3220a, vpx3216b & vpx3214c video decoders"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for VPX322x video decoders.

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

comment "Video and audio decoders"

config VIDEO_SAA717X
	tristate "Philips SAA7171/3/4 audio/video decoders"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for the Philips SAA7171/3/4 audio/video decoders.

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

source "drivers/media/i2c/cx25840/Kconfig"

comment "Video encoders"

config VIDEO_SAA7127
	tristate "Philips SAA7127/9 digital video encoders"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for the Philips SAA7127/9 digital video encoders.

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

config VIDEO_SAA7185
	tristate "Philips SAA7185 video encoder"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for the Philips SAA7185 video encoder.

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

config VIDEO_ADV7170
	tristate "Analog Devices ADV7170 video encoder"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for the Analog Devices ADV7170 video encoder driver

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

config VIDEO_ADV7175
	tristate "Analog Devices ADV7175 video encoder"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for the Analog Devices ADV7175 video encoder driver

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

config VIDEO_ADV7343
	depends on !KERNEL_3_4
	tristate "ADV7343 video encoder"
	depends on m
	depends on I2C
	help
	  Support for Analog Devices I2C bus based ADV7343 encoder.

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

config VIDEO_ADV7393
	tristate "ADV7393 video encoder"
	depends on m
	depends on I2C
	help
	  Support for Analog Devices I2C bus based ADV7393 encoder.

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

config VIDEO_ADV7511
	tristate "Analog Devices ADV7511 encoder"
	depends on m
	depends on VIDEO_V4L2 && I2C && VIDEO_V4L2_SUBDEV_API
	select BPAUTO_HDMI
	---help---
	  Support for the Analog Devices ADV7511 video encoder.

	  This is a Analog Devices HDMI transmitter.

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

config VIDEO_AD9389B
	tristate "Analog Devices AD9389B encoder"
	depends on m
	depends on VIDEO_V4L2 && I2C && VIDEO_V4L2_SUBDEV_API
	---help---
	  Support for the Analog Devices AD9389B video encoder.

	  This is a Analog Devices HDMI transmitter.

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

config VIDEO_AK881X
	tristate "AK8813/AK8814 video encoders"
	depends on m
	depends on I2C
	help
	  Video output driver for AKM AK8813 and AK8814 TV encoders

config VIDEO_THS8200
	tristate "Texas Instruments THS8200 video encoder"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for the Texas Instruments THS8200 video encoder.

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

comment "Camera sensor devices"

config VIDEO_APTINA_PLL
	tristate
	depends on m

config VIDEO_SMIAPP_PLL
	tristate
	depends on m

config VIDEO_OV2659
	tristate "OmniVision OV2659 sensor support"
	depends on m
	depends on VIDEO_V4L2 && I2C
	depends on MEDIA_CAMERA_SUPPORT
	---help---
	  This is a Video4Linux2 sensor-level driver for the OmniVision
	  OV2659 camera.

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

config VIDEO_OV7640
	tristate "OmniVision OV7640 sensor support"
	depends on m
	depends on I2C && VIDEO_V4L2
	depends on MEDIA_CAMERA_SUPPORT
	---help---
	  This is a Video4Linux2 sensor-level driver for the OmniVision
	  OV7640 camera.

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

config VIDEO_OV7670
	tristate "OmniVision OV7670 sensor support"
	depends on m
	depends on I2C && VIDEO_V4L2
	depends on MEDIA_CAMERA_SUPPORT
	---help---
	  This is a Video4Linux2 sensor-level driver for the OmniVision
	  OV7670 VGA camera.  It currently only works with the M88ALP01
	  controller.

config VIDEO_OV9650
	tristate "OmniVision OV9650/OV9652 sensor support"
	depends on m
	depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API
	---help---
	  This is a V4L2 sensor-level driver for the Omnivision
	  OV9650 and OV9652 camera sensors.

config VIDEO_VS6624
	tristate "ST VS6624 sensor support"
	depends on m
	depends on VIDEO_V4L2 && I2C
	depends on MEDIA_CAMERA_SUPPORT
	---help---
	  This is a Video4Linux2 sensor-level driver for the ST VS6624
	  camera.

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

config VIDEO_MT9M032
	tristate "MT9M032 camera sensor support"
	depends on m
	depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API
	depends on MEDIA_CAMERA_SUPPORT
	select VIDEO_APTINA_PLL
	---help---
	  This driver supports MT9M032 camera sensors from Aptina, monochrome
	  models only.

config VIDEO_MT9P031
	depends on !KERNEL_3_13
	tristate "Aptina MT9P031 support"
	depends on m
	depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API
	depends on MEDIA_CAMERA_SUPPORT
	select VIDEO_APTINA_PLL
	---help---
	  This is a Video4Linux2 sensor-level driver for the Aptina
	  (Micron) mt9p031 5 Mpixel camera.

config VIDEO_MT9T001
	depends on !KERNEL_3_5
	tristate "Aptina MT9T001 support"
	depends on m
	depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API
	depends on MEDIA_CAMERA_SUPPORT
	---help---
	  This is a Video4Linux2 sensor-level driver for the Aptina
	  (Micron) mt0t001 3 Mpixel camera.

config VIDEO_MT9V011
	tristate "Micron mt9v011 sensor support"
	depends on m
	depends on I2C && VIDEO_V4L2
	depends on MEDIA_CAMERA_SUPPORT
	---help---
	  This is a Video4Linux2 sensor-level driver for the Micron
	  mt0v011 1.3 Mpixel camera.  It currently only works with the
	  em28xx driver.

config VIDEO_MT9V032
	depends on !KERNEL_3_3
	tristate "Micron MT9V032 sensor support"
	depends on m
	depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API
	depends on MEDIA_CAMERA_SUPPORT
	depends on REGMAP_I2C
	---help---
	  This is a Video4Linux2 sensor-level driver for the Micron
	  MT9V032 752x480 CMOS sensor.

config VIDEO_SR030PC30
	tristate "Siliconfile SR030PC30 sensor support"
	depends on m
	depends on I2C && VIDEO_V4L2
	depends on MEDIA_CAMERA_SUPPORT
	---help---
	  This driver supports SR030PC30 VGA camera from Siliconfile

config VIDEO_NOON010PC30
	depends on !KERNEL_3_5
	tristate "Siliconfile NOON010PC30 sensor support"
	depends on m
	depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API
	depends on MEDIA_CAMERA_SUPPORT
	---help---
	  This driver supports NOON010PC30 CIF camera from Siliconfile

source "drivers/media/i2c/m5mols/Kconfig"

config VIDEO_S5K6AA
	depends on !KERNEL_3_3
	depends on !KERNEL_3_13
	tristate "Samsung S5K6AAFX sensor support"
	depends on m
	depends on MEDIA_CAMERA_SUPPORT
	depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API
	---help---
	  This is a V4L2 sensor-level driver for Samsung S5K6AA(FX) 1.3M
	  camera sensor with an embedded SoC image signal processor.

config VIDEO_S5K6A3
	depends on !KERNEL_3_13
	tristate "Samsung S5K6A3 sensor support"
	depends on m
	depends on MEDIA_CAMERA_SUPPORT
	depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API
	---help---
	  This is a V4L2 sensor-level driver for Samsung S5K6A3 raw
	  camera sensor.

config VIDEO_S5K4ECGX
	depends on !KERNEL_3_4
        tristate "Samsung S5K4ECGX sensor support"
        depends on m
        depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API
        ---help---
          This is a V4L2 sensor-level driver for Samsung S5K4ECGX 5M
          camera sensor with an embedded SoC image signal processor.

config VIDEO_S5K5BAF
	depends on !KERNEL_3_4
	tristate "Samsung S5K5BAF sensor support"
	depends on m
	depends on I2C && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API
	---help---
	  This is a V4L2 sensor-level driver for Samsung S5K5BAF 2M
	  camera sensor with an embedded SoC image signal processor.

source "drivers/media/i2c/smiapp/Kconfig"

config VIDEO_S5C73M3
	depends on !KERNEL_3_6
	tristate "Samsung S5C73M3 sensor support"
	depends on m
	depends on I2C && SPI && VIDEO_V4L2 && VIDEO_V4L2_SUBDEV_API
	---help---
	  This is a V4L2 sensor-level driver for Samsung S5C73M3
	  8 Mpixel camera.

comment "Flash devices"

config VIDEO_ADP1653
	depends on !KERNEL_3_13
	tristate "ADP1653 flash support"
	depends on m
	depends on I2C && VIDEO_V4L2 && MEDIA_CONTROLLER
	depends on MEDIA_CAMERA_SUPPORT
	---help---
	  This is a driver for the ADP1653 flash controller. It is used for
	  example in Nokia N900.

config VIDEO_AS3645A
	tristate "AS3645A flash driver support"
	depends on m
	depends on I2C && VIDEO_V4L2 && MEDIA_CONTROLLER
	depends on MEDIA_CAMERA_SUPPORT
	---help---
	  This is a driver for the AS3645A and LM3555 flash controllers. It has
	  build in control for flash, torch and indicator LEDs.

config VIDEO_LM3560
	depends on !KERNEL_3_3
	tristate "LM3560 dual flash driver support"
	depends on m
	depends on I2C && VIDEO_V4L2 && MEDIA_CONTROLLER
	depends on MEDIA_CAMERA_SUPPORT
	depends on REGMAP_I2C
	---help---
	  This is a driver for the lm3560 dual flash controllers. It controls
	  flash, torch LEDs.

config VIDEO_LM3646
	depends on !KERNEL_3_3
	tristate "LM3646 dual flash driver support"
	depends on m
	depends on I2C && VIDEO_V4L2 && MEDIA_CONTROLLER
	depends on MEDIA_CAMERA_SUPPORT
	depends on REGMAP_I2C
	---help---
	  This is a driver for the lm3646 dual flash controllers. It controls
	  flash, torch LEDs.

comment "Video improvement chips"

config VIDEO_UPD64031A
	tristate "NEC Electronics uPD64031A Ghost Reduction"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for the NEC Electronics uPD64031A Ghost Reduction
	  video chip. It is most often found in NTSC TV cards made for
	  Japan and is used to reduce the 'ghosting' effect that can
	  be present in analog TV broadcasts.

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

config VIDEO_UPD64083
	tristate "NEC Electronics uPD64083 3-Dimensional Y/C separation"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	  Support for the NEC Electronics uPD64083 3-Dimensional Y/C
	  separation video chip. It is used to improve the quality of
	  the colors of a composite signal.

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

comment "Audio/Video compression chips"

config VIDEO_SAA6752HS
	tristate "Philips SAA6752HS MPEG-2 Audio/Video Encoder"
	depends on m
	depends on VIDEO_V4L2 && I2C
	depends on CRC32
	---help---
	  Support for the Philips SAA6752HS MPEG-2 video and MPEG-audio/AC-3
	  audio encoder with multiplexer.

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

comment "Miscellaneous helper chips"

config VIDEO_THS7303
	tristate "THS7303/53 Video Amplifier"
	depends on m
	depends on VIDEO_V4L2 && I2C
	help
	  Support for TI THS7303/53 video amplifier

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

config VIDEO_M52790
	tristate "Mitsubishi M52790 A/V switch"
	depends on m
	depends on VIDEO_V4L2 && I2C
	---help---
	 Support for the Mitsubishi M52790 A/V switch.

	 To compile this driver as a module, choose M here: the
	 module will be called m52790.
endmenu

menu "Sensors used on soc_camera driver"

if SOC_CAMERA
	source "drivers/media/i2c/soc_camera/Kconfig"
endif

endmenu

endif
