regs-sdc.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. /*
  2. * PKUnity Multi-Media Card and Security Digital Card (MMC/SD) Registers
  3. */
  4. /*
  5. * Clock Control Reg SDC_CCR
  6. */
  7. #define SDC_CCR (PKUNITY_SDC_BASE + 0x0000)
  8. /*
  9. * Software Reset Reg SDC_SRR
  10. */
  11. #define SDC_SRR (PKUNITY_SDC_BASE + 0x0004)
  12. /*
  13. * Argument Reg SDC_ARGUMENT
  14. */
  15. #define SDC_ARGUMENT (PKUNITY_SDC_BASE + 0x0008)
  16. /*
  17. * Command Reg SDC_COMMAND
  18. */
  19. #define SDC_COMMAND (PKUNITY_SDC_BASE + 0x000C)
  20. /*
  21. * Block Size Reg SDC_BLOCKSIZE
  22. */
  23. #define SDC_BLOCKSIZE (PKUNITY_SDC_BASE + 0x0010)
  24. /*
  25. * Block Cound Reg SDC_BLOCKCOUNT
  26. */
  27. #define SDC_BLOCKCOUNT (PKUNITY_SDC_BASE + 0x0014)
  28. /*
  29. * Transfer Mode Reg SDC_TMR
  30. */
  31. #define SDC_TMR (PKUNITY_SDC_BASE + 0x0018)
  32. /*
  33. * Response Reg. 0 SDC_RES0
  34. */
  35. #define SDC_RES0 (PKUNITY_SDC_BASE + 0x001C)
  36. /*
  37. * Response Reg. 1 SDC_RES1
  38. */
  39. #define SDC_RES1 (PKUNITY_SDC_BASE + 0x0020)
  40. /*
  41. * Response Reg. 2 SDC_RES2
  42. */
  43. #define SDC_RES2 (PKUNITY_SDC_BASE + 0x0024)
  44. /*
  45. * Response Reg. 3 SDC_RES3
  46. */
  47. #define SDC_RES3 (PKUNITY_SDC_BASE + 0x0028)
  48. /*
  49. * Read Timeout Control Reg SDC_RTCR
  50. */
  51. #define SDC_RTCR (PKUNITY_SDC_BASE + 0x002C)
  52. /*
  53. * Interrupt Status Reg SDC_ISR
  54. */
  55. #define SDC_ISR (PKUNITY_SDC_BASE + 0x0030)
  56. /*
  57. * Interrupt Status Mask Reg SDC_ISMR
  58. */
  59. #define SDC_ISMR (PKUNITY_SDC_BASE + 0x0034)
  60. /*
  61. * RX FIFO SDC_RXFIFO
  62. */
  63. #define SDC_RXFIFO (PKUNITY_SDC_BASE + 0x0038)
  64. /*
  65. * TX FIFO SDC_TXFIFO
  66. */
  67. #define SDC_TXFIFO (PKUNITY_SDC_BASE + 0x003C)
  68. /*
  69. * SD Clock Enable SDC_CCR_CLKEN
  70. */
  71. #define SDC_CCR_CLKEN FIELD(1, 1, 2)
  72. /*
  73. * [15:8] SDC_CCR_PDIV(v)
  74. */
  75. #define SDC_CCR_PDIV(v) FIELD((v), 8, 8)
  76. /*
  77. * Software reset enable SDC_SRR_ENABLE
  78. */
  79. #define SDC_SRR_ENABLE FIELD(0, 1, 0)
  80. /*
  81. * Software reset disable SDC_SRR_DISABLE
  82. */
  83. #define SDC_SRR_DISABLE FIELD(1, 1, 0)
  84. /*
  85. * Response type SDC_COMMAND_RESTYPE_MASK
  86. */
  87. #define SDC_COMMAND_RESTYPE_MASK FMASK(2, 0)
  88. /*
  89. * No response SDC_COMMAND_RESTYPE_NONE
  90. */
  91. #define SDC_COMMAND_RESTYPE_NONE FIELD(0, 2, 0)
  92. /*
  93. * 136-bit long response SDC_COMMAND_RESTYPE_LONG
  94. */
  95. #define SDC_COMMAND_RESTYPE_LONG FIELD(1, 2, 0)
  96. /*
  97. * 48-bit short response SDC_COMMAND_RESTYPE_SHORT
  98. */
  99. #define SDC_COMMAND_RESTYPE_SHORT FIELD(2, 2, 0)
  100. /*
  101. * 48-bit short and test if busy response SDC_COMMAND_RESTYPE_SHORTBUSY
  102. */
  103. #define SDC_COMMAND_RESTYPE_SHORTBUSY FIELD(3, 2, 0)
  104. /*
  105. * data ready SDC_COMMAND_DATAREADY
  106. */
  107. #define SDC_COMMAND_DATAREADY FIELD(1, 1, 2)
  108. #define SDC_COMMAND_CMDEN FIELD(1, 1, 3)
  109. /*
  110. * [10:5] SDC_COMMAND_CMDINDEX(v)
  111. */
  112. #define SDC_COMMAND_CMDINDEX(v) FIELD((v), 6, 5)
  113. /*
  114. * [10:0] SDC_BLOCKSIZE_BSMASK(v)
  115. */
  116. #define SDC_BLOCKSIZE_BSMASK(v) FIELD((v), 11, 0)
  117. /*
  118. * [11:0] SDC_BLOCKCOUNT_BCMASK(v)
  119. */
  120. #define SDC_BLOCKCOUNT_BCMASK(v) FIELD((v), 12, 0)
  121. /*
  122. * Data Width 1bit SDC_TMR_WTH_1BIT
  123. */
  124. #define SDC_TMR_WTH_1BIT FIELD(0, 1, 0)
  125. /*
  126. * Data Width 4bit SDC_TMR_WTH_4BIT
  127. */
  128. #define SDC_TMR_WTH_4BIT FIELD(1, 1, 0)
  129. /*
  130. * Read SDC_TMR_DIR_READ
  131. */
  132. #define SDC_TMR_DIR_READ FIELD(0, 1, 1)
  133. /*
  134. * Write SDC_TMR_DIR_WRITE
  135. */
  136. #define SDC_TMR_DIR_WRITE FIELD(1, 1, 1)
  137. #define SDC_IR_MASK FMASK(13, 0)
  138. #define SDC_IR_RESTIMEOUT FIELD(1, 1, 0)
  139. #define SDC_IR_WRITECRC FIELD(1, 1, 1)
  140. #define SDC_IR_READCRC FIELD(1, 1, 2)
  141. #define SDC_IR_TXFIFOREAD FIELD(1, 1, 3)
  142. #define SDC_IR_RXFIFOWRITE FIELD(1, 1, 4)
  143. #define SDC_IR_READTIMEOUT FIELD(1, 1, 5)
  144. #define SDC_IR_DATACOMPLETE FIELD(1, 1, 6)
  145. #define SDC_IR_CMDCOMPLETE FIELD(1, 1, 7)
  146. #define SDC_IR_RXFIFOFULL FIELD(1, 1, 8)
  147. #define SDC_IR_RXFIFOEMPTY FIELD(1, 1, 9)
  148. #define SDC_IR_TXFIFOFULL FIELD(1, 1, 10)
  149. #define SDC_IR_TXFIFOEMPTY FIELD(1, 1, 11)
  150. #define SDC_IR_ENDCMDWITHRES FIELD(1, 1, 12)