if USB_GADGET

config USB_G_CCG
	tristate "Configurable Composite Gadget (STAGING)"
	depends on STAGING && BLOCK && NET && !USB_ZERO && !USB_ZERO_HNPTEST && !USB_AUDIO && !GADGET_UAC1 && !USB_ETH && !USB_ETH_RNDIS && !USB_ETH_EEM && !USB_G_NCM && !USB_GADGETFS && !USB_FUNCTIONFS && !USB_FUNCTIONFS_ETH && !USB_FUNCTIONFS_RNDIS && !USB_FUNCTIONFS_GENERIC && !USB_FILE_STORAGE && !USB_FILE_STORAGE_TEST && !USB_MASS_STORAGE && !USB_G_SERIAL && !USB_MIDI_GADGET && !USB_G_PRINTER && !USB_CDC_COMPOSITE && !USB_G_NOKIA && !USB_G_ACM_MS && !USB_G_MULTI && !USB_G_MULTI_RNDIS && !USB_G_MULTI_CDC && !USB_G_HID && !USB_G_DBGP && !USB_G_WEBCAM && TTY
	help
	  The Configurable Composite Gadget supports multiple USB
	  functions: acm, mass storage, rndis and FunctionFS.
	  Each function can be configured and enabled/disabled
	  dynamically from userspace through a sysfs interface.

	  In order to compile this (either as a module or built-in),
	  "USB Gadget Drivers" and anything under it must not be
	  selected compiled-in in
	  Device Drivers->USB Support->USB Gadget Support.
	  However, you can say "M" there, if you do, the
	  Configurable Composite Gadget can be compiled "M" only
	  or not at all.

	  BIG FAT NOTE: DON'T RELY ON THIS USERINTERFACE HERE! AS PART
	  OF THE REWORK DONE HERE WILL BE A NEW USER INTERFACE WITHOUT ANY
	  COMPATIBILITY TO THIS SYSFS INTERFACE HERE. BE AWARE OF THIS
	  BEFORE SELECTING THIS.

endif # USB_GADGET
