@@ -55,21 +55,33 @@ device controller driver and USB device class drivers or customer applications.
5555It's a port of the LPCUSB device stack. It provides the following
5656functionalities:
5757
58- * Responds to standard device requests and returns standard descriptors,
59- essentially handling 'Chapter 9' processing, specifically the standard
60- device requests in table 9-3 from the universal serial bus specification
61- revision 2.0.
62- * Provides a programming interface to be used by USB device classes or
63- customer applications. The APIs are described in the usb_device.h file.
64- * Uses the APIs provided by the device controller drivers to interact with
65- the USB device controller.
58+ * Responds to standard device requests and returns standard descriptors,
59+ essentially handling 'Chapter 9' processing, specifically the standard
60+ device requests in table 9-3 from the universal serial bus specification
61+ revision 2.0.
62+ * Provides a programming interface to be used by USB device classes or
63+ customer applications. The APIs are described in the usb_device.h file.
64+ * Uses the APIs provided by the device controller drivers to interact with
65+ the USB device controller.
6666
6767USB device class drivers
6868************************
6969
70- To initialize the device class driver instance the USB device class driver
71- should call :c:func: `usb_set_config() ` passing as parameter the instance's
72- configuration structure.
70+ Zephyr USB Device Stack supports many standard classes, such as HID, MSC
71+ Ethernet over USB, DFU, Bluetooth.
72+
73+ Implementing non standard USB class
74+ ===================================
75+
76+ Configuration of USB Device is done in the stack layer.
77+
78+ The following structures and callbacks need to be defined:
79+
80+ * Part of USB Descriptor table
81+ * USB Endpoint configuration table
82+ * USB Device configuration structure
83+ * Endpoint callbacks
84+ * Optionally class, vendor and custom handlers
7385
7486For example, for USB loopback application:
7587
@@ -95,10 +107,9 @@ USB Device configuration structure:
95107 :end-before: usb.rst device config data end
96108 :linenos:
97109
98- Configuration of USB Device is done in the stack layer.
99110
100111The vendor device requests are forwarded by the USB stack core driver to the
101- class driver through the registered class handler.
112+ class driver through the registered vendor handler.
102113
103114For the loopback class driver, :c:func: `loopback_vendor_handler ` processes
104115the vendor requests:
@@ -123,7 +134,7 @@ Run built sample with:
123134
124135.. code-block :: console
125136
126- make -Cbuild run
137+ west build -t run
127138
128139 In a terminal window, run the following command to list USB devices:
129140
0 commit comments