|
| file | usb-regs.h |
| | Header file with declarations for the cc2538 USB registers.
|
| |
| file | cdc-acm-descriptors.c |
| | CDC-ACM mode USB descriptor for the cc2538 USB controller.
|
| |
| file | usb-arch.c |
| | Arch-specific routines for the cc2538 USB controller.
|
| |
| file | usb-serial.c |
| | Platform process which implements a UART-like functionality over the cc2538's USB hardware.
|
| |
| file | usb-serial.h |
| | Header file for cc2538's UART-like I/O over USB.
|
| |
|
| void | usb_serial_flush (void) |
| | Immediately transmit the content of Serial-over-USB TX buffers.
|
| |
| void | usb_serial_writeb (uint8_t b) |
| | Write a byte over USB.
|
| |
| void | usb_serial_set_input (int(*input)(unsigned char c)) |
| | Set an input hook for bytes received over USB.
|
| |
|
void | usb_serial_init (void) |
| | Initialise the Serial-over-USB process.
|
| |
|
|
#define | USB_ADDR 0x40089000 |
| | Function address.
|
| |
|
#define | USB_POW 0x40089004 |
| | Power/Control register.
|
| |
|
#define | USB_IIF 0x40089008 |
| | IN EPs and EP0 interrupt flags.
|
| |
|
#define | USB_OIF 0x40089010 |
| | OUT endpoint interrupt flags.
|
| |
|
#define | USB_CIF 0x40089018 |
| | Common USB interrupt flags.
|
| |
|
#define | USB_IIE 0x4008901C |
| | IN EPs and EP0 interrupt mask.
|
| |
|
#define | USB_OIE 0x40089024 |
| | Out EPs interrupt-enable mask.
|
| |
|
#define | USB_CIE 0x4008902C |
| | Common USB interrupt mask.
|
| |
|
#define | USB_FRML 0x40089030 |
| | Current frame number (low byte)
|
| |
|
#define | USB_FRMH 0x40089034 |
| | Current frame number (high)
|
| |
|
#define | USB_INDEX 0x40089038 |
| | Current endpoint index register.
|
| |
|
#define | USB_CTRL 0x4008903C |
| | USB control register.
|
| |
|
#define | USB_MAXI 0x40089040 |
| | MAX packet size for IN EPs{1-5}.
|
| |
|
#define | USB_CS0_CSIL 0x40089044 |
| | EP0 Control and Status or IN EPs control and status (low)
|
| |
|
#define | USB_CS0 0x40089044 |
| | EP0 Control and Status (Alias for USB_CS0_CSIL)
|
| |
|
#define | USB_CSIL 0x40089044 |
| | IN EPs control and status (low) (Alias for USB_CS0_CSIL)
|
| |
|
#define | USB_CSIH 0x40089048 |
| | IN EPs control and status (high)
|
| |
|
#define | USB_MAXO 0x4008904C |
| | MAX packet size for OUT EPs.
|
| |
|
#define | USB_CSOL 0x40089050 |
| | OUT EPs control and status (low)
|
| |
|
#define | USB_CSOH 0x40089054 |
| | OUT EPs control and status (high)
|
| |
|
#define | USB_CNT0_CNTL 0x40089058 |
| | Number of RX bytes in EP0 FIFO or number of bytes in EP{1-5} OUT FIFO (low)
|
| |
|
#define | USB_CNT0 0x40089058 |
| | Number of RX bytes in EP0 FIFO (Alias for USB_CNT0_CNTL)
|
| |
|
#define | USB_CNTL 0x40089058 |
| | Number of bytes in EP{1-5} OUT FIFO (low) (Alias for USB_CNT0_CNTL)
|
| |
|
#define | USB_CNTH 0x4008905C |
| | Number of bytes in EP{1-5} OUT FIFO (high)
|
| |
|
#define | USB_F0 0x40089080 |
| | Endpoint-0 FIFO.
|
| |
|
#define | USB_F1 0x40089088 |
| | Endpoint-1 FIFO.
|
| |
|
#define | USB_F2 0x40089090 |
| | Endpoint-2 FIFO.
|
| |
|
#define | USB_F3 0x40089098 |
| | Endpoint-3 FIFO.
|
| |
|
#define | USB_F4 0x400890A0 |
| | Endpoint-4 FIFO.
|
| |
|
#define | USB_F5 0x400890A8 |
| | Endpoint-5 FIFO.
|
| |
|
|
#define | USB_ADDR_UPDATE 0x00000080 |
| | 1 while address updating
|
| |
|
#define | USB_ADDR_USBADDR 0x0000007F |
| | Device address.
|
| |
|
|
#define | USB_POW_ISO_WAIT_SOF 0x00000080 |
| | 1 until SOF received - ISO only
|
| |
|
#define | USB_POW_RST 0x00000008 |
| | 1 During reset signaling
|
| |
|
#define | USB_POW_RESUME 0x00000004 |
| | Remote wakeup resume signalling.
|
| |
|
#define | USB_POW_SUSPEND 0x00000002 |
| | Suspend mode entered.
|
| |
|
#define | USB_POW_SUSPEND_EN 0x00000001 |
| | Suspend enable.
|
| |
|
|
#define | USB_IIF_INEP5IF 0x00000020 |
| | IN EP5 Interrupt flag.
|
| |
|
#define | USB_IIF_INEP4IF 0x00000010 |
| | IN EP4 Interrupt flag.
|
| |
|
#define | USB_IIF_INEP3IF 0x00000008 |
| | IN EP3 Interrupt flag.
|
| |
|
#define | USB_IIF_INEP2IF 0x00000004 |
| | IN EP2 Interrupt flag.
|
| |
|
#define | USB_IIF_INEP1IF 0x00000002 |
| | IN EP1 Interrupt flag.
|
| |
|
#define | USB_IIF_EP0IF 0x00000001 |
| | EP0 Interrupt flag.
|
| |
|
|
#define | USB_OIF_OUTEP5IF 0x00000020 |
| | OUT EP5 Interrupt flag.
|
| |
|
#define | USB_OIF_OUTEP4IF 0x00000010 |
| | OUT EP4 Interrupt flag.
|
| |
|
#define | USB_OIF_OUTEP3IF 0x00000008 |
| | OUT EP3 Interrupt flag.
|
| |
|
#define | USB_OIF_OUTEP2IF 0x00000004 |
| | OUT EP2 Interrupt flag.
|
| |
|
#define | USB_OIF_OUTEP1IF 0x00000002 |
| | OUT EP1 Interrupt flag.
|
| |
|
|
#define | USB_CIF_SOFIF 0x00000008 |
| | Start-of-frame interrupt flag.
|
| |
|
#define | USB_CIF_RSTIF 0x00000004 |
| | Reset interrupt flag.
|
| |
|
#define | USB_CIF_RESUMEIF 0x00000002 |
| | Resume interrupt flag.
|
| |
|
#define | USB_CIF_SUSPENDIF 0x00000001 |
| | Suspend interrupt flag.
|
| |
|
|
#define | USB_IIE_INEP5IE 0x00000020 |
| | IN EP5 interrupt enable.
|
| |
|
#define | USB_IIE_INEP4IE 0x00000010 |
| | IN EP4 interrupt enable.
|
| |
|
#define | USB_IIE_INEP3IE 0x00000008 |
| | IN EP3 interrupt enable.
|
| |
|
#define | USB_IIE_INEP2IE 0x00000004 |
| | IN EP2 interrupt enable.
|
| |
|
#define | USB_IIE_INEP1IE 0x00000002 |
| | IN EP1 interrupt enable.
|
| |
|
#define | USB_IIE_EP0IE 0x00000001 |
| | EP0 interrupt enable.
|
| |
|
|
#define | USB_OIE_OUTEP5IE 0x00000020 |
| | OUT EP5 interrupt enable.
|
| |
|
#define | USB_OIE_OUTEP4IE 0x00000010 |
| | OUT EP4 interrupt enable.
|
| |
|
#define | USB_OIE_OUTEP3IE 0x00000008 |
| | OUT EP3 interrupt enable.
|
| |
|
#define | USB_OIE_OUTEP2IE 0x00000004 |
| | OUT EP2 interrupt enable.
|
| |
|
#define | USB_OIE_OUTEP1IE 0x00000002 |
| | OUT EP1 interrupt enable.
|
| |
|
|
#define | USB_CIE_SOFIE 0x00000008 |
| | Start-of-frame interrupt enable.
|
| |
|
#define | USB_CIE_RSTIE 0x00000004 |
| | Reset interrupt enable.
|
| |
|
#define | USB_CIE_RESUMEIE 0x00000002 |
| | Resume interrupt enable.
|
| |
|
#define | USB_CIE_SUSPENDIE 0x00000001 |
| | Suspend interrupt enable.
|
| |
|
|
#define | USB_FRML_FRAME 0x000000FF |
| | Low byte of 11-bit frame number.
|
| |
|
|
#define | USB_FRMH_FRAME 0x00000007 |
| | 3 MSBs of 11-bit frame number
|
| |
|
|
#define | USB_INDEX_USBINDEX 0x0000000F |
| | Endpoint selected.
|
| |
|
|
#define | USB_CTRL_PLL_LOCKED 0x00000080 |
| | PLL locked status.
|
| |
|
#define | USB_CTRL_PLL_EN 0x00000002 |
| | 48-MHz USB PLL enable
|
| |
|
#define | USB_CTRL_USB_EN 0x00000001 |
| | USB enable.
|
| |
|
|
#define | USB_MAXI_USBMAXI 0x000000FF |
| | Maximum packet size.
|
| |
|
|
#define | USB_CS0_CLR_SETUP_END 0x00000080 |
| | Listed as reserved in the UG, is this right?
|
| |
|
#define | USB_CS0_CSIL_CLR_OUTPKT_RDY_or_CLR_DATA_TOG 0x00000040 |
| | Deassert OUTPKT_RDY bit of this register or reset the data toggle to 0.
|
| |
|
#define | USB_CS0_CSIL_SEND_STALL_or_SENT_STALL 0x00000020 |
| | Set this bit to 1 to terminate the current transaction or is set when a STALL handshake has been sent.
|
| |
|
#define | USB_CS0_CSIL_SETUP_END_or_SEND_STALL 0x00000010 |
| | Is set if the control transfer ends due to a premature end-of-control transfer or set to 1 to make the USB controller reply with a STALL handshake when receiving IN tokens.
|
| |
|
#define | USB_CS0_CSIL_DATA_END_or_FLUSH_PACKET 0x00000008 |
| | Signal the end of a data transfer or set to 1 to flush next packet that is ready to transfer from the IN FIFO.
|
| |
| #define | USB_CS0_CSIL_SENT_STALL_or_UNDERRUN 0x00000004 |
| | Set when a STALL handshake is sent or set if an IN token is received when INPKT_RDY = 0, and a zero-length data packet is transmitted in response to the IN token.
|
| |
|
#define | USB_CS0_CSIL_INPKT_RDY_or_PKT_PRESENT 0x00000002 |
| | Data packet has been loaded into the EP0 FIFO or at least one packet in the IN FIFO.
|
| |
|
#define | USB_CS0_CSIL_OUTPKT_RDY_or_INPKT_RDY 0x00000001 |
| | Data packet received or data packet has been loaded into the IN FIFO.
|
| |
|
|
#define | USB_CSIH_AUTISET 0x00000080 |
| | Auto-assert INPKT_RDY.
|
| |
|
#define | USB_CSIH_ISO 0x00000040 |
| | Selects IN endpoint type.
|
| |
|
#define | USB_CSIH_FORCE_DATA_TOG 0x00000008 |
| | IN EP force data toggle switch.
|
| |
|
#define | USB_CSIH_IN_DBL_BUF 0x00000001 |
| | Double buffering enable (IN FIFO)
|
| |
|
|
#define | USB_MAXO_USBMAXO 0x000000FF |
| | Maximum packet size.
|
| |
|
|
#define | USB_CSOL_CLR_DATA_TOG 0x00000080 |
| | Setting resets data toggle to 0.
|
| |
|
#define | USB_CSOL_SENT_STALL 0x00000040 |
| | STALL handshake sent.
|
| |
|
#define | USB_CSOL_SEND_STALL 0x00000020 |
| | Reply with STALL to OUT tokens.
|
| |
|
#define | USB_CSOL_FLUSH_PACKET 0x00000010 |
| | Flush next packet read from OUT FIFO.
|
| |
|
#define | USB_CSOL_DATA_ERROR 0x00000008 |
| | CRC or bit-stuff error in RX packet.
|
| |
|
#define | USB_CSOL_OVERRUN 0x00000004 |
| | OUT packet can not be loaded into OUT FIFO.
|
| |
|
#define | USB_CSOL_FIFO_FULL 0x00000002 |
| | OUT FIFO full.
|
| |
|
#define | USB_CSOL_OUTPKT_RDY 0x00000001 |
| | OUT packet read in OUT FIFO.
|
| |
|
|
#define | USB_CSOH_AUTOCLEAR 0x00000080 |
| | Auto-clear OUTPKT_RDY.
|
| |
|
#define | USB_CSOH_ISO 0x00000040 |
| | Selects OUT endpoint type.
|
| |
|
#define | USB_CSOH_OUT_DBL_BUF 0x00000001 |
| | Double buffering enable (OUT FIFO)
|
| |
|
|
#define | USB_CNT0_CNTL_USBCNT0 0x0000003F |
| | Number of RX bytes in EP0 FIFO.
|
| |
|
#define | USB_CNT0_CNTL_USBCNT_5_0 0x0000003F |
| | 6 LSBs of the number of RX bytes in EP1-5 OUT FIFO
|
| |
|
|
#define | USB_CNTH_USBCNT 0x00000007 |
| | 3 MSBs of RX byte number
|
| |
|
|
#define | USB_F0_USBF0 0x000000FF |
| | Endpoint 0 FIFO mask.
|
| |
|
#define | USB_F1_USBF1 0x000000FF |
| | Endpoint 1 FIFO mask.
|
| |
|
#define | USB_F2_USBF2 0x000000FF |
| | Endpoint 2 FIFO mask.
|
| |
|
#define | USB_F3_USBF3 0x000000FF |
| | Endpoint 3 FIFO mask.
|
| |
|
#define | USB_F4_USBF4 0x000000FF |
| | Endpoint 4 FIFO mask.
|
| |
|
#define | USB_F5_USBF5 0x000000FF |
| | Endpoint 5 FIFO mask.
|
| |
Driver for the cc2538 USB controller.
We use the USB core in cpu/cc253x/usb which is known to work on Linux as well as on OS X.
◆ USB_CS0_CSIL_SENT_STALL_or_UNDERRUN
| #define USB_CS0_CSIL_SENT_STALL_or_UNDERRUN 0x00000004 |
Set when a STALL handshake is sent or set if an IN token is received when INPKT_RDY = 0, and a zero-length data packet is transmitted in response to the IN token.
In bulk/interrupt mode, this bit is set when a NAK is returned in response to an IN token
Definition at line 260 of file usb-regs.h.
◆ usb_serial_flush()
| void usb_serial_flush |
( |
void | | ) |
|
◆ usb_serial_set_input()
| void usb_serial_set_input |
( |
int(*)(unsigned char c) | input | ) |
|
◆ usb_serial_writeb()
| void usb_serial_writeb |
( |
uint8_t | b | ) |
|