2011-02-26 20:08:36 +08:00
|
|
|
/*
|
|
|
|
* PKUnity Multi-Media Card and Security Digital Card (MMC/SD) Registers
|
|
|
|
*/
|
|
|
|
/*
|
|
|
|
* Clock Control Reg SDC_CCR
|
|
|
|
*/
|
2011-03-04 18:07:48 +08:00
|
|
|
#define SDC_CCR (PKUNITY_SDC_BASE + 0x0000)
|
2011-02-26 20:08:36 +08:00
|
|
|
/*
|
|
|
|
* Software Reset Reg SDC_SRR
|
|
|
|
*/
|
2011-03-04 18:07:48 +08:00
|
|
|
#define SDC_SRR (PKUNITY_SDC_BASE + 0x0004)
|
2011-02-26 20:08:36 +08:00
|
|
|
/*
|
|
|
|
* Argument Reg SDC_ARGUMENT
|
|
|
|
*/
|
2011-03-04 18:07:48 +08:00
|
|
|
#define SDC_ARGUMENT (PKUNITY_SDC_BASE + 0x0008)
|
2011-02-26 20:08:36 +08:00
|
|
|
/*
|
|
|
|
* Command Reg SDC_COMMAND
|
|
|
|
*/
|
2011-03-04 18:07:48 +08:00
|
|
|
#define SDC_COMMAND (PKUNITY_SDC_BASE + 0x000C)
|
2011-02-26 20:08:36 +08:00
|
|
|
/*
|
|
|
|
* Block Size Reg SDC_BLOCKSIZE
|
|
|
|
*/
|
2011-03-04 18:07:48 +08:00
|
|
|
#define SDC_BLOCKSIZE (PKUNITY_SDC_BASE + 0x0010)
|
2011-02-26 20:08:36 +08:00
|
|
|
/*
|
|
|
|
* Block Cound Reg SDC_BLOCKCOUNT
|
|
|
|
*/
|
2011-03-04 18:07:48 +08:00
|
|
|
#define SDC_BLOCKCOUNT (PKUNITY_SDC_BASE + 0x0014)
|
2011-02-26 20:08:36 +08:00
|
|
|
/*
|
|
|
|
* Transfer Mode Reg SDC_TMR
|
|
|
|
*/
|
2011-03-04 18:07:48 +08:00
|
|
|
#define SDC_TMR (PKUNITY_SDC_BASE + 0x0018)
|
2011-02-26 20:08:36 +08:00
|
|
|
/*
|
|
|
|
* Response Reg. 0 SDC_RES0
|
|
|
|
*/
|
2011-03-04 18:07:48 +08:00
|
|
|
#define SDC_RES0 (PKUNITY_SDC_BASE + 0x001C)
|
2011-02-26 20:08:36 +08:00
|
|
|
/*
|
|
|
|
* Response Reg. 1 SDC_RES1
|
|
|
|
*/
|
2011-03-04 18:07:48 +08:00
|
|
|
#define SDC_RES1 (PKUNITY_SDC_BASE + 0x0020)
|
2011-02-26 20:08:36 +08:00
|
|
|
/*
|
|
|
|
* Response Reg. 2 SDC_RES2
|
|
|
|
*/
|
2011-03-04 18:07:48 +08:00
|
|
|
#define SDC_RES2 (PKUNITY_SDC_BASE + 0x0024)
|
2011-02-26 20:08:36 +08:00
|
|
|
/*
|
|
|
|
* Response Reg. 3 SDC_RES3
|
|
|
|
*/
|
2011-03-04 18:07:48 +08:00
|
|
|
#define SDC_RES3 (PKUNITY_SDC_BASE + 0x0028)
|
2011-02-26 20:08:36 +08:00
|
|
|
/*
|
|
|
|
* Read Timeout Control Reg SDC_RTCR
|
|
|
|
*/
|
2011-03-04 18:07:48 +08:00
|
|
|
#define SDC_RTCR (PKUNITY_SDC_BASE + 0x002C)
|
2011-02-26 20:08:36 +08:00
|
|
|
/*
|
|
|
|
* Interrupt Status Reg SDC_ISR
|
|
|
|
*/
|
2011-03-04 18:07:48 +08:00
|
|
|
#define SDC_ISR (PKUNITY_SDC_BASE + 0x0030)
|
2011-02-26 20:08:36 +08:00
|
|
|
/*
|
|
|
|
* Interrupt Status Mask Reg SDC_ISMR
|
|
|
|
*/
|
2011-03-04 18:07:48 +08:00
|
|
|
#define SDC_ISMR (PKUNITY_SDC_BASE + 0x0034)
|
2011-02-26 20:08:36 +08:00
|
|
|
/*
|
|
|
|
* RX FIFO SDC_RXFIFO
|
|
|
|
*/
|
2011-03-04 18:07:48 +08:00
|
|
|
#define SDC_RXFIFO (PKUNITY_SDC_BASE + 0x0038)
|
2011-02-26 20:08:36 +08:00
|
|
|
/*
|
|
|
|
* TX FIFO SDC_TXFIFO
|
|
|
|
*/
|
2011-03-04 18:07:48 +08:00
|
|
|
#define SDC_TXFIFO (PKUNITY_SDC_BASE + 0x003C)
|
2011-02-26 20:08:36 +08:00
|
|
|
|
|
|
|
/*
|
|
|
|
* SD Clock Enable SDC_CCR_CLKEN
|
|
|
|
*/
|
|
|
|
#define SDC_CCR_CLKEN FIELD(1, 1, 2)
|
|
|
|
/*
|
|
|
|
* [15:8] SDC_CCR_PDIV(v)
|
|
|
|
*/
|
|
|
|
#define SDC_CCR_PDIV(v) FIELD((v), 8, 8)
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Software reset enable SDC_SRR_ENABLE
|
|
|
|
*/
|
|
|
|
#define SDC_SRR_ENABLE FIELD(0, 1, 0)
|
|
|
|
/*
|
|
|
|
* Software reset disable SDC_SRR_DISABLE
|
|
|
|
*/
|
|
|
|
#define SDC_SRR_DISABLE FIELD(1, 1, 0)
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Response type SDC_COMMAND_RESTYPE_MASK
|
|
|
|
*/
|
|
|
|
#define SDC_COMMAND_RESTYPE_MASK FMASK(2, 0)
|
|
|
|
/*
|
|
|
|
* No response SDC_COMMAND_RESTYPE_NONE
|
|
|
|
*/
|
|
|
|
#define SDC_COMMAND_RESTYPE_NONE FIELD(0, 2, 0)
|
|
|
|
/*
|
|
|
|
* 136-bit long response SDC_COMMAND_RESTYPE_LONG
|
|
|
|
*/
|
|
|
|
#define SDC_COMMAND_RESTYPE_LONG FIELD(1, 2, 0)
|
|
|
|
/*
|
|
|
|
* 48-bit short response SDC_COMMAND_RESTYPE_SHORT
|
|
|
|
*/
|
|
|
|
#define SDC_COMMAND_RESTYPE_SHORT FIELD(2, 2, 0)
|
|
|
|
/*
|
|
|
|
* 48-bit short and test if busy response SDC_COMMAND_RESTYPE_SHORTBUSY
|
|
|
|
*/
|
|
|
|
#define SDC_COMMAND_RESTYPE_SHORTBUSY FIELD(3, 2, 0)
|
|
|
|
/*
|
|
|
|
* data ready SDC_COMMAND_DATAREADY
|
|
|
|
*/
|
|
|
|
#define SDC_COMMAND_DATAREADY FIELD(1, 1, 2)
|
|
|
|
#define SDC_COMMAND_CMDEN FIELD(1, 1, 3)
|
|
|
|
/*
|
|
|
|
* [10:5] SDC_COMMAND_CMDINDEX(v)
|
|
|
|
*/
|
|
|
|
#define SDC_COMMAND_CMDINDEX(v) FIELD((v), 6, 5)
|
|
|
|
|
|
|
|
/*
|
|
|
|
* [10:0] SDC_BLOCKSIZE_BSMASK(v)
|
|
|
|
*/
|
|
|
|
#define SDC_BLOCKSIZE_BSMASK(v) FIELD((v), 11, 0)
|
|
|
|
/*
|
|
|
|
* [11:0] SDC_BLOCKCOUNT_BCMASK(v)
|
|
|
|
*/
|
|
|
|
#define SDC_BLOCKCOUNT_BCMASK(v) FIELD((v), 12, 0)
|
|
|
|
|
|
|
|
/*
|
|
|
|
* Data Width 1bit SDC_TMR_WTH_1BIT
|
|
|
|
*/
|
|
|
|
#define SDC_TMR_WTH_1BIT FIELD(0, 1, 0)
|
|
|
|
/*
|
|
|
|
* Data Width 4bit SDC_TMR_WTH_4BIT
|
|
|
|
*/
|
|
|
|
#define SDC_TMR_WTH_4BIT FIELD(1, 1, 0)
|
|
|
|
/*
|
|
|
|
* Read SDC_TMR_DIR_READ
|
|
|
|
*/
|
|
|
|
#define SDC_TMR_DIR_READ FIELD(0, 1, 1)
|
|
|
|
/*
|
|
|
|
* Write SDC_TMR_DIR_WRITE
|
|
|
|
*/
|
|
|
|
#define SDC_TMR_DIR_WRITE FIELD(1, 1, 1)
|
|
|
|
|
|
|
|
#define SDC_IR_MASK FMASK(13, 0)
|
|
|
|
#define SDC_IR_RESTIMEOUT FIELD(1, 1, 0)
|
|
|
|
#define SDC_IR_WRITECRC FIELD(1, 1, 1)
|
|
|
|
#define SDC_IR_READCRC FIELD(1, 1, 2)
|
|
|
|
#define SDC_IR_TXFIFOREAD FIELD(1, 1, 3)
|
|
|
|
#define SDC_IR_RXFIFOWRITE FIELD(1, 1, 4)
|
|
|
|
#define SDC_IR_READTIMEOUT FIELD(1, 1, 5)
|
|
|
|
#define SDC_IR_DATACOMPLETE FIELD(1, 1, 6)
|
|
|
|
#define SDC_IR_CMDCOMPLETE FIELD(1, 1, 7)
|
|
|
|
#define SDC_IR_RXFIFOFULL FIELD(1, 1, 8)
|
|
|
|
#define SDC_IR_RXFIFOEMPTY FIELD(1, 1, 9)
|
|
|
|
#define SDC_IR_TXFIFOFULL FIELD(1, 1, 10)
|
|
|
|
#define SDC_IR_TXFIFOEMPTY FIELD(1, 1, 11)
|
|
|
|
#define SDC_IR_ENDCMDWITHRES FIELD(1, 1, 12)
|