|
ChibiOS/HAL
6.1.0
|
USB Driver macros and structures. More...
#include "hal_usb_lld.h"Go to the source code of this file.
Data Structures | |
| struct | USBDescriptor |
| Type of an USB descriptor. More... | |
Macros | |
| #define | USB_USE_WAIT FALSE |
| Enables synchronous APIs. More... | |
Helper macros for USB descriptors | |
| #define | USB_DESC_INDEX(i) ((uint8_t)(i)) |
| Helper macro for index values into descriptor strings. More... | |
| #define | USB_DESC_BYTE(b) ((uint8_t)(b)) |
| Helper macro for byte values into descriptor strings. More... | |
| #define | USB_DESC_WORD(w) |
| Helper macro for word values into descriptor strings. More... | |
| #define | USB_DESC_BCD(bcd) |
| Helper macro for BCD values into descriptor strings. More... | |
| #define | USB_DESC_DEVICE_SIZE 18U |
| #define | USB_DESC_DEVICE(bcdUSB, bDeviceClass, bDeviceSubClass, bDeviceProtocol, bMaxPacketSize, idVendor, idProduct, bcdDevice, iManufacturer, iProduct, iSerialNumber, bNumConfigurations) |
| Device Descriptor helper macro. More... | |
| #define | USB_DESC_CONFIGURATION_SIZE 9U |
| Configuration Descriptor size. More... | |
| #define | USB_DESC_CONFIGURATION(wTotalLength, bNumInterfaces, bConfigurationValue, iConfiguration, bmAttributes, bMaxPower) |
| Configuration Descriptor helper macro. More... | |
| #define | USB_DESC_INTERFACE_SIZE 9U |
| Interface Descriptor size. More... | |
| #define | USB_DESC_INTERFACE(bInterfaceNumber, bAlternateSetting, bNumEndpoints, bInterfaceClass, bInterfaceSubClass, bInterfaceProtocol, iInterface) |
| Interface Descriptor helper macro. More... | |
| #define | USB_DESC_INTERFACE_ASSOCIATION_SIZE 8U |
| Interface Association Descriptor size. More... | |
| #define | USB_DESC_INTERFACE_ASSOCIATION(bFirstInterface, bInterfaceCount, bFunctionClass, bFunctionSubClass, bFunctionProcotol, iInterface) |
| Interface Association Descriptor helper macro. More... | |
| #define | USB_DESC_ENDPOINT_SIZE 7U |
| Endpoint Descriptor size. More... | |
| #define | USB_DESC_ENDPOINT(bEndpointAddress, bmAttributes, wMaxPacketSize, bInterval) |
| Endpoint Descriptor helper macro. More... | |
Endpoint types and settings | |
| #define | USB_EP_MODE_TYPE 0x0003U |
| #define | USB_EP_MODE_TYPE_CTRL 0x0000U |
| #define | USB_EP_MODE_TYPE_ISOC 0x0001U |
| #define | USB_EP_MODE_TYPE_BULK 0x0002U |
| #define | USB_EP_MODE_TYPE_INTR 0x0003U |
Macro Functions | |
| #define | usbGetDriverStateI(usbp) ((usbp)->state) |
| Returns the driver state. More... | |
| #define | usbConnectBus(usbp) usb_lld_connect_bus(usbp) |
| Connects the USB device. More... | |
| #define | usbDisconnectBus(usbp) usb_lld_disconnect_bus(usbp) |
| Disconnect the USB device. More... | |
| #define | usbGetFrameNumberX(usbp) usb_lld_get_frame_number(usbp) |
| Returns the current frame number. More... | |
| #define | usbGetTransmitStatusI(usbp, ep) (((usbp)->transmitting & (uint16_t)((unsigned)1U << (unsigned)(ep))) != 0U) |
| Returns the status of an IN endpoint. More... | |
| #define | usbGetReceiveStatusI(usbp, ep) (((usbp)->receiving & (uint16_t)((unsigned)1U << (unsigned)(ep))) != 0U) |
| Returns the status of an OUT endpoint. More... | |
| #define | usbGetReceiveTransactionSizeX(usbp, ep) usb_lld_get_transaction_size(usbp, ep) |
| Returns the exact size of a receive transaction. More... | |
| #define | usbSetupTransfer(usbp, buf, n, endcb) |
| Request transfer setup. More... | |
| #define | usbReadSetup(usbp, ep, buf) usb_lld_read_setup(usbp, ep, buf) |
| Reads a setup packet from the dedicated packet buffer. More... | |
Low level driver helper macros | |
| #define | _usb_isr_invoke_event_cb(usbp, evt) |
| Common ISR code, usb event callback. More... | |
| #define | _usb_isr_invoke_sof_cb(usbp) |
| Common ISR code, SOF callback. More... | |
| #define | _usb_isr_invoke_setup_cb(usbp, ep) |
| Common ISR code, setup packet callback. More... | |
| #define | _usb_isr_invoke_in_cb(usbp, ep) |
| Common ISR code, IN endpoint callback. More... | |
| #define | _usb_isr_invoke_out_cb(usbp, ep) |
| Common ISR code, OUT endpoint event. More... | |
Typedefs | |
| typedef struct USBDriver | USBDriver |
| Type of a structure representing an USB driver. More... | |
| typedef uint8_t | usbep_t |
| Type of an endpoint identifier. More... | |
| typedef void(* | usbcallback_t) (USBDriver *usbp) |
| Type of an USB generic notification callback. More... | |
| typedef void(* | usbepcallback_t) (USBDriver *usbp, usbep_t ep) |
| Type of an USB endpoint callback. More... | |
| typedef void(* | usbeventcb_t) (USBDriver *usbp, usbevent_t event) |
| Type of an USB event notification callback. More... | |
| typedef bool(* | usbreqhandler_t) (USBDriver *usbp) |
| Type of a requests handler callback. More... | |
| typedef const USBDescriptor *(* | usbgetdescriptor_t) (USBDriver *usbp, uint8_t dtype, uint8_t dindex, uint16_t lang) |
| Type of an USB descriptor-retrieving callback. More... | |
Enumerations |
Functions | |
| void | usbInit (void) |
| USB Driver initialization. More... | |
| void | usbObjectInit (USBDriver *usbp) |
Initializes the standard part of a USBDriver structure. More... | |
| void | usbStart (USBDriver *usbp, const USBConfig *config) |
| Configures and activates the USB peripheral. More... | |
| void | usbStop (USBDriver *usbp) |
| Deactivates the USB peripheral. More... | |
| void | usbInitEndpointI (USBDriver *usbp, usbep_t ep, const USBEndpointConfig *epcp) |
| Enables an endpoint. More... | |
| void | usbDisableEndpointsI (USBDriver *usbp) |
| Disables all the active endpoints. More... | |
| void | usbStartReceiveI (USBDriver *usbp, usbep_t ep, uint8_t *buf, size_t n) |
| Starts a receive transaction on an OUT endpoint. More... | |
| void | usbStartTransmitI (USBDriver *usbp, usbep_t ep, const uint8_t *buf, size_t n) |
| Starts a transmit transaction on an IN endpoint. More... | |
| msg_t | usbReceive (USBDriver *usbp, usbep_t ep, uint8_t *buf, size_t n) |
| Performs a receive transaction on an OUT endpoint. More... | |
| msg_t | usbTransmit (USBDriver *usbp, usbep_t ep, const uint8_t *buf, size_t n) |
| Performs a transmit transaction on an IN endpoint. More... | |
| bool | usbStallReceiveI (USBDriver *usbp, usbep_t ep) |
| Stalls an OUT endpoint. More... | |
| bool | usbStallTransmitI (USBDriver *usbp, usbep_t ep) |
| Stalls an IN endpoint. More... | |
| void | usbWakeupHost (USBDriver *usbp) |
| Host wake-up procedure. More... | |
| void | _usb_reset (USBDriver *usbp) |
| USB reset routine. More... | |
| void | _usb_suspend (USBDriver *usbp) |
| USB suspend routine. More... | |
| void | _usb_wakeup (USBDriver *usbp) |
| USB wake-up routine. More... | |
| void | _usb_ep0setup (USBDriver *usbp, usbep_t ep) |
| Default EP0 SETUP callback. More... | |
| void | _usb_ep0in (USBDriver *usbp, usbep_t ep) |
| Default EP0 IN callback. More... | |
| void | _usb_ep0out (USBDriver *usbp, usbep_t ep) |
| Default EP0 OUT callback. More... | |
USB Driver macros and structures.
Definition in file hal_usb.h.