/linux/drivers/usb/gadget/function/ |
H A D | f_acm.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * f_acm.c -- USB CDC serial (ACM) function driver 24 * This CDC ACM function support just wraps control functions and 25 * notifications around the generic serial-over-usb code. 27 * Because CDC ACM is standardized by the USB-IF, many host operating 28 * systems have drivers for it. Accordingly, ACM is the preferred 29 * interop solution for serial-port type connections. The control 31 * this bare-bones implementation. 33 * Note that even MS-Windows has some support for ACM. However, that 34 * support is somewhat broken because when you use ACM in a composite [all …]
|
H A D | u_serial.h | 1 /* SPDX-License-Identifier: GPL-2.0+ */ 3 * u_serial.h - interface to USB gadget "serial port"/TTY utilities 13 #include <linux/usb/cdc.h> 27 * One non-multiplexed "serial" I/O port ... there can be several of these 34 * REVISIT at least ACM could support tiocmget() if needed. 47 /* REVISIT avoid this CDC-ACM support harder ... */ 48 struct usb_cdc_line_coding port_line_coding; /* 9600-8-N-1 etc */
|
H A D | f_rndis.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * f_rndis.c -- RNDIS link function driver 5 * Copyright (C) 2003-2005,2008 David Brownell 6 * Copyright (C) 2003-2004 Robert Schwebel, Benedikt Spranger 29 * This function is an RNDIS Ethernet port -- a Microsoft protocol that's 30 * been promoted instead of the standard CDC Ethernet. The published RNDIS 36 * doesn't support the CDC Ethernet standard. 40 * what's essentially an "RNDIS RPC" protocol. It's all wrapped in a CDC ACM 41 * (modem, not Ethernet) veneer, with those ACM descriptors being entirely 46 * There is a single technical advantage of RNDIS over CDC Ethernet, if you [all …]
|
/linux/drivers/usb/gadget/legacy/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0 7 # NOTE: Gadget support ** DOES NOT ** depend on host-side CONFIG_USB !! 9 # - Host systems (like PCs) need CONFIG_USB (with "A" jacks). 10 # - Peripherals (like PDAs) need CONFIG_USB_GADGET (with "B" jacks). 11 # - Some systems have both kinds of controllers. 13 # With help from a special transceiver and a "Mini-AB" jack, systems with 14 # both kinds of controller can also support "USB On-the-Go" (CONFIG_USB_OTG). 23 # Gadget drivers are hardware-neutral, or "platform independent", 44 Gadget Zero is a two-configuration device. It either sinks and 47 conformance. The driver needs only two bulk-capable endpoints, so [all …]
|
H A D | cdc2.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * cdc2.c -- CDC Composite driver, with ECM and ACM support 17 #define DRIVER_DESC "CDC Composite Gadget" 20 /*-------------------------------------------------------------------------*/ 22 /* DO NOT REUSE THESE IDs with a protocol-incompatible driver!! Ever!! 23 * Instead: allocate your own, using normal USB-IF procedures. 27 * It's for devices with only this composite CDC configuration. 30 #define CDC_PRODUCT_NUM 0xa4aa /* CDC Composite: ECM + ACM */ 36 /*-------------------------------------------------------------------------*/ 70 .language = 0x0409, /* en-us */ [all …]
|
H A D | serial.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * serial.c -- USB gadget serial driver 28 /*-------------------------------------------------------------------------*/ 33 * DO NOT REUSE THESE IDs with a protocol-incompatible driver!! Ever!! 34 * Instead: allocate your own, using normal USB-IF procedures. 37 #define GS_PRODUCT_ID 0xa4a6 /* Linux-USB Serial Gadget */ 38 #define GS_CDC_PRODUCT_ID 0xa4a7 /* ... as CDC-ACM */ 39 #define GS_CDC_OBEX_PRODUCT_ID 0xa4a9 /* ... as CDC-OBEX */ 54 .language = 0x0409, /* en-us */ 81 /*-------------------------------------------------------------------------*/ [all …]
|
H A D | ether.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * ether.c -- Ethernet gadget driver, with CDC and non-CDC options 5 * Copyright (C) 2003-2005,2008 David Brownell 6 * Copyright (C) 2003-2004 Robert Schwebel, Benedikt Spranger 26 * Ethernet gadget driver -- with CDC and non-CDC options 29 * CDC Ethernet is the standard USB solution for sending Ethernet frames 32 * this USB-IF standard as its open-systems interoperability solution; 35 * This is sometimes called "CDC ECM" (Ethernet Control Model) to support 36 * TLA-soup. "CDC ACM" (Abstract Control Model) is for modems, and a new 37 * "CDC EEM" (Ethernet Emulation Model) is starting to spread. [all …]
|
/linux/Documentation/usb/ |
H A D | gadget_multi.rst | 13 with RNDIS[1] (that is Ethernet), USB CDC[2] ACM (that is serial) and 16 A CDC ECM (Ethernet) function may be turned on via a Kconfig option 18 have two configurations -- one with RNDIS and another with CDC ECM[3]. 20 Please note that if you use non-standard configuration (that is enable 21 CDC ECM) you may need to change vendor and/or product ID. 26 To make use of the gadget one needs to make it work on host side -- 31 ------------------ 38 This is also true for two configuration set-up with RNDIS 40 configuration with CDC ECM which should work better under Linux. 43 -------------------- [all …]
|
H A D | gadget_serial.rst | 7 (updated 8-May-2008 for v2.3) 11 ---------------------- 25 MA 02111-1307 USA. 35 ------------- 55 -------- 61 The gadget serial driver talks over USB to either a CDC ACM driver 65 -------------------------------------- 66 | Host-Side CDC ACM USB Host | 68 | System | Generic USB | Driver |-------- 71 -------------------------------------- | [all …]
|
H A D | acm.rst | 2 Linux ACM driver v0.16 23 Temple Place, Suite 330, Boston, MA 02111-1307 USA 25 Should you need to contact me, the author, you can do so either by e-mail - 34 The drivers/usb/class/cdc-acm.c drivers works with USB modems and USB ISDN terminal 36 Abstract Control Model (USB CDC ACM) specification. 40 - 3Com OfficeConnect 56k 41 - 3Com Voice FaxModem Pro 42 - 3Com Sportster 43 - MultiTech MultiModem 56k 44 - Zoom 2986L FaxModem [all …]
|
H A D | text_files.rst | 1 Linux CDC ACM inf 2 ----------------- 4 .. include:: linux-cdc-acm.inf 8 --------- 14 --------------------------------- 16 .. literalinclude:: usbdevfs-drop-permissions.c 20 -------
|
H A D | linux-cdc-acm.inf | 1 ; Windows USB CDC ACM Setup File 7 ; <http://msdn.microsoft.com/en-us/cc300389.aspx#MLPL>. 13 ClassGuid={4D36E978-E325-11CE-BFC1-08002BE10318} 24 ;------------------------------------------------------------------------------ 25 ; Windows 2000/XP/Vista-32bit Sections 26 ;------------------------------------------------------------------------------ 51 ;------------------------------------------------------------------------------ 52 ; Vista-64bit Sections 53 ;------------------------------------------------------------------------------ 79 ;------------------------------------------------------------------------------ [all …]
|
/linux/drivers/usb/class/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0 8 tristate "USB Modem (CDC ACM) support" 13 Please read <file:Documentation/usb/acm.rst> for details. 20 module will be called cdc-acm. 35 of cell phones compliant to the CDC WMC specification. You can use 39 module will be called cdc-wdm.
|
H A D | cdc-acm.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 4 * Includes for cdc-acm.c 6 * Mainly take from usbnet's cdc-ether part 32 * and proceed to issue several 1-character writes, assuming they will fit. 45 struct acm *instance; 54 struct acm *instance; 57 struct acm { struct 97 unsigned int minor; /* acm minor number */ argument
|
H A D | Makefile | 1 # SPDX-License-Identifier: GPL-2.0 7 obj-$(CONFIG_USB_ACM) += cdc-acm.o 8 obj-$(CONFIG_USB_PRINTER) += usblp.o 9 obj-$(CONFIG_USB_WDM) += cdc-wdm.o 10 obj-$(CONFIG_USB_TMC) += usbtmc.o
|
/linux/include/uapi/linux/usb/ |
H A D | cdc.h | 1 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ 3 * USB Communications Device Class (CDC) definitions 5 * CDC says how to talk to lots of different types of network adapters, 40 /*-------------------------------------------------------------------------*/ 43 * Class-Specific descriptors ... there are a couple dozen of them 62 /* "Header Functional Descriptor" from CDC spec 5.2.3.1 */ 71 /* "Call Management Descriptor" from CDC spec 5.2.3.2 */ 84 /* "Abstract Control Management Descriptor" from CDC spec 5.2.3.3 */ 100 /* "Union Functional Descriptor" from CDC spec 5.2.3.8 */ 111 /* "Country Selection Functional Descriptor" from CDC spec 5.2.3.9 */ [all …]
|
/linux/drivers/usb/serial/ |
H A D | qcaux.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * Copyright (C) 2008 Greg Kroah-Hartman <greg@kroah.com> 8 * Devices listed here usually provide a CDC ACM port on which normal modem 9 * AT commands and PPP can be used. But when that port is in-use by PPP it 21 /* NOTE: for now, only use this driver for devices that provide a CDC-ACM port 23 * QCDM-capable ports. Devices that do not provide a CDC-ACM port should 30 #define UTSTARCOM_PRODUCT_PC5750 0x3702 /* aka Pantech PX-500 */ 47 #define SANYO_PRODUCT_KATANA_LX 0x0754 /* SCP-3800 (Katana LX) */ 51 #define SAMSUNG_PRODUCT_U520 0x6640 /* SCH-U520 */
|
/linux/Documentation/devicetree/bindings/serial/ |
H A D | esp,esp32-acm.yaml | 1 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 4 --- 5 $id: http://devicetree.org/schemas/serial/esp,esp32-acm.yaml# 6 $schema: http://devicetree.org/meta-schemas/core.yaml# 8 title: ESP32S3 ACM gadget controller 11 - Max Filippov <jcmvbkbc@gmail.com> 14 Fixed function USB CDC-ACM gadget controller of the Espressif ESP32S3 SoC. 17 - $ref: serial.yaml# 21 const: esp,esp32s3-acm 30 - compatible [all …]
|
/linux/drivers/usb/gadget/ |
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0 7 # NOTE: Gadget support ** DOES NOT ** depend on host-side CONFIG_USB !! 9 # - Host systems (like PCs) need CONFIG_USB (with "A" jacks). 10 # - Peripherals (like PDAs) need CONFIG_USB_GADGET (with "B" jacks). 11 # - Some systems have both kinds of controllers. 13 # With help from a special transceiver and a "Mini-AB" jack, systems with 14 # both kinds of controller can also support "USB On-the-Go" (CONFIG_USB_OTG). 25 you can't connect a "to-the-host" connector to a peripheral. 44 For more information, see <http://www.linux-usb.org/gadget> and 100 int "Maximum VBUS Power usage (2-500 mA)" [all …]
|
/linux/drivers/net/usb/ |
H A D | rndis_host.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 14 #include <linux/usb/cdc.h> 20 * RNDIS is NDIS remoted over USB. It's a MSFT variant of CDC ACM ... of 21 * course ACM was intended for modems, not Ethernet links! USB's standard 22 * for Ethernet links is "CDC Ethernet", which is significantly simpler. 26 * - Power management in particular relies on information that's scattered 29 * - There are various undocumented protocol requirements, such as the 30 * need to send unused garbage in control-OUT messages. 31 * - In some cases, MS-Windows will emit undocumented requests; this 34 * Moreover there's a no-open-specs variant of RNDIS called "ActiveSync". [all …]
|
H A D | cdc_ether.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * CDC Ethernet based networking peripherals 4 * Copyright (C) 2003-2005 by David Brownell 18 #include <linux/usb/cdc.h> 26 return (desc->bInterfaceClass == USB_CLASS_COMM && in is_rndis() 27 desc->bInterfaceSubClass == 2 && in is_rndis() 28 desc->bInterfaceProtocol == 0xff); in is_rndis() 33 return (desc->bInterfaceClass == USB_CLASS_MISC && in is_activesync() 34 desc->bInterfaceSubClass == 1 && in is_activesync() 35 desc->bInterfaceProtocol == 1); in is_activesync() [all …]
|
H A D | lg-vl600.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 12 #include <linux/usb/cdc.h> 20 * The device has a CDC ACM port for modem control (it claims to be 21 * CDC ACM anyway) and a CDC Ethernet port for actual network data. 27 * sent/received from the CDC Ethernet port. The proprietary header 62 return -ENOMEM; in vl600_bind() 70 dev->driver_priv = s; in vl600_bind() 79 dev->net->flags |= IFF_NOARP; in vl600_bind() 81 dev->net->flags |= IFF_MULTICAST; in vl600_bind() 88 struct vl600_state *s = dev->driver_priv; in vl600_unbind() [all …]
|
H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 5 comment "Host-side USB support is needed for USB Network Adapter support" 16 tristate "USB CATC NetMate-based Ethernet device support" 35 tristate "USB KLSI KL5USB101-based ethernet device support" 40 ADS USB-10BT 45 D-Link DSB-650C and DU-E10 47 I-O DATA USB-ET/T 51 Mobility USB-Ethernet Adapter 52 NetGear EA-101 61 SmartBridges smartNIC or on Belkin F5U111 devices - you should use [all …]
|
H A D | kalmia.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 4 * Samsung GT-B3730 and GT-B3710. 22 #include <linux/usb/cdc.h> 27 * The Samsung Kalmia based LTE USB modems have a CDC ACM port for modem control 34 * connect the modem using AT commands through the ACM port and then use 43 * https://github.com/mkotsbak/Samsung-GT-B3730-linux-driver 53 /*-------------------------------------------------------------------------*/ 62 netdev_dbg(dev->net, "Sending init packet"); in kalmia_send_init_packet() 64 status = usb_bulk_msg(dev->udev, usb_sndbulkpipe(dev->udev, 0x02), in kalmia_send_init_packet() 67 netdev_err(dev->net, in kalmia_send_init_packet() [all …]
|
/linux/Documentation/driver-api/usb/ |
H A D | gadget.rst | 11 This document presents a Linux-USB "Gadget" kernel mode API, for use 17 - Supports USB 2.0, for high speed devices which can stream data at 20 - Handles devices with dozens of endpoints just as well as ones with 21 just two fixed-function ones. Gadget drivers can be written so 24 - Flexible enough to expose more complex USB device capabilities such 28 - USB "On-The-Go" (OTG) support, in conjunction with updates to the 29 Linux-USB host side. 31 - Sharing data structures and API models with the Linux-USB host side 32 API. This helps the OTG support, and looks forward to more-symmetric 36 - Minimalist, so it's easier to support new device controller hardware. [all …]
|