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 + -
显示快捷键?