# SPDX-License-Identifier: GPL-2.0-only
menuconfig USB_GSPCA
	tristate "GSPCA based webcams"
	depends on VIDEO_DEV
	depends on INPUT || INPUT=n
	select VIDEOBUF2_VMALLOC
	help
	  Say Y here if you want to enable selecting webcams based
	  on the GSPCA framework.

	  See <file:Documentation/admin-guide/media/gspca-cardlist.rst> 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_DEV

config USB_GSPCA_BENQ
	tristate "Benq USB Camera Driver"
	depends on VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && USB_GSPCA
	help
	  Say Y here if you want support for USB cameras based on the cpia
	  CPiA chip. Note that you need at least 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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
	tristate "OV534 OV772x USB Camera Driver"
	depends on VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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_SPCA1528
	tristate "SPCA1528 USB Camera Driver"
	depends on VIDEO_DEV && 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_SPCA500
	tristate "SPCA500 USB Camera Driver"
	depends on VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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_SQ905
	tristate "SQ Technologies SQ905 based USB Camera Driver"
	depends on VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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 VIDEO_DEV && 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.

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

endif
