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.