menuconfig USB_GSPCA
	tristate "GSPCA based webcams"
	depends on m
	depends on VIDEO_V4L2
	depends on INPUT || INPUT=n
	default m
	---help---
	  Say Y here if you want to enable selecting webcams based
	  on the GSPCA framework.

	  See <file:Documentation/video4linux/gspca.txt> for more info.

	  This driver uses the Video For Linux API. You must say Y or M to
	  "Video For Linux" to use this driver.

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


if USB_GSPCA && VIDEO_V4L2

source "drivers/media/usb/gspca/m5602/Kconfig"
source "drivers/media/usb/gspca/stv06xx/Kconfig"
source "drivers/media/usb/gspca/gl860/Kconfig"

config USB_GSPCA_BENQ
	tristate "Benq USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for the Benq DC E300 camera.

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

config USB_GSPCA_CONEX
	tristate "Conexant Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the Conexant chip.

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

config USB_GSPCA_CPIA1
	tristate "cpia CPiA (version 1) Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for USB cameras based on the cpia
	  CPiA chip. Note that you need atleast version 0.6.4 of libv4l for
	  applications to understand the videoformat generated by this driver.

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

config USB_GSPCA_DTCS033
	tristate "DTCS033 (Scopium) USB Astro-Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for the Scopium camera
	  for planetary astrophotography.

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

config USB_GSPCA_ETOMS
	tristate "Etoms USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the Etoms chip.

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

config USB_GSPCA_FINEPIX
	tristate "Fujifilm FinePix USB V4L2 driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the FinePix chip.

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

config USB_GSPCA_JEILINJ
	tristate "Jeilin JPEG USB V4L2 driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on this Jeilin chip.

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

config USB_GSPCA_JL2005BCD
	tristate "JL2005B/C/D USB V4L2 driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based the
	  JL2005B, JL2005C, or JL2005D chip.

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

config USB_GSPCA_KINECT
	tristate "Kinect sensor device USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for the Microsoft Kinect sensor device.

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

config USB_GSPCA_KONICA
	tristate "Konica USB Camera V4L2 driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the Konica chip.

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

config USB_GSPCA_MARS
	tristate "Mars USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the Mars chip.

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

config USB_GSPCA_MR97310A
	tristate "Mars-Semi MR97310A USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the MR97310A chip.

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

config USB_GSPCA_NW80X
	tristate "Divio based (NW80x) USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the NW80x chips.

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

config USB_GSPCA_OV519
	tristate "OV51x / OVFX2 / W996xCF USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on one of these:
	  OV511(+), OV518(+), OV519, OVFX2, W9967CF, W9968CF

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

config USB_GSPCA_OV534
	depends on !KERNEL_3_5
	tristate "OV534 OV772x USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the OV534 chip
	  and sensor OV772x (e.g. Sony Playstation EYE)

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

config USB_GSPCA_OV534_9
	tristate "OV534 OV965x USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the OV534 chip
	  and sensor OV965x (e.g. Hercules Dualpix)

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

config USB_GSPCA_PAC207
	tristate "Pixart PAC207 USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the PAC207 chip.

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

config USB_GSPCA_PAC7302
	tristate "Pixart PAC7302 USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the PAC7302 chip.

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

config USB_GSPCA_PAC7311
	tristate "Pixart PAC7311 USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the PAC7311 chip.

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

config USB_GSPCA_SE401
	tristate "SE401 USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	 Say Y here if you want support for cameras based on the
	 Endpoints (formerly known as AOX) se401 chip.

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

config USB_GSPCA_SN9C2028
	tristate "SONIX Dual-Mode USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want streaming support for Sonix SN9C2028 cameras.
	  These are supported as stillcams in libgphoto2/camlibs/sonix.

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

config USB_GSPCA_SN9C20X
	tristate "SN9C20X USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	 Say Y here if you want support for cameras based on the
	 sn9c20x chips (SN9C201 and SN9C202).

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

config USB_GSPCA_SONIXB
	tristate "SONIX Bayer USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the Sonix
	  chips with Bayer format (SN9C101, SN9C102 and SN9C103).

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

config USB_GSPCA_SONIXJ
	tristate "SONIX JPEG USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the Sonix
	  chips with JPEG format (SN9C102P, SN9C105 and >= SN9C110).

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

config USB_GSPCA_SPCA500
	tristate "SPCA500 USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the SPCA500 chip.

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

config USB_GSPCA_SPCA501
	tristate "SPCA501 USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the SPCA501 chip.

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

config USB_GSPCA_SPCA505
	tristate "SPCA505 USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the SPCA505 chip.

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

config USB_GSPCA_SPCA506
	tristate "SPCA506 USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the SPCA506 chip.

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

config USB_GSPCA_SPCA508
	tristate "SPCA508 USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the SPCA508 chip.

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

config USB_GSPCA_SPCA561
	tristate "SPCA561 USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the SPCA561 chip.

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

config USB_GSPCA_SPCA1528
	tristate "SPCA1528 USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the SPCA1528 chip.

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

config USB_GSPCA_SQ905
	tristate "SQ Technologies SQ905 based USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the SQ905 chip.

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

config USB_GSPCA_SQ905C
	tristate "SQ Technologies SQ905C based USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the SQ905C chip.

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

config USB_GSPCA_SQ930X
	tristate "SQ Technologies SQ930X based USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the SQ930X chip.

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

config USB_GSPCA_STK014
	tristate "Syntek DV4000 (STK014) USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the STK014 chip.

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

config USB_GSPCA_STK1135
	tristate "Syntek STK1135 USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the STK1135 chip.

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

config USB_GSPCA_STV0680
	tristate "STV0680 USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the STV0680 chip.

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

config USB_GSPCA_SUNPLUS
	tristate "SUNPLUS USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the Sunplus
	  SPCA504(abc) SPCA533 SPCA536 chips.

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

config USB_GSPCA_T613
	tristate "T613 (JPEG Compliance) USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the T613 chip.

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

config USB_GSPCA_TOPRO
	tristate "TOPRO USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the
	  TP6800 and TP6810 Topro chips.

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

config USB_GSPCA_TOUPTEK
	tristate "Touptek USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the ToupTek UCMOS
	  / AmScope MU series camera.

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

config USB_GSPCA_TV8532
	tristate "TV8532 USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the TV8531 chip.

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

config USB_GSPCA_VC032X
	tristate "VC032X USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the VC032X chip.

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

config USB_GSPCA_VICAM
	tristate "ViCam USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for the 3com homeconnect camera
	  (vicam).

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

config USB_GSPCA_XIRLINK_CIT
	tristate "Xirlink C-It USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for Xirlink C-It bases cameras.

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

config USB_GSPCA_ZC3XX
	tristate "ZC3XX USB Camera Driver"
	depends on m
	depends on VIDEO_V4L2 && USB_GSPCA
	help
	  Say Y here if you want support for cameras based on the ZC3XX chip.

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

endif
