| /kernel/linux/linux-6.6/drivers/usb/gadget/udc/ |
| D | core.c | 22 #include <linux/usb/gadget.h> 33 * @driver: the gadget driver pointer. For use by the class code 35 * @gadget: the gadget. For use by the class code 41 * Set/cleared by gadget_(un)bind_driver() after gadget driver is bound or 44 * @connect_lock: protects udc->started, gadget->connect, 45 * gadget->allow_connect and gadget->deactivate. The routines 51 * to hold information about udc driver and gadget together. 55 struct usb_gadget *gadget; member 149 * gadget drivers must call usb_ep_enable() again before queueing 232 * request queued; they complete in FIFO order. Once a gadget driver [all …]
|
| /kernel/linux/linux-6.6/Documentation/usb/ |
| D | raw-gadget.rst | 2 USB Raw Gadget 5 USB Raw Gadget is a gadget driver that gives userspace low-level control over 6 the gadget's communication process. 8 Like any other gadget driver, Raw Gadget implements USB devices via the 9 USB gadget API. Unlike most gadget drivers, Raw Gadget does not implement 12 Raw Gadget is currently a strictly debugging feature and should not be used 20 Raw Gadget is similar to GadgetFS but provides more direct access to the 21 USB gadget layer for userspace. The key differences are: 23 1. Raw Gadget passes every USB request to userspace to get a response, while 26 its own and never forward them to the gadget layer. [all …]
|
| D | gadget_serial.rst | 2 Linux Gadget Serial Driver v2.0 27 This document and the gadget serial driver itself are 36 Versions of the gadget serial driver are available for the 38 version 2.3 or later of the gadget serial driver in a 2.6 45 gadget and usb drivers as modules. 56 The gadget serial driver is a Linux USB gadget driver, a USB device 61 The gadget serial driver talks over USB to either a CDC ACM driver 75 Gadget | 77 | Gadget USB Periph. | | 78 | Device-Side | Gadget | Controller | | [all …]
|
| /kernel/linux/linux-5.10/drivers/usb/gadget/udc/ |
| D | core.c | 19 #include <linux/usb/gadget.h> 26 * @driver: the gadget driver pointer. For use by the class code 28 * @gadget: the gadget. For use by the class code 34 * to hold information about udc driver and gadget together. 38 struct usb_gadget *gadget; member 130 * gadget drivers must call usb_ep_enable() again before queueing 213 * request queued; they complete in FIFO order. Once a gadget driver 251 * arranges to poll once per interval, and the gadget driver usually will 264 * @req->complete() will be called exactly once, when the Gadget core and 275 pr_debug("USB gadget: queue request to disabled ep 0x%x (%s)\n", in usb_ep_queue() [all …]
|
| /kernel/linux/linux-6.6/drivers/usb/gadget/legacy/ |
| D | Kconfig | 3 # USB Gadget support on a system involves 5 # (b) the gadget driver using it. 7 # NOTE: Gadget support ** DOES NOT ** depend on host-side CONFIG_USB !! 16 # A Linux "Gadget Driver" talks to the USB Peripheral Controller 17 # driver through the abstract "gadget" API. Some other operating 20 # A gadget driver implements one or more USB functions using 23 # Gadget drivers are hardware-neutral, or "platform independent", 27 # enough of the right types of endpoints, the gadget driver might 32 # gadget configuration. In the device model, each option contains 33 # both the device instantiation as a child for a USB gadget [all …]
|
| D | dbgp.c | 3 * dbgp.c -- EHCI Debug Port device gadget 15 #include <linux/usb/gadget.h> 27 struct usb_gadget *gadget; member 124 dev_dbg(&dbgp.gadget->dev, in dbgp_complete() 162 dev_dbg(&dbgp.gadget->dev, in dbgp_enable_ep_req() 204 dev_dbg(&dbgp.gadget->dev, "enable ep: failure (%d:%d)\n", stp, err); in dbgp_enable_ep() 209 static void dbgp_disconnect(struct usb_gadget *gadget) in dbgp_disconnect() argument 218 static void dbgp_unbind(struct usb_gadget *gadget) in dbgp_unbind() argument 226 usb_ep_free_request(gadget->ep0, dbgp.req); in dbgp_unbind() 235 static int dbgp_configure_endpoints(struct usb_gadget *gadget) in dbgp_configure_endpoints() argument [all …]
|
| /kernel/linux/linux-5.10/Documentation/ABI/testing/ |
| D | configfs-usb-gadget | 1 What: /config/usb-gadget 8 What: /config/usb-gadget/gadget 13 The attributes of a gadget: 16 UDC bind a gadget to UDC/unbind a gadget; 18 to bind a gadget, empty string "" to unbind. 34 What: /config/usb-gadget/gadget/configs 38 This group contains a USB gadget's configurations 40 What: /config/usb-gadget/gadget/configs/config 51 What: /config/usb-gadget/gadget/configs/config/strings 58 What: /config/usb-gadget/gadget/configs/config/strings/language [all …]
|
| D | configfs-usb-gadget-uvc | 1 What: /config/usb-gadget/gadget/functions/uvc.name 12 What: /config/usb-gadget/gadget/functions/uvc.name/control 24 What: /config/usb-gadget/gadget/functions/uvc.name/control/class 29 What: /config/usb-gadget/gadget/functions/uvc.name/control/class/ss 34 What: /config/usb-gadget/gadget/functions/uvc.name/control/class/fs 39 What: /config/usb-gadget/gadget/functions/uvc.name/control/terminal 44 What: /config/usb-gadget/gadget/functions/uvc.name/control/terminal/output 49 What: /config/usb-gadget/gadget/functions/uvc.name/control/terminal/output/default 66 What: /config/usb-gadget/gadget/functions/uvc.name/control/terminal/camera 71 What: /config/usb-gadget/gadget/functions/uvc.name/control/terminal/camera/default [all …]
|
| /kernel/linux/linux-6.6/Documentation/ABI/testing/ |
| D | configfs-usb-gadget | 1 What: /config/usb-gadget 8 What: /config/usb-gadget/gadget 13 The attributes of a gadget: 16 UDC bind a gadget to UDC/unbind a gadget; 18 to bind a gadget, empty string "" to unbind. 34 What: /config/usb-gadget/gadget/configs 38 This group contains a USB gadget's configurations 40 What: /config/usb-gadget/gadget/configs/config 51 What: /config/usb-gadget/gadget/configs/config/strings 58 What: /config/usb-gadget/gadget/configs/config/strings/language [all …]
|
| D | configfs-usb-gadget-uvc | 1 What: /config/usb-gadget/gadget/functions/uvc.name 13 What: /config/usb-gadget/gadget/functions/uvc.name/control 27 What: /config/usb-gadget/gadget/functions/uvc.name/control/class 32 What: /config/usb-gadget/gadget/functions/uvc.name/control/class/ss 37 What: /config/usb-gadget/gadget/functions/uvc.name/control/class/fs 42 What: /config/usb-gadget/gadget/functions/uvc.name/control/terminal 47 What: /config/usb-gadget/gadget/functions/uvc.name/control/terminal/output 52 What: /config/usb-gadget/gadget/functions/uvc.name/control/terminal/output/default 69 What: /config/usb-gadget/gadget/functions/uvc.name/control/terminal/camera 74 What: /config/usb-gadget/gadget/functions/uvc.name/control/terminal/camera/default [all …]
|
| /kernel/linux/linux-5.10/drivers/usb/gadget/legacy/ |
| D | Kconfig | 3 # USB Gadget support on a system involves 5 # (b) the gadget driver using it. 7 # NOTE: Gadget support ** DOES NOT ** depend on host-side CONFIG_USB !! 16 # A Linux "Gadget Driver" talks to the USB Peripheral Controller 17 # driver through the abstract "gadget" API. Some other operating 20 # A gadget driver implements one or more USB functions using 23 # Gadget drivers are hardware-neutral, or "platform independent", 27 # enough of the right types of endpoints, the gadget driver might 32 # gadget configuration. In the device model, each option contains 33 # both the device instantiation as a child for a USB gadget [all …]
|
| D | dbgp.c | 3 * dbgp.c -- EHCI Debug Port device gadget 15 #include <linux/usb/gadget.h> 27 struct usb_gadget *gadget; member 124 dev_dbg(&dbgp.gadget->dev, in dbgp_complete() 162 dev_dbg(&dbgp.gadget->dev, in dbgp_enable_ep_req() 204 dev_dbg(&dbgp.gadget->dev, "enable ep: failure (%d:%d)\n", stp, err); in dbgp_enable_ep() 209 static void dbgp_disconnect(struct usb_gadget *gadget) in dbgp_disconnect() argument 218 static void dbgp_unbind(struct usb_gadget *gadget) in dbgp_unbind() argument 226 usb_ep_free_request(gadget->ep0, dbgp.req); in dbgp_unbind() 235 static int dbgp_configure_endpoints(struct usb_gadget *gadget) in dbgp_configure_endpoints() argument [all …]
|
| D | raw_gadget.c | 3 * USB Raw Gadget driver. 4 * See Documentation/usb/raw-gadget.rst for more details. 26 #include <linux/usb/gadget.h> 30 #define DRIVER_DESC "USB Raw Gadget" 31 #define DRIVER_NAME "raw-gadget" 173 struct usb_gadget *gadget; member 214 usb_ep_dequeue(dev->gadget->ep0, dev->req); in dev_free() 215 usb_ep_free_request(dev->gadget->ep0, dev->req); in dev_free() 278 static int gadget_bind(struct usb_gadget *gadget, in gadget_bind() argument 287 if (strcmp(gadget->name, dev->udc_name) != 0) in gadget_bind() [all …]
|
| /kernel/linux/linux-5.10/Documentation/usb/ |
| D | gadget_serial.rst | 2 Linux Gadget Serial Driver v2.0 27 This document and the gadget serial driver itself are 36 Versions of the gadget serial driver are available for the 38 version 2.3 or later of the gadget serial driver in a 2.6 45 gadget and usb drivers as modules. 56 The gadget serial driver is a Linux USB gadget driver, a USB device 61 The gadget serial driver talks over USB to either a CDC ACM driver 75 Gadget | 77 | Gadget USB Periph. | | 78 | Device-Side | Gadget | Controller | | [all …]
|
| D | raw-gadget.rst | 2 USB Raw Gadget 5 USB Raw Gadget is a kernel module that provides a userspace interface for 6 the USB Gadget subsystem. Essentially it allows to emulate USB devices 7 from userspace. Enabled with CONFIG_USB_RAW_GADGET. Raw Gadget is 14 Raw Gadget is similar to GadgetFS, but provides a more low-level and 15 direct access to the USB Gadget layer for the userspace. The key 21 requests on its own and never forward them to the Gadget layer. 24 while Raw Gadget allows you to provide arbitrary data as responses to 27 3. Raw Gadget provides a way to select a UDC device/driver to bind to, 30 4. Raw Gadget explicitly exposes information about endpoints addresses and [all …]
|
| /kernel/linux/linux-6.6/include/linux/usb/ |
| D | gadget.h | 3 * <linux/usb/gadget.h> 5 * We call the USB code inside a Linux-based peripheral device a "gadget" 65 * @list: For use by the gadget driver. 198 * @ep_list:the gadget's ep_list holds all of its endpoints 212 * @driver_data:for use by the gadget driver. 221 * gadget->ep_list. the control endpoint (gadget->ep0) is not in that list, 313 int (*func_wakeup)(struct usb_gadget *gadget, int intf_id); 327 void (*udc_set_ssp_rate)(struct usb_gadget *gadget, 329 void (*udc_async_callbacks)(struct usb_gadget *gadget, bool enable); 333 int (*check_config)(struct usb_gadget *gadget); [all …]
|
| /kernel/linux/linux-6.6/Documentation/driver-api/usb/ |
| D | gadget.rst | 2 USB Gadget API for Linux 11 This document presents a Linux-USB "Gadget" kernel mode API, for use 21 just two fixed-function ones. Gadget drivers can be written so 46 are "USB gadget drivers". In USB protocol interactions, the device 47 driver is the master (or "client driver") and the gadget driver is the 50 The gadget API resembles the host side Linux-USB API in that both use 56 details and assumptions that are inappropriate for a gadget API. While 62 Structure of Gadget Drivers 67 additional layers in user space code. The ``gadget`` API is used by the 76 ``<linux/usb/gadget.h>`` API abstracts the peripheral controller [all …]
|
| /kernel/linux/linux-5.10/Documentation/driver-api/usb/ |
| D | gadget.rst | 2 USB Gadget API for Linux 11 This document presents a Linux-USB "Gadget" kernel mode API, for use 21 just two fixed-function ones. Gadget drivers can be written so 46 are "USB gadget drivers". In USB protocol interactions, the device 47 driver is the master (or "client driver") and the gadget driver is the 50 The gadget API resembles the host side Linux-USB API in that both use 56 details and assumptions that are inappropriate for a gadget API. While 62 Structure of Gadget Drivers 67 additional layers in user space code. The ``gadget`` API is used by the 76 ``<linux/usb/gadget.h>`` API abstracts the peripheral controller [all …]
|
| /kernel/linux/linux-6.6/drivers/usb/gadget/udc/aspeed-vhub/ |
| D | dev.c | 3 * aspeed-vhub -- Driver for Aspeed SoC "vHub" USB gadget 5 * dev.c - Individual device/gadget management (ie, a port = a gadget) 22 #include <linux/usb/gadget.h> 60 if (d->gadget.speed == USB_SPEED_HIGH) in ast_vhub_dev_enable() 104 d->gadget.speed = USB_SPEED_UNKNOWN; in ast_vhub_dev_disable() 173 st0 = d->gadget.is_selfpowered << USB_DEVICE_SELF_POWERED; in ast_vhub_dev_status() 238 if (d->gadget.speed == USB_SPEED_UNKNOWN) { in ast_vhub_std_dev_request() 239 d->gadget.speed = ep->vhub->speed; in ast_vhub_std_dev_request() 240 if (d->gadget.speed > d->driver->max_speed) in ast_vhub_std_dev_request() 241 d->gadget.speed = d->driver->max_speed; in ast_vhub_std_dev_request() [all …]
|
| /kernel/linux/linux-5.10/include/linux/usb/ |
| D | gadget.h | 3 * <linux/usb/gadget.h> 5 * We call the USB code inside a Linux-based peripheral device a "gadget" 66 * @list: For use by the gadget driver. 199 * @ep_list:the gadget's ep_list holds all of its endpoints 213 * @driver_data:for use by the gadget driver. 222 * gadget->ep_list. the control endpoint (gadget->ep0) is not in that list, 329 int (*check_config)(struct usb_gadget *gadget); 335 * @udc: struct usb_udc pointer for this gadget 351 * @otg_caps: OTG capabilities of this gadget. 354 * gadget driver must provide a USB OTG descriptor. [all …]
|
| /kernel/linux/linux-5.10/drivers/usb/gadget/udc/aspeed-vhub/ |
| D | dev.c | 3 * aspeed-vhub -- Driver for Aspeed SoC "vHub" USB gadget 5 * dev.c - Individual device/gadget management (ie, a port = a gadget) 27 #include <linux/usb/gadget.h> 66 if (d->gadget.speed == USB_SPEED_HIGH) in ast_vhub_dev_enable() 110 d->gadget.speed = USB_SPEED_UNKNOWN; in ast_vhub_dev_disable() 168 st0 = d->gadget.is_selfpowered << USB_DEVICE_SELF_POWERED; in ast_vhub_dev_status() 233 if (d->gadget.speed == USB_SPEED_UNKNOWN) { in ast_vhub_std_dev_request() 234 d->gadget.speed = ep->vhub->speed; in ast_vhub_std_dev_request() 235 if (d->gadget.speed > d->driver->max_speed) in ast_vhub_std_dev_request() 236 d->gadget.speed = d->driver->max_speed; in ast_vhub_std_dev_request() [all …]
|
| /kernel/linux/linux-6.6/drivers/usb/gadget/ |
| D | epautoconf.c | 3 * epautoconf.c -- endpoint autoconfiguration for usb gadget drivers 17 #include <linux/usb/gadget.h> 22 * @gadget: The device to which the endpoint must belong. 37 * this routine simplifies writing gadget drivers that work with 64 struct usb_gadget *gadget, in usb_ep_autoconfig_ss() argument 71 if (gadget->ops->match_ep) { in usb_ep_autoconfig_ss() 72 ep = gadget->ops->match_ep(gadget, desc, ep_comp); in usb_ep_autoconfig_ss() 78 list_for_each_entry (ep, &gadget->ep_list, ep_list) { in usb_ep_autoconfig_ss() 79 if (usb_gadget_ep_match_desc(gadget, ep, desc, ep_comp)) in usb_ep_autoconfig_ss() 100 if (++gadget->in_epnum > 15) in usb_ep_autoconfig_ss() [all …]
|
| /kernel/linux/linux-5.10/drivers/usb/gadget/ |
| D | epautoconf.c | 3 * epautoconf.c -- endpoint autoconfiguration for usb gadget drivers 17 #include <linux/usb/gadget.h> 22 * @gadget: The device to which the endpoint must belong. 37 * this routine simplifies writing gadget drivers that work with 64 struct usb_gadget *gadget, in usb_ep_autoconfig_ss() argument 71 if (gadget->ops->match_ep) { in usb_ep_autoconfig_ss() 72 ep = gadget->ops->match_ep(gadget, desc, ep_comp); in usb_ep_autoconfig_ss() 78 list_for_each_entry (ep, &gadget->ep_list, ep_list) { in usb_ep_autoconfig_ss() 79 if (usb_gadget_ep_match_desc(gadget, ep, desc, ep_comp)) in usb_ep_autoconfig_ss() 100 if (++gadget->in_epnum > 15) in usb_ep_autoconfig_ss() [all …]
|
| /kernel/linux/linux-6.6/drivers/usb/gadget/udc/bdc/ |
| D | bdc_udc.c | 9 * Based on drivers under drivers/usb/gadget/udc/ 27 #include <linux/usb/gadget.h> 86 bdc->gadget.ep0->maxpacket = EP0_MAX_PKT_SIZE; in bdc_uspc_connected() 87 bdc->gadget.speed = USB_SPEED_SUPER; in bdc_uspc_connected() 98 bdc->gadget.ep0->maxpacket = 64; in bdc_uspc_connected() 99 bdc->gadget.speed = USB_SPEED_HIGH; in bdc_uspc_connected() 104 bdc->gadget.ep0->maxpacket = 64; in bdc_uspc_connected() 105 bdc->gadget.speed = USB_SPEED_FULL; in bdc_uspc_connected() 110 bdc->gadget.ep0->maxpacket = 8; in bdc_uspc_connected() 111 bdc->gadget.speed = USB_SPEED_LOW; in bdc_uspc_connected() [all …]
|
| /kernel/linux/linux-5.10/drivers/usb/gadget/udc/bdc/ |
| D | bdc_udc.c | 9 * Based on drivers under drivers/usb/gadget/udc/ 27 #include <linux/usb/gadget.h> 86 bdc->gadget.ep0->maxpacket = EP0_MAX_PKT_SIZE; in bdc_uspc_connected() 87 bdc->gadget.speed = USB_SPEED_SUPER; in bdc_uspc_connected() 98 bdc->gadget.ep0->maxpacket = 64; in bdc_uspc_connected() 99 bdc->gadget.speed = USB_SPEED_HIGH; in bdc_uspc_connected() 104 bdc->gadget.ep0->maxpacket = 64; in bdc_uspc_connected() 105 bdc->gadget.speed = USB_SPEED_FULL; in bdc_uspc_connected() 110 bdc->gadget.ep0->maxpacket = 8; in bdc_uspc_connected() 111 bdc->gadget.speed = USB_SPEED_LOW; in bdc_uspc_connected() [all …]
|