What:		/config/usb-gadget/gadget/functions/uvc.name
Date:		Dec 2014
KernelVersion:	4.0
Description:	UVC function directory

		===================	=============================
		streaming_maxburst	0..15 (ss only)
		streaming_maxpacket	1..1023 (fs), 1..3072 (hs/ss)
		streaming_interval	1..16
		function_name		string [32]
		===================	=============================

What:		/config/usb-gadget/gadget/functions/uvc.name/control
Date:		Dec 2014
KernelVersion:	4.0
Description:	Control descriptors

		All attributes read only:

		================	=============================
		bInterfaceNumber	USB interface number for this
					streaming interface
		================	=============================

What:		/config/usb-gadget/gadget/functions/uvc.name/control/class
Date:		Dec 2014
KernelVersion:	4.0
Description:	Class descriptors

What:		/config/usb-gadget/gadget/functions/uvc.name/control/class/ss
Date:		Dec 2014
KernelVersion:	4.0
Description:	Super speed control class descriptors

What:		/config/usb-gadget/gadget/functions/uvc.name/control/class/fs
Date:		Dec 2014
KernelVersion:	4.0
Description:	Full speed control class descriptors

What:		/config/usb-gadget/gadget/functions/uvc.name/control/terminal
Date:		Dec 2014
KernelVersion:	4.0
Description:	Terminal descriptors

What:		/config/usb-gadget/gadget/functions/uvc.name/control/terminal/output
Date:		Dec 2014
KernelVersion:	4.0
Description:	Output terminal descriptors

What:		/config/usb-gadget/gadget/functions/uvc.name/control/terminal/output/default
Date:		Dec 2014
KernelVersion:	4.0
Description:	Default output terminal descriptors

		All attributes read only except bSourceID:

		==============	=============================================
		iTerminal	index of string descriptor
		bSourceID	id of the terminal to which this terminal
				is connected
		bAssocTerminal	id of the input terminal to which this output
				terminal is associated
		wTerminalType	terminal type
		bTerminalID	a non-zero id of this terminal
		==============	=============================================

What:		/config/usb-gadget/gadget/functions/uvc.name/control/terminal/camera
Date:		Dec 2014
KernelVersion:	4.0
Description:	Camera terminal descriptors

What:		/config/usb-gadget/gadget/functions/uvc.name/control/terminal/camera/default
Date:		Dec 2014
KernelVersion:	4.0
Description:	Default camera terminal descriptors

		All attributes read only:

		========================  ====================================
		bmControls		  bitmap specifying which controls are
					  supported for the video stream
		wOcularFocalLength	  the value of Locular
		wObjectiveFocalLengthMax  the value of Lmin
		wObjectiveFocalLengthMin  the value of Lmax
		iTerminal		  index of string descriptor
		bAssocTerminal		  id of the output terminal to which
					  this terminal is connected
		wTerminalType		  terminal type
		bTerminalID		  a non-zero id of this terminal
		========================  ====================================

What:		/config/usb-gadget/gadget/functions/uvc.name/control/processing
Date:		Dec 2014
KernelVersion:	4.0
Description:	Processing unit descriptors

What:		/config/usb-gadget/gadget/functions/uvc.name/control/processing/default
Date:		Dec 2014
KernelVersion:	4.0
Description:	Default processing unit descriptors

		All attributes read only:

		===============	========================================
		iProcessing	index of string descriptor
		bmControls	bitmap specifying which controls are
				supported for the video stream
		wMaxMultiplier	maximum digital magnification x100
		bSourceID	id of the terminal to which this unit is
				connected
		bUnitID		a non-zero id of this unit
		===============	========================================

What:		/config/usb-gadget/gadget/functions/uvc.name/control/header
Date:		Dec 2014
KernelVersion:	4.0
Description:	Control header descriptors

What:		/config/usb-gadget/gadget/functions/uvc.name/control/header/name
Date:		Dec 2014
KernelVersion:	4.0
Description:	Specific control header descriptors

dwClockFrequency
bcdUVC
What:		/config/usb-gadget/gadget/functions/uvc.name/streaming
Date:		Dec 2014
KernelVersion:	4.0
Description:	Streaming descriptors

		All attributes read only:

		================	=============================
		bInterfaceNumber	USB interface number for this
					streaming interface
		================	=============================

What:		/config/usb-gadget/gadget/functions/uvc.name/streaming/class
Date:		Dec 2014
KernelVersion:	4.0
Description:	Streaming class descriptors

What:		/config/usb-gadget/gadget/functions/uvc.name/streaming/class/ss
Date:		Dec 2014
KernelVersion:	4.0
Description:	Super speed streaming class descriptors

What:		/config/usb-gadget/gadget/functions/uvc.name/streaming/class/hs
Date:		Dec 2014
KernelVersion:	4.0
Description:	High speed streaming class descriptors

What:		/config/usb-gadget/gadget/functions/uvc.name/streaming/class/fs
Date:		Dec 2014
KernelVersion:	4.0
Description:	Full speed streaming class descriptors

What:		/config/usb-gadget/gadget/functions/uvc.name/streaming/color_matching
Date:		Dec 2014
KernelVersion:	4.0
Description:	Color matching descriptors

What:		/config/usb-gadget/gadget/functions/uvc.name/streaming/color_matching/default
Date:		Dec 2014
KernelVersion:	4.0
Description:	Default color matching descriptors

		All attributes read only:

		========================  ======================================
		bMatrixCoefficients	  matrix used to compute luma and
					  chroma values from the color primaries
		bTransferCharacteristics  optoelectronic transfer
					  characteristic of the source picutre,
					  also called the gamma function
		bColorPrimaries		  color primaries and the reference
					  white
		========================  ======================================

What:		/config/usb-gadget/gadget/functions/uvc.name/streaming/mjpeg
Date:		Dec 2014
KernelVersion:	4.0
Description:	MJPEG format descriptors

What:		/config/usb-gadget/gadget/functions/uvc.name/streaming/mjpeg/name
Date:		Dec 2014
KernelVersion:	4.0
Description:	Specific MJPEG format descriptors

		All attributes read only,
		except bmaControls and bDefaultFrameIndex:

		===================	=====================================
		bFormatIndex		unique id for this format descriptor;
					only defined after parent header is
					linked into the streaming class;
					read-only
		bmaControls		this format's data for bmaControls in
					the streaming header
		bmInterlaceFlags	specifies interlace information,
					read-only
		bAspectRatioY		the X dimension of the picture aspect
					ratio, read-only
		bAspectRatioX		the Y dimension of the picture aspect
					ratio, read-only
		bmFlags			characteristics of this format,
					read-only
		bDefaultFrameIndex	optimum frame index for this stream
		===================	=====================================

What:		/config/usb-gadget/gadget/functions/uvc.name/streaming/mjpeg/name/name
Date:		Dec 2014
KernelVersion:	4.0
Description:	Specific MJPEG frame descriptors

		=========================  =====================================
		bFrameIndex		   unique id for this framedescriptor;
					   only defined after parent format is
					   linked into the streaming header;
					   read-only
		dwFrameInterval		   indicates how frame interval can be
					   programmed; a number of values
					   separated by newline can be specified
		dwDefaultFrameInterval	   the frame interval the device would
					   like to use as default
		dwMaxVideoFrameBufferSize  the maximum number of bytes the
					   compressor will produce for a video
					   frame or still image
		dwMaxBitRate		   the maximum bit rate at the shortest
					   frame interval in bps
		dwMinBitRate		   the minimum bit rate at the longest
					   frame interval in bps
		wHeight			   height of decoded bitmap frame in px
		wWidth			   width of decoded bitmam frame in px
		bmCapabilities		   still image support, fixed frame-rate
					   support
		=========================  =====================================

What:		/config/usb-gadget/gadget/functions/uvc.name/streaming/uncompressed
Date:		Dec 2014
KernelVersion:	4.0
Description:	Uncompressed format descriptors

What:		/config/usb-gadget/gadget/functions/uvc.name/streaming/uncompressed/name
Date:		Dec 2014
KernelVersion:	4.0
Description:	Specific uncompressed format descriptors

		==================	=======================================
		bFormatIndex		unique id for this format descriptor;
					only defined after parent header is
					linked into the streaming class;
					read-only
		bmaControls		this format's data for bmaControls in
					the streaming header
		bmInterlaceFlags	specifies interlace information,
					read-only
		bAspectRatioY		the X dimension of the picture aspect
					ratio, read-only
		bAspectRatioX		the Y dimension of the picture aspect
					ratio, read-only
		bDefaultFrameIndex	optimum frame index for this stream
		bBitsPerPixel		number of bits per pixel used to
					specify color in the decoded video
					frame
		guidFormat		globally unique id used to identify
					stream-encoding format
		==================	=======================================

What:		/config/usb-gadget/gadget/functions/uvc.name/streaming/uncompressed/name/name
Date:		Dec 2014
KernelVersion:	4.0
Description:	Specific uncompressed frame descriptors

		=========================  =====================================
		bFrameIndex		   unique id for this framedescriptor;
					   only defined after parent format is
					   linked into the streaming header;
					   read-only
		dwFrameInterval		   indicates how frame interval can be
					   programmed; a number of values
					   separated by newline can be specified
		dwDefaultFrameInterval	   the frame interval the device would
					   like to use as default
		dwMaxVideoFrameBufferSize  the maximum number of bytes the
					   compressor will produce for a video
					   frame or still image
		dwMaxBitRate		   the maximum bit rate at the shortest
					   frame interval in bps
		dwMinBitRate		   the minimum bit rate at the longest
					   frame interval in bps
		wHeight			   height of decoded bitmap frame in px
		wWidth			   width of decoded bitmam frame in px
		bmCapabilities		   still image support, fixed frame-rate
					   support
		=========================  =====================================

What:		/config/usb-gadget/gadget/functions/uvc.name/streaming/header
Date:		Dec 2014
KernelVersion:	4.0
Description:	Streaming header descriptors

What:		/config/usb-gadget/gadget/functions/uvc.name/streaming/header/name
Date:		Dec 2014
KernelVersion:	4.0
Description:	Specific streaming header descriptors

		All attributes read only:

		====================	=====================================
		bTriggerUsage		how the host software will respond to
					a hardware trigger interrupt event
		bTriggerSupport		flag specifying if hardware
					triggering is supported
		bStillCaptureMethod	method of still image caputre
					supported
		bTerminalLink		id of the output terminal to which
					the video endpoint of this interface
					is connected
		bmInfo			capabilities of this video streaming
					interface
		====================	=====================================

What:		/sys/class/udc/udc.name/device/gadget/video4linux/video.name/function_name
Date:		May 2018
KernelVersion:	4.19
Description:	UVC configfs function instance name
