Added USB (specifically CDC-ACM) support
This commit is contained in:
parent
3af69d229a
commit
9d5a2aed80
18 changed files with 2079 additions and 4 deletions
60
cpu/at91sam7s/usb/usb-api.h
Normal file
60
cpu/at91sam7s/usb/usb-api.h
Normal file
|
@ -0,0 +1,60 @@
|
|||
#ifndef __USB_API_H__SYN81IFYBN__
|
||||
#define __USB_API_H__SYN81IFYBN__
|
||||
|
||||
#include <sys/process.h>
|
||||
|
||||
void
|
||||
usb_setup(void);
|
||||
|
||||
void
|
||||
usb_set_user_process(struct process *p);
|
||||
|
||||
void
|
||||
usb_setup_bulk_endpoint(unsigned char addr,
|
||||
unsigned char *buffer, unsigned int buf_size);
|
||||
void
|
||||
usb_setup_interrupt_endpoint(unsigned char addr,
|
||||
unsigned char *buffer, unsigned int buf_size);
|
||||
|
||||
/* Get a pointer to a buffer dat of length lenp.
|
||||
To which USB data can be written. */
|
||||
void
|
||||
usb_send_buffer_get(unsigned char ep_addr, unsigned int offset,
|
||||
unsigned char **dat, unsigned int *lenp);
|
||||
|
||||
/* Notify the USB subsystem that data has been written to the buffer returned
|
||||
by usb_send_buffer_get. */
|
||||
void
|
||||
usb_send_buffer_commit(unsigned char ep_addr, unsigned int len);
|
||||
|
||||
unsigned int
|
||||
usb_send_data(unsigned char ep_addr,
|
||||
const unsigned char *dat, unsigned int len);
|
||||
|
||||
unsigned int
|
||||
usb_recv_data(unsigned char ep_addr, unsigned char *dat, unsigned int len);
|
||||
|
||||
void
|
||||
usb_disable_endpoint(unsigned char addr);
|
||||
|
||||
/* Asynchronous */
|
||||
#define USB_USER_MSG_TYPE_CONFIG 0x01
|
||||
#define USB_USER_MSG_TYPE_SUSPEND 0x02
|
||||
#define USB_USER_MSG_TYPE_RESUME 0x03
|
||||
|
||||
/* Synchronous, the supplied data is only valid during the event */
|
||||
#define USB_USER_MSG_TYPE_EP_OUT(ep_addr) ((((ep_addr) & 0x7f)<<4) | 0x01)
|
||||
#define USB_USER_MSG_TYPE_EP_IN(ep_addr) ((((ep_addr) & 0x7f)<<4) | 0x02)
|
||||
|
||||
struct usb_user_msg {
|
||||
unsigned int type;
|
||||
union {
|
||||
/* For EPx_OUT */
|
||||
unsigned short length;
|
||||
/* For CONFIG */
|
||||
unsigned char config;
|
||||
} data;
|
||||
};
|
||||
|
||||
|
||||
#endif /* __USB_API_H__SYN81IFYBN__ */
|
Loading…
Add table
Add a link
Reference in a new issue