| .. _uds_next: |
| |
| USB device core support |
| ####################### |
| |
| The new USB device support is experimental and under development. It consists |
| of low level USB device controller (UDC) driver API, USB device stack (core) |
| and different functions implementing specific classes. The device stack and |
| driver API bring multiple device support for the (rare) case that a board has |
| multiple USB device controllers. Device stack has support for multiple |
| configurations and a class instance can be added or removed at runtime to a |
| configuration. The stack provides a specific API for implementing the |
| functions (classes). This takes over the configuration of the class interfaces |
| and endpoints, and also the communication with the stack and driver API. |
| The stack can be enabled by the :kconfig:option:`CONFIG_USB_DEVICE_STACK_NEXT`. |
| |
| The first time there will be only one sample for the new USB support, |
| :ref:`usb_shell-app`, with all available USB support shell commands. |
| The sample is mainly to help test the capabilities of the stack and correct |
| implementation of the USB controller drivers. |
| |
| USB device stack core API reference |
| *********************************** |
| |
| .. doxygengroup:: usbd_api |
| |
| UDC driver API reference |
| ************************ |
| |
| The new USB device controller (UDC) driver API implements the low level layer |
| to interface with USB device controller. |
| UDC driver API is experimental and is subject to change without notice, it |
| is described in :zephyr_file:`include/drivers/usb/udc.h`. |
| |
| .. doxygengroup:: udc_api |