|
Linux Kernel
3.7.1
|
#include <linux/module.h>#include <linux/ioport.h>#include <linux/platform_device.h>#include <linux/clk.h>#include <linux/err.h>#include <linux/cpufreq.h>#include <linux/mmc/host.h>#include <linux/io.h>#include <linux/irq.h>#include <linux/delay.h>#include <linux/dmaengine.h>#include <linux/dma-mapping.h>#include <linux/edma.h>#include <linux/mmc/mmc.h>#include <linux/platform_data/mmc-davinci.h>Go to the source code of this file.
Data Structures | |
| struct | mmc_davinci_host |
Macros | |
| #define | DAVINCI_MMCCTL 0x00 /* Control Register */ |
| #define | DAVINCI_MMCCLK 0x04 /* Memory Clock Control Register */ |
| #define | DAVINCI_MMCST0 0x08 /* Status Register 0 */ |
| #define | DAVINCI_MMCST1 0x0C /* Status Register 1 */ |
| #define | DAVINCI_MMCIM 0x10 /* Interrupt Mask Register */ |
| #define | DAVINCI_MMCTOR 0x14 /* Response Time-Out Register */ |
| #define | DAVINCI_MMCTOD 0x18 /* Data Read Time-Out Register */ |
| #define | DAVINCI_MMCBLEN 0x1C /* Block Length Register */ |
| #define | DAVINCI_MMCNBLK 0x20 /* Number of Blocks Register */ |
| #define | DAVINCI_MMCNBLC 0x24 /* Number of Blocks Counter Register */ |
| #define | DAVINCI_MMCDRR 0x28 /* Data Receive Register */ |
| #define | DAVINCI_MMCDXR 0x2C /* Data Transmit Register */ |
| #define | DAVINCI_MMCCMD 0x30 /* Command Register */ |
| #define | DAVINCI_MMCARGHL 0x34 /* Argument Register */ |
| #define | DAVINCI_MMCRSP01 0x38 /* Response Register 0 and 1 */ |
| #define | DAVINCI_MMCRSP23 0x3C /* Response Register 0 and 1 */ |
| #define | DAVINCI_MMCRSP45 0x40 /* Response Register 0 and 1 */ |
| #define | DAVINCI_MMCRSP67 0x44 /* Response Register 0 and 1 */ |
| #define | DAVINCI_MMCDRSP 0x48 /* Data Response Register */ |
| #define | DAVINCI_MMCETOK 0x4C |
| #define | DAVINCI_MMCCIDX 0x50 /* Command Index Register */ |
| #define | DAVINCI_MMCCKC 0x54 |
| #define | DAVINCI_MMCTORC 0x58 |
| #define | DAVINCI_MMCTODC 0x5C |
| #define | DAVINCI_MMCBLNC 0x60 |
| #define | DAVINCI_SDIOCTL 0x64 |
| #define | DAVINCI_SDIOST0 0x68 |
| #define | DAVINCI_SDIOIEN 0x6C |
| #define | DAVINCI_SDIOIST 0x70 |
| #define | DAVINCI_MMCFIFOCTL 0x74 /* FIFO Control Register */ |
| #define | MMCCTL_DATRST (1 << 0) |
| #define | MMCCTL_CMDRST (1 << 1) |
| #define | MMCCTL_WIDTH_8_BIT (1 << 8) |
| #define | MMCCTL_WIDTH_4_BIT (1 << 2) |
| #define | MMCCTL_DATEG_DISABLED (0 << 6) |
| #define | MMCCTL_DATEG_RISING (1 << 6) |
| #define | MMCCTL_DATEG_FALLING (2 << 6) |
| #define | MMCCTL_DATEG_BOTH (3 << 6) |
| #define | MMCCTL_PERMDR_LE (0 << 9) |
| #define | MMCCTL_PERMDR_BE (1 << 9) |
| #define | MMCCTL_PERMDX_LE (0 << 10) |
| #define | MMCCTL_PERMDX_BE (1 << 10) |
| #define | MMCCLK_CLKEN (1 << 8) |
| #define | MMCCLK_CLKRT_MASK (0xFF << 0) |
| #define | MMCST0_DATDNE BIT(0) /* data done */ |
| #define | MMCST0_BSYDNE BIT(1) /* busy done */ |
| #define | MMCST0_RSPDNE BIT(2) /* command done */ |
| #define | MMCST0_TOUTRD BIT(3) /* data read timeout */ |
| #define | MMCST0_TOUTRS BIT(4) /* command response timeout */ |
| #define | MMCST0_CRCWR BIT(5) /* data write CRC error */ |
| #define | MMCST0_CRCRD BIT(6) /* data read CRC error */ |
| #define | MMCST0_CRCRS BIT(7) /* command response CRC error */ |
| #define | MMCST0_DXRDY BIT(9) /* data transmit ready (fifo empty) */ |
| #define | MMCST0_DRRDY BIT(10) /* data receive ready (data in fifo)*/ |
| #define | MMCST0_DATED BIT(11) /* DAT3 edge detect */ |
| #define | MMCST0_TRNDNE BIT(12) /* transfer done */ |
| #define | MMCST1_BUSY (1 << 0) |
| #define | MMCCMD_CMD_MASK (0x3F << 0) |
| #define | MMCCMD_PPLEN (1 << 7) |
| #define | MMCCMD_BSYEXP (1 << 8) |
| #define | MMCCMD_RSPFMT_MASK (3 << 9) |
| #define | MMCCMD_RSPFMT_NONE (0 << 9) |
| #define | MMCCMD_RSPFMT_R1456 (1 << 9) |
| #define | MMCCMD_RSPFMT_R2 (2 << 9) |
| #define | MMCCMD_RSPFMT_R3 (3 << 9) |
| #define | MMCCMD_DTRW (1 << 11) |
| #define | MMCCMD_STRMTP (1 << 12) |
| #define | MMCCMD_WDATX (1 << 13) |
| #define | MMCCMD_INITCK (1 << 14) |
| #define | MMCCMD_DCLR (1 << 15) |
| #define | MMCCMD_DMATRIG (1 << 16) |
| #define | MMCFIFOCTL_FIFORST (1 << 0) |
| #define | MMCFIFOCTL_FIFODIR_WR (1 << 1) |
| #define | MMCFIFOCTL_FIFODIR_RD (0 << 1) |
| #define | MMCFIFOCTL_FIFOLEV (1 << 2) /* 0 = 128 bits, 1 = 256 bits */ |
| #define | MMCFIFOCTL_ACCWD_4 (0 << 3) /* access width of 4 bytes */ |
| #define | MMCFIFOCTL_ACCWD_3 (1 << 3) /* access width of 3 bytes */ |
| #define | MMCFIFOCTL_ACCWD_2 (2 << 3) /* access width of 2 bytes */ |
| #define | MMCFIFOCTL_ACCWD_1 (3 << 3) /* access width of 1 byte */ |
| #define | SDIOST0_DAT1_HI BIT(0) |
| #define | SDIOIEN_IOINTEN BIT(0) |
| #define | SDIOIST_IOINT BIT(0) |
| #define | MMCSD_INIT_CLOCK 200000 |
| #define | MAX_CCNT ((1 << 16) - 1) |
| #define | MAX_NR_SG 16 |
| #define | DAVINCI_MMC_DATADIR_NONE 0 |
| #define | DAVINCI_MMC_DATADIR_READ 1 |
| #define | DAVINCI_MMC_DATADIR_WRITE 2 |
| #define | davinci_mmcsd_pm_ops NULL |
Functions | |
| module_param (rw_threshold, uint, S_IRUGO) | |
| MODULE_PARM_DESC (rw_threshold,"Read/Write threshold. Default = 32") | |
| module_param (poll_threshold, uint, S_IRUGO) | |
| MODULE_PARM_DESC (poll_threshold,"Polling transaction size threshold. Default = 128") | |
| module_param (poll_loopcount, uint, S_IRUGO) | |
| MODULE_PARM_DESC (poll_loopcount,"Maximum polling loop count. Default = 32") | |
| module_param (use_dma, uint, 0) | |
| MODULE_PARM_DESC (use_dma,"Whether to use DMA or not. Default = 1") | |
| module_init (davinci_mmcsd_init) | |
| module_exit (davinci_mmcsd_exit) | |
| MODULE_AUTHOR ("Texas Instruments India") | |
| MODULE_LICENSE ("GPL") | |
| MODULE_DESCRIPTION ("MMC/SD driver for Davinci MMC controller") | |
| MODULE_ALIAS ("platform:davinci_mmc") | |
| #define DAVINCI_MMC_DATADIR_NONE 0 |
Definition at line 189 of file davinci_mmc.c.
| #define DAVINCI_MMC_DATADIR_READ 1 |
Definition at line 190 of file davinci_mmc.c.
| #define DAVINCI_MMC_DATADIR_WRITE 2 |
Definition at line 191 of file davinci_mmc.c.
| #define DAVINCI_MMCARGHL 0x34 /* Argument Register */ |
Definition at line 56 of file davinci_mmc.c.
| #define DAVINCI_MMCBLEN 0x1C /* Block Length Register */ |
Definition at line 50 of file davinci_mmc.c.
| #define DAVINCI_MMCBLNC 0x60 |
Definition at line 67 of file davinci_mmc.c.
| #define DAVINCI_MMCCIDX 0x50 /* Command Index Register */ |
Definition at line 63 of file davinci_mmc.c.
| #define DAVINCI_MMCCKC 0x54 |
Definition at line 64 of file davinci_mmc.c.
| #define DAVINCI_MMCCLK 0x04 /* Memory Clock Control Register */ |
Definition at line 44 of file davinci_mmc.c.
| #define DAVINCI_MMCCMD 0x30 /* Command Register */ |
Definition at line 55 of file davinci_mmc.c.
| #define DAVINCI_MMCCTL 0x00 /* Control Register */ |
Definition at line 43 of file davinci_mmc.c.
| #define DAVINCI_MMCDRR 0x28 /* Data Receive Register */ |
Definition at line 53 of file davinci_mmc.c.
| #define DAVINCI_MMCDRSP 0x48 /* Data Response Register */ |
Definition at line 61 of file davinci_mmc.c.
| #define DAVINCI_MMCDXR 0x2C /* Data Transmit Register */ |
Definition at line 54 of file davinci_mmc.c.
| #define DAVINCI_MMCETOK 0x4C |
Definition at line 62 of file davinci_mmc.c.
| #define DAVINCI_MMCFIFOCTL 0x74 /* FIFO Control Register */ |
Definition at line 72 of file davinci_mmc.c.
| #define DAVINCI_MMCIM 0x10 /* Interrupt Mask Register */ |
Definition at line 47 of file davinci_mmc.c.
| #define DAVINCI_MMCNBLC 0x24 /* Number of Blocks Counter Register */ |
Definition at line 52 of file davinci_mmc.c.
| #define DAVINCI_MMCNBLK 0x20 /* Number of Blocks Register */ |
Definition at line 51 of file davinci_mmc.c.
| #define DAVINCI_MMCRSP01 0x38 /* Response Register 0 and 1 */ |
Definition at line 57 of file davinci_mmc.c.
| #define DAVINCI_MMCRSP23 0x3C /* Response Register 0 and 1 */ |
Definition at line 58 of file davinci_mmc.c.
| #define DAVINCI_MMCRSP45 0x40 /* Response Register 0 and 1 */ |
Definition at line 59 of file davinci_mmc.c.
| #define DAVINCI_MMCRSP67 0x44 /* Response Register 0 and 1 */ |
Definition at line 60 of file davinci_mmc.c.
| #define davinci_mmcsd_pm_ops NULL |
Definition at line 1401 of file davinci_mmc.c.
| #define DAVINCI_MMCST0 0x08 /* Status Register 0 */ |
Definition at line 45 of file davinci_mmc.c.
| #define DAVINCI_MMCST1 0x0C /* Status Register 1 */ |
Definition at line 46 of file davinci_mmc.c.
| #define DAVINCI_MMCTOD 0x18 /* Data Read Time-Out Register */ |
Definition at line 49 of file davinci_mmc.c.
| #define DAVINCI_MMCTODC 0x5C |
Definition at line 66 of file davinci_mmc.c.
| #define DAVINCI_MMCTOR 0x14 /* Response Time-Out Register */ |
Definition at line 48 of file davinci_mmc.c.
| #define DAVINCI_MMCTORC 0x58 |
Definition at line 65 of file davinci_mmc.c.
| #define DAVINCI_SDIOCTL 0x64 |
Definition at line 68 of file davinci_mmc.c.
| #define DAVINCI_SDIOIEN 0x6C |
Definition at line 70 of file davinci_mmc.c.
| #define DAVINCI_SDIOIST 0x70 |
Definition at line 71 of file davinci_mmc.c.
| #define DAVINCI_SDIOST0 0x68 |
Definition at line 69 of file davinci_mmc.c.
| #define MAX_CCNT ((1 << 16) - 1) |
Definition at line 155 of file davinci_mmc.c.
| #define MAX_NR_SG 16 |
Definition at line 157 of file davinci_mmc.c.
| #define MMCCLK_CLKEN (1 << 8) |
Definition at line 89 of file davinci_mmc.c.
| #define MMCCLK_CLKRT_MASK (0xFF << 0) |
Definition at line 90 of file davinci_mmc.c.
| #define MMCCMD_BSYEXP (1 << 8) |
Definition at line 112 of file davinci_mmc.c.
| #define MMCCMD_CMD_MASK (0x3F << 0) |
Definition at line 110 of file davinci_mmc.c.
| #define MMCCMD_DCLR (1 << 15) |
Definition at line 122 of file davinci_mmc.c.
| #define MMCCMD_DMATRIG (1 << 16) |
Definition at line 123 of file davinci_mmc.c.
| #define MMCCMD_DTRW (1 << 11) |
Definition at line 118 of file davinci_mmc.c.
| #define MMCCMD_INITCK (1 << 14) |
Definition at line 121 of file davinci_mmc.c.
| #define MMCCMD_PPLEN (1 << 7) |
Definition at line 111 of file davinci_mmc.c.
| #define MMCCMD_RSPFMT_MASK (3 << 9) |
Definition at line 113 of file davinci_mmc.c.
| #define MMCCMD_RSPFMT_NONE (0 << 9) |
Definition at line 114 of file davinci_mmc.c.
| #define MMCCMD_RSPFMT_R1456 (1 << 9) |
Definition at line 115 of file davinci_mmc.c.
| #define MMCCMD_RSPFMT_R2 (2 << 9) |
Definition at line 116 of file davinci_mmc.c.
| #define MMCCMD_RSPFMT_R3 (3 << 9) |
Definition at line 117 of file davinci_mmc.c.
| #define MMCCMD_STRMTP (1 << 12) |
Definition at line 119 of file davinci_mmc.c.
| #define MMCCMD_WDATX (1 << 13) |
Definition at line 120 of file davinci_mmc.c.
| #define MMCCTL_CMDRST (1 << 1) |
Definition at line 76 of file davinci_mmc.c.
| #define MMCCTL_DATEG_BOTH (3 << 6) |
Definition at line 82 of file davinci_mmc.c.
| #define MMCCTL_DATEG_DISABLED (0 << 6) |
Definition at line 79 of file davinci_mmc.c.
| #define MMCCTL_DATEG_FALLING (2 << 6) |
Definition at line 81 of file davinci_mmc.c.
| #define MMCCTL_DATEG_RISING (1 << 6) |
Definition at line 80 of file davinci_mmc.c.
| #define MMCCTL_DATRST (1 << 0) |
Definition at line 75 of file davinci_mmc.c.
| #define MMCCTL_PERMDR_BE (1 << 9) |
Definition at line 84 of file davinci_mmc.c.
| #define MMCCTL_PERMDR_LE (0 << 9) |
Definition at line 83 of file davinci_mmc.c.
| #define MMCCTL_PERMDX_BE (1 << 10) |
Definition at line 86 of file davinci_mmc.c.
| #define MMCCTL_PERMDX_LE (0 << 10) |
Definition at line 85 of file davinci_mmc.c.
| #define MMCCTL_WIDTH_4_BIT (1 << 2) |
Definition at line 78 of file davinci_mmc.c.
| #define MMCCTL_WIDTH_8_BIT (1 << 8) |
Definition at line 77 of file davinci_mmc.c.
Definition at line 133 of file davinci_mmc.c.
Definition at line 132 of file davinci_mmc.c.
Definition at line 131 of file davinci_mmc.c.
Definition at line 130 of file davinci_mmc.c.
| #define MMCFIFOCTL_FIFODIR_RD (0 << 1) |
Definition at line 128 of file davinci_mmc.c.
| #define MMCFIFOCTL_FIFODIR_WR (1 << 1) |
Definition at line 127 of file davinci_mmc.c.
Definition at line 129 of file davinci_mmc.c.
| #define MMCFIFOCTL_FIFORST (1 << 0) |
Definition at line 126 of file davinci_mmc.c.
| #define MMCSD_INIT_CLOCK 200000 |
Definition at line 145 of file davinci_mmc.c.
Definition at line 94 of file davinci_mmc.c.
Definition at line 100 of file davinci_mmc.c.
Definition at line 93 of file davinci_mmc.c.
| #define MMCST0_DATED BIT(11) /* DAT3 edge detect */ |
Definition at line 103 of file davinci_mmc.c.
Definition at line 102 of file davinci_mmc.c.
Definition at line 101 of file davinci_mmc.c.
Definition at line 95 of file davinci_mmc.c.
Definition at line 97 of file davinci_mmc.c.
Definition at line 104 of file davinci_mmc.c.
| #define MMCST1_BUSY (1 << 0) |
Definition at line 107 of file davinci_mmc.c.
| #define SDIOIEN_IOINTEN BIT(0) |
Definition at line 139 of file davinci_mmc.c.
| #define SDIOIST_IOINT BIT(0) |
Definition at line 142 of file davinci_mmc.c.
| #define SDIOST0_DAT1_HI BIT(0) |
Definition at line 136 of file davinci_mmc.c.
| MODULE_ALIAS | ( | "platform:davinci_mmc" | ) |
| MODULE_AUTHOR | ( | "Texas Instruments India" | ) |
| MODULE_DESCRIPTION | ( | "MMC/SD driver for Davinci MMC controller" | ) |
| module_exit | ( | davinci_mmcsd_exit | ) |
| module_init | ( | davinci_mmcsd_init | ) |
| MODULE_LICENSE | ( | "GPL" | ) |
| MODULE_PARM_DESC | ( | rw_threshold | ) |
| MODULE_PARM_DESC | ( | poll_threshold | ) |
| MODULE_PARM_DESC | ( | poll_loopcount | ) |
| MODULE_PARM_DESC | ( | use_dma | ) |
1.8.2