#
# Kconfig for sensor drivers
#

source "drivers/staging/media/atomisp/i2c/ov5693/Kconfig"
source "drivers/staging/media/atomisp/i2c/imx/Kconfig"

config VIDEO_OV2722
       tristate "OVT ov2722 sensor support"
       depends on I2C && VIDEO_V4L2
       ---help---
         This is a Video4Linux2 sensor-level driver for the OVT
         OV2722 raw camera.

         OVT is a 2M raw sensor.

         It currently only works with the atomisp driver.

config VIDEO_GC2235
       tristate "Galaxy gc2235 sensor support"
       depends on I2C && VIDEO_V4L2
       ---help---
         This is a Video4Linux2 sensor-level driver for the OVT
         GC2235 raw camera.

         GC2235 is a 2M raw sensor.

         It currently only works with the atomisp driver.

config VIDEO_OV8858
       tristate "Omnivision ov8858 sensor support"
       depends on I2C && VIDEO_V4L2 && VIDEO_ATOMISP
       ---help---
         This is a Video4Linux2 sensor-level driver for the Omnivision
         ov8858 RAW sensor.

	 OV8858 is a 8M raw sensor.

         It currently only works with the atomisp driver.

config VIDEO_MSRLIST_HELPER
       tristate "Helper library to load, parse and apply large register lists."
       depends on I2C
       ---help---
         This is a helper library to be used from a sensor driver to load, parse
         and apply large register lists.

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

config VIDEO_MT9M114
       tristate "Aptina mt9m114 sensor support"
       depends on I2C && VIDEO_V4L2
       ---help---
         This is a Video4Linux2 sensor-level driver for the Micron
         mt9m114 1.3 Mpixel camera.

         mt9m114 is video camera sensor.

         It currently only works with the atomisp driver.

config VIDEO_AP1302
       tristate "AP1302 external ISP support"
       depends on I2C && VIDEO_V4L2
       select REGMAP_I2C
       ---help---
         This is a Video4Linux2 sensor-level driver for the external
         ISP AP1302.

         AP1302 is an exteral ISP.

         It currently only works with the atomisp driver.

config VIDEO_GC0310
	tristate "GC0310 sensor support"
        depends on I2C && VIDEO_V4L2
        ---help---
         This is a Video4Linux2 sensor-level driver for the Galaxycore
         GC0310 0.3MP sensor.
	 
config VIDEO_OV2680
       tristate "Omnivision OV2680 sensor support"
       depends on I2C && VIDEO_V4L2
       ---help---
         This is a Video4Linux2 sensor-level driver for the Omnivision
         OV2680 raw camera.

         ov2680 is a 2M raw sensor.

         It currently only works with the atomisp driver.

#
# Kconfig for flash drivers
#

config VIDEO_LM3554
       tristate "LM3554 flash light driver"
       depends on VIDEO_V4L2 && I2C
       ---help---
         This is a Video4Linux2 sub-dev driver for the LM3554
         flash light driver.

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


