Abstract interface to physical USB hardware. More...
#include <USBPhy.h>
Public Member Functions | |
| virtual void | init (USBPhyEvents *events)=0 |
| Initialize this USBPhy instance. More... | |
| virtual void | deinit ()=0 |
| Power down this USBPhy instance. More... | |
| virtual bool | powered ()=0 |
| Check if USB power is present. More... | |
| virtual void | connect ()=0 |
| Make the USB phy visible to the USB host. More... | |
| virtual void | disconnect ()=0 |
| Detach the USB phy. More... | |
| virtual void | configure ()=0 |
| Set this device to the configured state. More... | |
| virtual void | unconfigure ()=0 |
| Leave the configured state. More... | |
| virtual void | sof_enable ()=0 |
| Enable the start of frame interrupt. More... | |
| virtual void | sof_disable ()=0 |
| Disable the start of frame interrupt. More... | |
| virtual void | set_address (uint8_t address)=0 |
| Set the USBPhy's address. More... | |
| virtual void | remote_wakeup ()=0 |
| Wake upstream devices. More... | |
| virtual const usb_ep_table_t * | endpoint_table ()=0 |
| Get the endpoint table. More... | |
| virtual uint32_t | ep0_set_max_packet (uint32_t max_packet)=0 |
| Set wMaxPacketSize of endpoint 0. More... | |
| virtual void | ep0_setup_read_result (uint8_t *buffer, uint32_t size)=0 |
| Read the contents of the SETUP packet. More... | |
| virtual void | ep0_read (uint8_t *data, uint32_t size)=0 |
| Start receiving a packet of up to wMaxPacketSize on endpoint 0. More... | |
| virtual uint32_t | ep0_read_result ()=0 |
| Read the contents of a received packet. More... | |
| virtual void | ep0_write (uint8_t *buffer, uint32_t size)=0 |
| Write a packet on endpoint 0. More... | |
| virtual void | ep0_stall ()=0 |
| Protocol stall on endpoint 0. More... | |
| virtual bool | endpoint_add (usb_ep_t endpoint, uint32_t max_packet, usb_ep_type_t type)=0 |
| Configure and enable an endpoint. More... | |
| virtual void | endpoint_remove (usb_ep_t endpoint)=0 |
| Disable an endpoint. More... | |
| virtual void | endpoint_stall (usb_ep_t endpoint)=0 |
| Perform a functional stall on the given endpoint. More... | |
| virtual void | endpoint_unstall (usb_ep_t endpoint)=0 |
| Unstall the endpoint. More... | |
| virtual bool | endpoint_read (usb_ep_t endpoint, uint8_t *data, uint32_t size)=0 |
| Start a read on the given endpoint. More... | |
| virtual uint32_t | endpoint_read_result (usb_ep_t endpoint)=0 |
| Finish a read on the given endpoint. More... | |
| virtual bool | endpoint_write (usb_ep_t endpoint, uint8_t *data, uint32_t size)=0 |
| Start a write on the given endpoint. More... | |
| virtual void | endpoint_abort (usb_ep_t endpoint)=0 |
| Abort the current transfer if it has not yet been sent. More... | |
| virtual void | process ()=0 |
| Callback used for performing USB processing. More... | |
Abstract interface to physical USB hardware.
|
pure virtual |
Set this device to the configured state.
Enable added endpoints if they are not enabled already.
|
pure virtual |
Make the USB phy visible to the USB host.
Enable either the D+ or D- pullup so the host can detect the presence of this device.
|
pure virtual |
Power down this USBPhy instance.
Disable interrupts and stop sending events.
|
pure virtual |
Detach the USB phy.
Disable the D+ and D- pullup and stop responding to USB traffic.
|
pure virtual |
Abort the current transfer if it has not yet been sent.
| endpoint | Endpoint to abort the transfer on. It is implementation defined if this function has an effect on receive endpoints. |
|
pure virtual |
Configure and enable an endpoint.
| endpoint | Endpoint to configure and enable |
| max_packet | The maximum packet size that can be sent or received |
| type | The type of endpoint this should be configured as - USB_EP_TYPE_BULK, USB_EP_TYPE_INT or USB_EP_TYPE_ISO |
|
pure virtual |
Start a read on the given endpoint.
| endpoint | Endpoint to start the read on |
| data | Buffer to fill with data |
| size | Size of the read buffer. This must be at least the max packet size for this endpoint. |
|
pure virtual |
Finish a read on the given endpoint.
| endpoint | Endpoint to check |
|
pure virtual |
Disable an endpoint.
| endpoint | Endpoint to disable |
|
pure virtual |
Perform a functional stall on the given endpoint.
Set the HALT feature for this endpoint so that all further communication is aborted.
| endpoint | Endpoint to stall |
|
pure virtual |
Get the endpoint table.
This function returns a table which describes the endpoints can be used, the functionality of those endpoints and the resource cost.
|
pure virtual |
Unstall the endpoint.
Clear the HALT feature on this endpoint so communication can resume.
| endpoint | Endpoint to stall |
|
pure virtual |
Start a write on the given endpoint.
| endpoint | Endpoint to write to |
| data | Buffer to write |
| size | Size of data to write |
|
pure virtual |
Start receiving a packet of up to wMaxPacketSize on endpoint 0.
| data | Buffer to fill with the data read |
| size | Size of buffer |
|
pure virtual |
Read the contents of a received packet.
|
pure virtual |
Set wMaxPacketSize of endpoint 0.
| max_packet | The wMaxPacketSize value for endpoint 0 |
|
pure virtual |
Read the contents of the SETUP packet.
| buffer | Buffer to fill with data |
| size | Size of buffer passed in |
|
pure virtual |
Protocol stall on endpoint 0.
Stall all IN and OUT packets on endpoint 0 until a setup packet is received.
|
pure virtual |
Write a packet on endpoint 0.
| buffer | Buffer fill with data to send |
| size | Size of data to send |
|
pure virtual |
Initialize this USBPhy instance.
This function must be called before calling any other functions of this class, unless specifically noted.
| events | Callback class to handle USB events |
|
pure virtual |
Check if USB power is present.
Devices which don't support checking the USB power state must always return true.
|
pure virtual |
Callback used for performing USB processing.
USBPhy processing should be triggered by calling USBPhyEvents::start_process and done inside process. All USBPhyEvents callbacks aside from USBPhyEvents::start_process must be called in the context of process
|
pure virtual |
Wake upstream devices.
|
pure virtual |
Set the USBPhy's address.
| address | This device's USB address |
|
pure virtual |
Disable the start of frame interrupt.
Stop calling USBPhyEvents::sof.
|
pure virtual |
Enable the start of frame interrupt.
Call USBPhyEvents::sof on every frame.