omap24xx_mmc.h

来自「Linux Kernel 2.6.9 for OMAP1710」· C头文件 代码 · 共 120 行

H
120
字号
#ifndef	DRIVERS_MEDIA_MMC_OMAP_H#define	DRIVERS_MEDIA_MMC_OMAP_H#define DRIVER_NAME    "omap-mmc"#define MMC_REG_BASE   0xf809C000#define PRCM_CLK_EN_PLL      0x500#define PRCM_CLK_SEL1_PLL    0x540#define PRCM_FCLK_EN1_CORE   0x200#define PRCM_FCLK_EN2_CORE   0x204#define OMAP_MMC_REG_CMD        0x00#define OMAP_MMC_REG_ARGL       0x04#define OMAP_MMC_REG_ARGH       0x08#define OMAP_MMC_REG_CON        0x0c#define OMAP_MMC_REG_STAT       0x10#define OMAP_MMC_REG_IE         0x14#define OMAP_MMC_REG_CTO        0x18#define OMAP_MMC_REG_DTO        0x1c#define OMAP_MMC_REG_DATA       0x20#define OMAP_MMC_REG_BLEN       0x24#define OMAP_MMC_REG_NBLK       0x28#define OMAP_MMC_REG_BUF        0x2c#define OMAP_MMC_REG_REV        0x3c#define OMAP_MMC_REG_RSP0       0x40#define OMAP_MMC_REG_RSP1       0x44#define OMAP_MMC_REG_RSP2       0x48#define OMAP_MMC_REG_RSP3       0x4c#define OMAP_MMC_REG_RSP4       0x50#define OMAP_MMC_REG_RSP5       0x54#define OMAP_MMC_REG_RSP6       0x58#define OMAP_MMC_REG_RSP7       0x5c#define OMAP_MMC_STAT_CARD_ERR          (1 << 14)#define OMAP_MMC_STAT_CARD_IRQ          (1 << 13)#define OMAP_MMC_STAT_OCR_BUSY          (1 << 12)#define OMAP_MMC_STAT_A_EMPTY           (1 << 11)#define OMAP_MMC_STAT_A_FULL            (1 << 10)#define OMAP_MMC_STAT_CMD_CRC           (1 <<  8)#define OMAP_MMC_STAT_CMD_TOUT          (1 <<  7)#define OMAP_MMC_STAT_DATA_CRC          (1 <<  6)#define OMAP_MMC_STAT_DATA_TOUT         (1 <<  5)#define OMAP_MMC_STAT_END_BUSY          (1 <<  4)#define OMAP_MMC_STAT_END_OF_DATA       (1 <<  3)#define OMAP_MMC_STAT_CARD_BUSY         (1 <<  2)#define OMAP_MMC_STAT_END_OF_CMD        (1 <<  0)/* * Command types */#define OMAP_MMC_CMDTYPE_BC     0#define OMAP_MMC_CMDTYPE_BCR    1#define OMAP_MMC_CMDTYPE_AC     2#define OMAP_MMC_CMDTYPE_ADTC   3#define OMAP_MMC_BASE   0x4809C000#define OMAP_USE_DMA               1#define OMAP_MMC_IRQ              83#define MMC_REF_CLOCK       96000000#define MMC_FMAX            24000000#define MMC_FMIN              400000#define MMC_DMA_TX_REQUEST        60#define MMC_DMA_RX_REQUEST        61#define MMC_REG_SIZE      0x00001000#define MMC_HP_IRQ                96static void omap24xx_mmc_request(struct mmc_host *mmc, struct mmc_request *req);static void omap24xx_mmc_set_ios(struct mmc_host *mmc, struct mmc_ios *ios);struct mmc_omap_host { 	struct device 				dev;	int					initialized;	struct mmc_host				*mmc;	struct mmc_request *			mrq;	struct mmc_command *			cmd;	struct mmc_data *			data;	unsigned char				id; 			u32					base;	int 					irq;	unsigned char				bus_mode;#define OMAP_MMC_DATADIR_NONE	0#define OMAP_MMC_DATADIR_READ	1#define OMAP_MMC_DATADIR_WRITE	2	unsigned char				datadir;	u16 * 					buffer;	u32 					bytesleft;	int					power_pin;	int					use_dma, dma_ch;	struct completion			dma_completion;};static struct mmc_host_ops mmc_omap_ops = {	.request	= omap24xx_mmc_request,	.set_ios	= omap24xx_mmc_set_ios,};/* Macro to write/ read to the MMC controller */#define OMAP_MMC_READ(base, reg)	\	(*((volatile unsigned short *)((base)+OMAP_MMC_REG_##reg)))#define OMAP_MMC_WRITE(base, reg, val)	\	(*((volatile unsigned short *)((base)+OMAP_MMC_REG_##reg)) = (val))#define omap_prcmreg_read(reg) readl(OMAP24XX_VA_PRCM_BASE + reg)#define omap_prcmreg_write(data,reg) writel(data, OMAP24XX_VA_PRCM_BASE + reg)/* * General */#define mmc_host_to_mmc_omap_host(mmcptr)	container_of(mmc, struct mmc_omap_host, mmcptr)#endif

⌨️ 快捷键说明

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