[PATCH] MMC: wbsd update
Updates to the wbsd driver. * Fix to handle DAT3 card detection. * Fixed bug which could cause large writes to stall in FIFO mode. * Plug 'n Play support. In most cases you need ACPI PNP for this to work. * Uses generic DMA API (ISA dependency removed).
This commit is contained in:
parent
88d7bd8cb9
commit
85bcc13072
3 changed files with 598 additions and 240 deletions
|
@ -51,7 +51,7 @@ config MMC_PXA
|
|||
|
||||
config MMC_WBSD
|
||||
tristate "Winbond W83L51xD SD/MMC Card Interface support"
|
||||
depends on MMC && ISA && ISA_DMA_API
|
||||
depends on MMC && ISA_DMA_API
|
||||
help
|
||||
This selects the Winbond(R) W83L51xD Secure digital and
|
||||
Multimedia card Interface.
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -35,6 +35,12 @@ const int valid_ids[] = {
|
|||
|
||||
#define DEVICE_SD 0x03
|
||||
|
||||
#define WBSD_PINS_DAT3_HI 0x20
|
||||
#define WBSD_PINS_DAT3_OUT 0x10
|
||||
#define WBSD_PINS_GP11_HI 0x04
|
||||
#define WBSD_PINS_DETECT_GP11 0x02
|
||||
#define WBSD_PINS_DETECT_DAT3 0x01
|
||||
|
||||
#define WBSD_CMDR 0x00
|
||||
#define WBSD_DFR 0x01
|
||||
#define WBSD_EIR 0x02
|
||||
|
@ -133,6 +139,7 @@ const int valid_ids[] = {
|
|||
#define WBSD_CRC_OK 0x05 /* S010E (00101) */
|
||||
#define WBSD_CRC_FAIL 0x0B /* S101E (01011) */
|
||||
|
||||
#define WBSD_DMA_SIZE 65536
|
||||
|
||||
struct wbsd_host
|
||||
{
|
||||
|
@ -140,6 +147,11 @@ struct wbsd_host
|
|||
|
||||
spinlock_t lock; /* Mutex */
|
||||
|
||||
int flags; /* Driver states */
|
||||
|
||||
#define WBSD_FCARD_PRESENT (1<<0) /* Card is present */
|
||||
#define WBSD_FIGNORE_DETECT (1<<1) /* Ignore card detection */
|
||||
|
||||
struct mmc_request* mrq; /* Current request */
|
||||
|
||||
u8 isr; /* Accumulated ISR */
|
||||
|
|
Loading…
Reference in a new issue