Lines Matching +full:composite +full:- +full:in

1 // SPDX-License-Identifier: GPL-2.0+
3 * composite.h -- framework for usb gadgets which are composite devices
5 * Copyright (C) 2006-2008 David Brownell
12 * This program is distributed in the hope that it will be useful,
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
27 * making it easier to build (a) Composite devices, supporting multiple
28 * functions within any single configuration, and (b) Multi-configuration
33 * link and mass storage functions is a composite device. Those functions
34 * might alternatively be packaged in individual configurations, but in
35 * the composite model the host can use both functions at the same time.
64 * struct usb_os_desc_ext_prop - describes one "Extended Property"
71 * @item: Represents this Extended Property in configfs
84 * struct usb_os_desc - describes OS descriptors associated with one interface
90 * @group: Represents OS descriptors associated with an interface in configfs
104 * struct usb_os_desc_table - describes OS descriptors associated with one
119 * struct usb_function - describes one function of a configuration
122 * and by language IDs provided in control requests
141 * an IAD, only the first interface of IAD has its entry in the table.
142 * @os_desc_n: Number of entries in os_desc_table
145 * in interface or class descriptors; endpoints; I/O buffers; and so on.
158 * @setup: Used for interface-specific control requests.
167 * A single USB function uses one or more interfaces, and should in most
175 * for both high and full speed operation. Except in rare cases that don't
180 * can only be activated once. If the function needs to be exposed in more
185 * a driver-specific instance structure to allows multiple activations. An
261 * struct usb_configuration - represents one gadget configuration
264 * and by language IDs provided in control requests.
266 * Examples include OTG and vendor-specific descriptors.
274 * @MaxPower: Power consumtion in mA. Used to compute bMaxPower in the
281 * configuration, and handle dual-speed hardware by always providing the same
283 * single-function configuration at a given speed; or have configurations
286 * Composite devices are, by definition, ones with configurations which
298 * Such interdependency may be managed in any way, so long as all of the
299 * descriptors complete by the time the composite driver returns from
317 /* fields in the config descriptor */
353 * struct usb_composite_driver - groups configurations into a gadget
358 * and language IDs provided in control requests. Note: The first entries
378 * on bus powered operation should report this in their @bind method.
380 * Before returning from @bind, various fields in the template descriptor
385 * they are defined in @dev and @strings.) The correct ep0 maxpacket size
410 * module_usb_composite_driver() - Helper macro for registering a USB gadget
411 * composite driver
414 * Helper macro for USB gadget composite drivers which do not do anything
415 * special in module init/exit. This eliminates a lot of boilerplate. Each
424 extern int composite_dev_prepare(struct usb_composite_driver *composite,
440 * struct usb_composite_dev - represents one composite usb gadget
441 * @gadget: read-only, abstracts the gadget's usb peripheral controller
442 * @req: used for control responses; buffer is pre-allocated
443 * @os_desc_req: used for OS descriptors responses; buffer is pre-allocated
465 * "is it wired", plus (presumably in a wrapper structure)
468 * wireless-specific parameters like maxburst and maxsequence;
474 * (g) composite device setup that can create one or more wireless
506 /* the composite driver won't complete the control transfer's
535 * published in the device descriptor, either numbers or strings or both.
536 * String parameters are in UTF-8 (superset of ASCII's 7 bit characters).
635 dev_dbg(&(d)->gadget->dev , fmt , ## args)
637 dev_vdbg(&(d)->gadget->dev , fmt , ## args)
639 dev_err(&(d)->gadget->dev , fmt , ## args)
641 dev_warn(&(d)->gadget->dev , fmt , ## args)
643 dev_info(&(d)->gadget->dev , fmt , ## args)