if USB_GADGET

config USB_G_CCG
	tristate "Configurable Composite Gadget (STAGING)"
	depends on STAGING && !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
	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.

endif # USB_GADGET
