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
13 * making it easier to build (a) Composite devices, supporting multiple
14 * functions within any single configuration, and (b) Multi-configuration
19 * link and mass storage functions is a composite device. Those functions
20 * might alternatively be packaged in individual configurations, but in
21 * the composite model the host can use both functions at the same time.
51 * struct usb_os_desc_ext_prop - describes one "Extended Property"
58 * @item: Represents this Extended Property in configfs
71 * struct usb_os_desc - describes OS descriptors associated with one interface
77 * @group: Represents OS descriptors associated with an interface in configfs
91 * struct usb_os_desc_table - describes OS descriptors associated with one
106 * struct usb_function - describes one function of a configuration
109 * and by language IDs provided in control requests
128 * an IAD, only the first interface of IAD has its entry in the table.
129 * @os_desc_n: Number of entries in os_desc_table
132 * in interface or class descriptors; endpoints; I/O buffers; and so on.
145 * @setup: Used for interface-specific control requests.
153 * @func_suspended: Indicates whether the function is in function suspend state.
157 * A single USB function uses one or more interfaces, and should in most
165 * for both high and full speed operation. Except in rare cases that don't
170 * can only be activated once. If the function needs to be exposed in more
175 * a driver-specific instance structure to allows multiple activations. An
254 * struct usb_configuration - represents one gadget configuration
257 * and by language IDs provided in control requests.
259 * Examples include OTG and vendor-specific descriptors.
267 * @MaxPower: Power consumption in mA. Used to compute bMaxPower in the
274 * configuration, and handle dual-speed hardware by always providing the same
276 * single-function configuration at a given speed; or have configurations
279 * Composite devices are, by definition, ones with configurations which
291 * Such interdependency may be managed in any way, so long as all of the
292 * descriptors complete by the time the composite driver returns from
310 /* fields in the config descriptor */
346 * struct usb_composite_driver - groups configurations into a gadget
351 * and language IDs provided in control requests. Note: The first entries
371 * on bus powered operation should report this in their @bind method.
373 * Before returning from @bind, various fields in the template descriptor
378 * they are defined in @dev and @strings.) The correct ep0 maxpacket size
403 * module_usb_composite_driver() - Helper macro for registering a USB gadget
404 * composite driver
407 * Helper macro for USB gadget composite drivers which do not do anything
408 * special in module init/exit. This eliminates a lot of boilerplate. Each
417 extern int composite_dev_prepare(struct usb_composite_driver *composite,
435 * struct usb_composite_dev - represents one composite usb gadget
436 * @gadget: read-only, abstracts the gadget's usb peripheral controller
437 * @req: used for control responses; buffer is pre-allocated
438 * @os_desc_req: used for OS descriptors responses; buffer is pre-allocated
445 * @landing_page: empty by default, landing page to announce in WebUSB
489 /* the composite driver won't complete the control transfer's
520 * published in the device descriptor, either numbers or strings or both.
521 * String parameters are in UTF-8 (superset of ASCII's 7 bit characters).
620 dev_dbg(&(d)->gadget->dev , fmt , ## args)
622 dev_vdbg(&(d)->gadget->dev , fmt , ## args)
624 dev_err(&(d)->gadget->dev , fmt , ## args)
626 dev_warn(&(d)->gadget->dev , fmt , ## args)
628 dev_info(&(d)->gadget->dev , fmt , ## args)