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 |
| Un-stall 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.
Implemented in USBPhyHw.
|
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.
Implemented in USBPhyHw.
|
pure virtual |
|
pure virtual |
Detach the USB phy.
Disable the D+ and D- pullup and stop responding to USB traffic.
Implemented in USBPhyHw.
|
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. |
Implemented in USBPhyHw.
|
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 |
Implemented in USBPhyHw.
|
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. |
Implemented in USBPhyHw.
|
pure virtual |
Finish a read on the given endpoint.
| endpoint | Endpoint to check |
Implemented in USBPhyHw.
|
pure virtual |
|
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 |
Implemented in USBPhyHw.
|
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.
Implemented in USBPhyHw.
|
pure virtual |
Un-stall the endpoint.
Clear the HALT feature on this endpoint so communication can resume.
| endpoint | Endpoint to stall |
Implemented in USBPhyHw.
|
pure virtual |
Start a write on the given endpoint.
| endpoint | Endpoint to write to |
| data | Buffer to write |
| size | Size of data to write |
Implemented in USBPhyHw.
|
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 |
Implemented in USBPhyHw.
|
pure virtual |
|
pure virtual |
Set wMaxPacketSize of endpoint 0.
| max_packet | The wMaxPacketSize value for endpoint 0 |
Implemented in USBPhyHw.
|
pure virtual |
Read the contents of the SETUP packet.
| buffer | Buffer to fill with data |
| size | Size of buffer passed in |
Implemented in USBPhyHw.
|
pure virtual |
Protocol stall on endpoint 0.
Stall all IN and OUT packets on endpoint 0 until a setup packet is received.
Implemented in USBPhyHw.
|
pure virtual |
Write a packet on endpoint 0.
| buffer | Buffer fill with data to send |
| size | Size of data to send |
Implemented in USBPhyHw.
|
pure virtual |
|
pure virtual |
Check if USB power is present.
Devices which don't support checking the USB power state must always return true.
Implemented in USBPhyHw.
|
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
Implemented in USBPhyHw.
|
pure virtual |
Wake upstream devices.
Implemented in USBPhyHw.
|
pure virtual |
|
pure virtual |
|
pure virtual |
Enable the start of frame interrupt.
Call USBPhyEvents::sof on every frame.
Implemented in USBPhyHw.