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.
39 * NOTE: USB_GADGET_DELAYED_STATUS must not be used in UDC drivers: they
40 * must delay completing the status stage for 0-length control transfers
45 * must be contained within the composite framework.
59 * struct usb_os_desc_ext_prop - describes one "Extended Property"
66 * @item: Represents this Extended Property in configfs
79 * struct usb_os_desc - describes OS descriptors associated with one interface
85 * @group: Represents OS descriptors associated with an interface in configfs
99 * struct usb_os_desc_table - describes OS descriptors associated with one
114 * struct usb_function - describes one function of a configuration
117 * and by language IDs provided in control requests
136 * an IAD, only the first interface of IAD has its entry in the table.
137 * @os_desc_n: Number of entries in os_desc_table
140 * in interface or class descriptors; endpoints; I/O buffers; and so on.
153 * @setup: Used for interface-specific control requests.
161 * @func_suspended: Indicates whether the function is in function suspend state.
165 * A single USB function uses one or more interfaces, and should in most
173 * for both high and full speed operation. Except in rare cases that don't
178 * can only be activated once. If the function needs to be exposed in more
183 * a driver-specific instance structure to allows multiple activations. An
262 * struct usb_configuration - represents one gadget configuration
265 * and by language IDs provided in control requests.
267 * Examples include OTG and vendor-specific descriptors.
275 * @MaxPower: Power consumption in mA. Used to compute bMaxPower in the
282 * configuration, and handle dual-speed hardware by always providing the same
284 * single-function configuration at a given speed; or have configurations
287 * Composite devices are, by definition, ones with configurations which
299 * Such interdependency may be managed in any way, so long as all of the
300 * descriptors complete by the time the composite driver returns from
318 /* fields in the config descriptor */
354 * struct usb_composite_driver - groups configurations into a gadget
359 * and language IDs provided in control requests. Note: The first entries
379 * on bus powered operation should report this in their @bind method.
381 * Before returning from @bind, various fields in the template descriptor
386 * they are defined in @dev and @strings.) The correct ep0 maxpacket size
411 * module_usb_composite_driver() - Helper macro for registering a USB gadget
412 * composite driver
415 * Helper macro for USB gadget composite drivers which do not do anything
416 * special in module init/exit. This eliminates a lot of boilerplate. Each
425 extern int composite_dev_prepare(struct usb_composite_driver *composite,
443 * struct usb_composite_dev - represents one composite usb gadget
444 * @gadget: read-only, abstracts the gadget's usb peripheral controller
445 * @req: used for control responses; buffer is pre-allocated
446 * @os_desc_req: used for OS descriptors responses; buffer is pre-allocated
453 * @landing_page: empty by default, landing page to announce in WebUSB
497 /* the composite driver won't complete the control transfer's
528 * published in the device descriptor, either numbers or strings or both.
529 * String parameters are in UTF-8 (superset of ASCII's 7 bit characters).
628 dev_dbg(&(d)->gadget->dev , fmt , ## args)
630 dev_vdbg(&(d)->gadget->dev , fmt , ## args)
632 dev_err(&(d)->gadget->dev , fmt , ## args)
634 dev_warn(&(d)->gadget->dev , fmt , ## args)
636 dev_info(&(d)->gadget->dev , fmt , ## args)