⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usb_ctl_pxa.h

📁 LUBBOCK板的BLOB
💻 H
字号:
/*
 *  Copyright (C) Compaq Computer Corporation, 1998, 1999
 *  Copyright (C) Extenex Corporation 2001
 *  Copyright (C) Intrinsyc, Inc., 2002
 *
 *  usb_ctl.h
 *
 *  PRIVATE interface used to share info among components of the PXA USB
 *  core: usb_ctl, usb_ep0, usb_recv and usb_send. Clients of the USB core
 *  should use pxa_usb.h.
 *
 *  02-May-2002
 *   Frank Becker (Intrinsyc) - derived from sa1100 usb_ctl.h
 *
 */

#ifndef _USB_CTL_H
#define _USB_CTL_H

/* Interrupt mask bits and UDC enable bit */
#define UDCCR_MASK_BITS         (UDCCR_REM | UDCCR_SRM | UDCCR_UDE)

/*
 * These states correspond to those in the USB specification v1.0
 * in chapter 8, Device Framework.
 */
enum { 
	USB_STATE_NOTATTACHED	=0,
	USB_STATE_ATTACHED	=1,
	USB_STATE_POWERED	=2,
	USB_STATE_DEFAULT	=3,
	USB_STATE_ADDRESS	=4,
	USB_STATE_CONFIGURED	=5,
	USB_STATE_SUSPENDED	=6
};

struct usb_stats_t {
	 unsigned long ep0_fifo_write_failures;
	 unsigned long ep0_bytes_written;
	 unsigned long ep0_fifo_read_failures;
	 unsigned long ep0_bytes_read;
};

struct usb_info_t
{
	 char * client_name;
	 int state;
	 unsigned char address;
	 struct usb_stats_t stats;
};

/* in usb_ctl.c */
extern struct usb_info_t usbd_info;

/*
 * Function Prototypes
 */
enum { 
	kError		=-1,
	kEvSuspend	=0,
	kEvReset	=1,
	kEvResume	=2,
	kEvAddress	=3,
	kEvConfig	=4,
	kEvDeConfig	=5 
};
int usbctl_next_state_on_event( int event );

/* endpoint zero */
void ep0_reset(void);
void ep0_int_hndlr(void);

/* receiver */
void ep2_state_change_notify( int new_state );
int  ep2_recv(char *buf, int len, usb_callback_t callback);
int  ep2_init(int chn);
void ep2_int_hndlr(int status);
void ep2_reset(void);
void ep2_stall(void);
void ep7_state_change_notify( int new_state );
int  ep7_recv(char *buf, int len, usb_callback_t callback);
int  ep7_init(int chn);
void ep7_int_hndlr(int status);
void ep7_reset(void);
void ep7_stall(void);

/* xmitter */
void ep1_state_change_notify( int new_state );
int  ep1_send(char *buf, int len, usb_callback_t callback);
void ep1_reset(void);
int  ep1_init(int chn);
void ep1_int_hndlr(int status);
void ep1_stall(void);
void ep6_state_change_notify( int new_state );
int  ep6_send(char *buf, int len, usb_callback_t callback);
void ep6_reset(void);
int  ep6_init(int chn);
void ep6_int_hndlr(int status);
void ep6_stall(void);

#endif /* _USB_CTL_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -