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

📄 jz4730_udc.h

📁 linux下面gadget设备驱动
💻 H
字号:
/* * JZ4730 USB Device Controller driver * * Copyright (C) 2005 by Wei Jianli * * This file is licensed under the terms of the GNU General Public * License version 2.  This program is licensed "as is" without any * warranty of any kind, whether express or implied. */#ifndef __JZ4730_UDC_H__#define __JZ4730_UDC_H__/* DRIVER DATA STRUCTURES and UTILITIES */#define MAX_EP_NUM 		8	/* Number of endpoints on this UDC */#define MAX_EP0_SIZE 		32#define MAX_EP1_SIZE 		64#define MAX_EP2_SIZE 		64#define MAX_EP3_SIZE 		64#define MAX_EP4_SIZE 		64#define MAX_EP5_SIZE 		64#define MAX_EP6_SIZE		64#define MAX_EP7_SIZE		64// UDC FIFO#define RXFIFO    		(UDC_RXFIFO)    /* EP0 OUT, EP5-7 OUT */#define TXFIFOEP0 		(UDC_TXFIFOEP0) /* EP0 IN */#define TXFIFOEP1 		(TXFIFOEP0 + MAX_EP0_SIZE) /* EP1 IN */#define TXFIFOEP2 		(TXFIFOEP1 + MAX_EP1_SIZE) /* EP2 IN */#define TXFIFOEP3 		(TXFIFOEP2 + MAX_EP2_SIZE) /* EP3 IN */#define TXFIFOEP4 		(TXFIFOEP3 + MAX_EP3_SIZE) /* EP4 IN */static u32 ep_fifo[MAX_EP_NUM] = {TXFIFOEP0, TXFIFOEP1, TXFIFOEP2, 				  TXFIFOEP3, TXFIFOEP4, RXFIFO, RXFIFO, 				  RXFIFO};#define OUT_COUNT(stats) \	((stats&UDC_EPSR_RXPKTSIZE_MASK)>>UDC_EPSR_RXPKTSIZE_BIT)struct jz4730_ep {	struct usb_ep ep;	struct jz4730_udc *dev;	u8 index;	u8 is_in;	u8 stopped;	u8 irq_pending;	u32 fifo;	struct list_head queue;	const struct usb_endpoint_descriptor *desc;};struct jz4730_request {	struct usb_request req;	struct list_head queue;};enum ep0state {	EP0_DISCONNECT,		/* no host */	EP0_IDLE,		/* between STATUS ack and SETUP report */	EP0_IN, EP0_OUT, 	/* data stage */	EP0_STATUS,		/* status stage */	EP0_STALL,		/* data or status stages */	EP0_SUSPEND,		/* usb suspend */};struct jz4730_udc {	struct usb_gadget gadget;	struct usb_gadget_driver *driver;	spinlock_t lock;	struct jz4730_ep ep[MAX_EP_NUM];	enum ep0state ep0state;	unsigned char usb_address;};/*-------------------------------------------------------------------------*//* 2.5 stuff that's sometimes missing in 2.4 */#ifndef container_of#define	container_of	list_entry#endif#ifndef likely#define likely(x)	(x)#define unlikely(x)	(x)#endif#ifndef BUG_ON#define BUG_ON(condition) do { if (unlikely((condition)!=0)) BUG(); } while(0)#endif#ifndef WARN_ON#define	WARN_ON(x)	do { } while (0)#endif#ifndef	IRQ_NONEtypedef void irqreturn_t;#define IRQ_NONE#define IRQ_HANDLED#define IRQ_RETVAL(x)#endif#endif /* __JZ4730_UDC_H__ */

⌨️ 快捷键说明

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