ChibiOS/HAL  6.1.0
hal_usb_lld.h File Reference

PLATFORM USB subsystem low level driver header. More...

Go to the source code of this file.

Data Structures

struct  USBInEndpointState
 Type of an IN endpoint state structure. More...
 
struct  USBOutEndpointState
 Type of an OUT endpoint state structure. More...
 
struct  USBEndpointConfig
 Type of an USB endpoint configuration structure. More...
 
struct  USBConfig
 Type of an USB driver configuration structure. More...
 
struct  USBDriver
 Structure representing an USB driver. More...
 

Macros

#define USB_MAX_ENDPOINTS   4
 Maximum endpoint address. More...
 
#define USB_EP0_STATUS_STAGE   USB_EP0_STATUS_STAGE_SW
 Status stage handling method. More...
 
#define USB_SET_ADDRESS_MODE   USB_LATE_SET_ADDRESS
 The address can be changed immediately upon packet reception. More...
 
#define USB_SET_ADDRESS_ACK_HANDLING   USB_SET_ADDRESS_ACK_SW
 Method for set address acknowledge. More...
 
#define usb_lld_get_frame_number(usbp)   0
 Returns the current frame number. More...
 
#define usb_lld_get_transaction_size(usbp, ep)   ((usbp)->epc[ep]->out_state->rxcnt)
 Returns the exact size of a receive transaction. More...
 
#define usb_lld_connect_bus(usbp)
 Connects the USB device. More...
 
#define usb_lld_disconnect_bus(usbp)
 Disconnect the USB device. More...
 
#define usb_lld_wakeup_host(usbp)
 Start of host wake-up procedure. More...
 
PLATFORM configuration options
#define PLATFORM_USB_USE_USB1   FALSE
 USB driver enable switch. More...
 

Functions

void usb_lld_init (void)
 Low level USB driver initialization. More...
 
void usb_lld_start (USBDriver *usbp)
 Configures and activates the USB peripheral. More...
 
void usb_lld_stop (USBDriver *usbp)
 Deactivates the USB peripheral. More...
 
void usb_lld_reset (USBDriver *usbp)
 USB low level reset routine. More...
 
void usb_lld_set_address (USBDriver *usbp)
 Sets the USB address. More...
 
void usb_lld_init_endpoint (USBDriver *usbp, usbep_t ep)
 Enables an endpoint. More...
 
void usb_lld_disable_endpoints (USBDriver *usbp)
 Disables all the active endpoints except the endpoint zero. More...
 
usbepstatus_t usb_lld_get_status_in (USBDriver *usbp, usbep_t ep)
 Returns the status of an IN endpoint. More...
 
usbepstatus_t usb_lld_get_status_out (USBDriver *usbp, usbep_t ep)
 Returns the status of an OUT endpoint. More...
 
void usb_lld_read_setup (USBDriver *usbp, usbep_t ep, uint8_t *buf)
 Reads a setup packet from the dedicated packet buffer. More...
 
void usb_lld_prepare_receive (USBDriver *usbp, usbep_t ep)
 Prepares for a receive operation. More...
 
void usb_lld_prepare_transmit (USBDriver *usbp, usbep_t ep)
 Prepares for a transmit operation. More...
 
void usb_lld_start_out (USBDriver *usbp, usbep_t ep)
 Starts a receive operation on an OUT endpoint. More...
 
void usb_lld_start_in (USBDriver *usbp, usbep_t ep)
 Starts a transmit operation on an IN endpoint. More...
 
void usb_lld_stall_out (USBDriver *usbp, usbep_t ep)
 Brings an OUT endpoint in the stalled state. More...
 
void usb_lld_stall_in (USBDriver *usbp, usbep_t ep)
 Brings an IN endpoint in the stalled state. More...
 
void usb_lld_clear_out (USBDriver *usbp, usbep_t ep)
 Brings an OUT endpoint in the active state. More...
 
void usb_lld_clear_in (USBDriver *usbp, usbep_t ep)
 Brings an IN endpoint in the active state. More...
 

Detailed Description

PLATFORM USB subsystem low level driver header.

Definition in file hal_usb_lld.h.