hw_mmcsd.h 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477
  1. /**
  2. * \file hw_mmcsd.h
  3. *
  4. * \brief MMCSD register definitions
  5. */
  6. /*
  7. * Copyright (C) 2010 Texas Instruments Incorporated - http://www.ti.com/
  8. */
  9. /*
  10. * Redistribution and use in source and binary forms, with or without
  11. * modification, are permitted provided that the following conditions
  12. * are met:
  13. *
  14. * Redistributions of source code must retain the above copyright
  15. * notice, this list of conditions and the following disclaimer.
  16. *
  17. * Redistributions in binary form must reproduce the above copyright
  18. * notice, this list of conditions and the following disclaimer in the
  19. * documentation and/or other materials provided with the
  20. * distribution.
  21. *
  22. * Neither the name of Texas Instruments Incorporated nor the names of
  23. * its contributors may be used to endorse or promote products derived
  24. * from this software without specific prior written permission.
  25. *
  26. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  27. * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  28. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  29. * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  30. * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  31. * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  32. * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  33. * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  34. * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  35. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  36. * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  37. *
  38. */
  39. #ifndef _HW__MMCSD_H_
  40. #define _HW__MMCSD_H_
  41. #ifdef __cplusplus
  42. extern "C" {
  43. #endif
  44. #define MMCSD_MMCCTL (0x0)
  45. #define MMCSD_MMCCLK (0x4)
  46. #define MMCSD_MMCST0 (0x8)
  47. #define MMCSD_MMCST1 (0xC)
  48. #define MMCSD_MMCIM (0x10)
  49. #define MMCSD_MMCTOR (0x14)
  50. #define MMCSD_MMCTOD (0x18)
  51. #define MMCSD_MMCBLEN (0x1C)
  52. #define MMCSD_MMCNBLK (0x20)
  53. #define MMCSD_MMCNBLC (0x24)
  54. #define MMCSD_MMCDRR (0x28)
  55. #define MMCSD_MMCDXR (0x2C)
  56. #define MMCSD_MMCCMD (0x30)
  57. #define MMCSD_MMCARGHL (0x34)
  58. #define MMCSD_MMCRSP01 (0x38)
  59. #define MMCSD_MMCRSP23 (0x3C)
  60. #define MMCSD_MMCRSP45 (0x40)
  61. #define MMCSD_MMCRSP67 (0x44)
  62. #define MMCSD_MMCDRSP (0x48)
  63. #define MMCSD_MMCCIDX (0x50)
  64. #define MMCSD_SDIOCTL (0x64)
  65. #define MMCSD_SDIOST0 (0x68)
  66. #define MMCSD_SDIOIEN (0x6C)
  67. #define MMCSD_SDIOIST (0x70)
  68. #define MMCSD_MMCFIFOCTL (0x74)
  69. /**************************************************************************\
  70. * Field Definition Macros
  71. \**************************************************************************/
  72. /* MMCCTL */
  73. #define MMCSD_MMCCTL_PERMDX (0x00000400u)
  74. #define MMCSD_MMCCTL_PERMDX_SHIFT (0x0000000Au)
  75. #define MMCSD_MMCCTL_PERMDR (0x00000200u)
  76. #define MMCSD_MMCCTL_PERMDR_SHIFT (0x00000009u)
  77. /* WIDTH0 and WIDTH1 */
  78. #define MMCSD_MMCCTL_WIDTH1_WIDTH0 (0x0104u)
  79. #define MMCSD_MMCCTL_WIDTH1_WIDTH0_SHIFT (0x0002u)
  80. /*----WIDTH1_WIDTH0 Tokens----*/
  81. #define MMCSD_MMCCTL_WIDTH1_WIDTH0_1BIT (0x0000u)
  82. #define MMCSD_MMCCTL_WIDTH1_WIDTH0_4BIT (0x0004u)
  83. #define MMCSD_MMCCTL_WIDTH1_WIDTH0_8BIT (0x0100u)
  84. /*NOTE : The WIDTH1 value should be used in conjunction
  85. with WIDTH0 to set appropriate data width*/
  86. #define MMCSD_MMCCTL_WIDTH1 (0x00000100u)
  87. #define MMCSD_MMCCTL_WIDTH1_SHIFT (0x00000008u)
  88. #define MMCSD_MMCCTL_DATEG (0x000000C0u)
  89. #define MMCSD_MMCCTL_DATEG_SHIFT (0x00000006u)
  90. /*----DATEG Tokens----*/
  91. #define MMCSD_MMCCTL_DATEG_R_EDGE (0x00000001u)
  92. #define MMCSD_MMCCTL_DATEG_F_EDGE (0x00000002u)
  93. #define MMCSD_MMCCTL_DATEG_RF_EDGE (0x00000003u)
  94. /*NOTE : The WIDTH0 value should be used in conjunction
  95. with WIDTH1 to set appropriate data width*/
  96. #define MMCSD_MMCCTL_WIDTH0 (0x00000004u)
  97. #define MMCSD_MMCCTL_WIDTH0_SHIFT (0x00000002u)
  98. /*----WIDTH0 Tokens----*/
  99. #define MMCSD_MMCCTL_WIDTH0_1BIT_8BIT (0x00000000u)
  100. #define MMCSD_MMCCTL_WIDTH0_4BIT (0x00000004u)
  101. #define MMCSD_MMCCTL_CMDRST (0x00000002u)
  102. #define MMCSD_MMCCTL_CMDRST_SHIFT (0x00000001u)
  103. #define MMCSD_MMCCTL_DATRST (0x00000001u)
  104. #define MMCSD_MMCCTL_DATRST_SHIFT (0x00000000u)
  105. /* MMCCLK */
  106. #define MMCSD_MMCCLK_DIV4 (0x00000200u)
  107. #define MMCSD_MMCCLK_DIV4_SHIFT (0x00000009u)
  108. #define MMCSD_MMCCLK_CLKEN (0x00000100u)
  109. #define MMCSD_MMCCLK_CLKEN_SHIFT (0x00000008u)
  110. #define MMCSD_MMCCLK_CLKRT (0x000000FFu)
  111. #define MMCSD_MMCCLK_CLKRT_SHIFT (0x00000000u)
  112. /* MMCST0 */
  113. #define MMCSD_MMCST0_CCS (0x00002000u)
  114. #define MMCSD_MMCST0_CCS_SHIFT (0x0000000Du)
  115. #define MMCSD_MMCST0_TRNDNE (0x00001000u)
  116. #define MMCSD_MMCST0_TRNDNE_SHIFT (0x0000000Cu)
  117. #define MMCSD_MMCST0_DATED (0x00000800u)
  118. #define MMCSD_MMCST0_DATED_SHIFT (0x0000000Bu)
  119. #define MMCSD_MMCST0_DRRDY (0x00000400u)
  120. #define MMCSD_MMCST0_DRRDY_SHIFT (0x0000000Au)
  121. #define MMCSD_MMCST0_DXRDY (0x00000200u)
  122. #define MMCSD_MMCST0_DXRDY_SHIFT (0x00000009u)
  123. #define MMCSD_MMCST0_CRCRS (0x00000080u)
  124. #define MMCSD_MMCST0_CRCRS_SHIFT (0x00000007u)
  125. #define MMCSD_MMCST0_CRCRD (0x00000040u)
  126. #define MMCSD_MMCST0_CRCRD_SHIFT (0x00000006u)
  127. #define MMCSD_MMCST0_CRCWR (0x00000020u)
  128. #define MMCSD_MMCST0_CRCWR_SHIFT (0x00000005u)
  129. #define MMCSD_MMCST0_TOUTRS (0x00000010u)
  130. #define MMCSD_MMCST0_TOUTRS_SHIFT (0x00000004u)
  131. #define MMCSD_MMCST0_TOUTRD (0x00000008u)
  132. #define MMCSD_MMCST0_TOUTRD_SHIFT (0x00000003u)
  133. #define MMCSD_MMCST0_RSPDNE (0x00000004u)
  134. #define MMCSD_MMCST0_RSPDNE_SHIFT (0x00000002u)
  135. #define MMCSD_MMCST0_BSYDNE (0x00000002u)
  136. #define MMCSD_MMCST0_BSYDNE_SHIFT (0x00000001u)
  137. #define MMCSD_MMCST0_DATDNE (0x00000001u)
  138. #define MMCSD_MMCST0_DATDNE_SHIFT (0x00000000u)
  139. /* MMCST1 */
  140. #define MMCSD_MMCST1_FIFOFUL (0x00000040u)
  141. #define MMCSD_MMCST1_FIFOFUL_SHIFT (0x00000006u)
  142. #define MMCSD_MMCST1_FIFOEMP (0x00000020u)
  143. #define MMCSD_MMCST1_FIFOEMP_SHIFT (0x00000005u)
  144. #define MMCSD_MMCST1_DAT3ST (0x00000010u)
  145. #define MMCSD_MMCST1_DAT3ST_SHIFT (0x00000004u)
  146. #define MMCSD_MMCST1_DRFUL (0x00000008u)
  147. #define MMCSD_MMCST1_DRFUL_SHIFT (0x00000003u)
  148. #define MMCSD_MMCST1_DXEMP (0x00000004u)
  149. #define MMCSD_MMCST1_DXEMP_SHIFT (0x00000002u)
  150. #define MMCSD_MMCST1_CLKSTP (0x00000002u)
  151. #define MMCSD_MMCST1_CLKSTP_SHIFT (0x00000001u)
  152. #define MMCSD_MMCST1_BUSY (0x00000001u)
  153. #define MMCSD_MMCST1_BUSY_SHIFT (0x00000000u)
  154. /* MMCIM */
  155. #define MMCSD_MMCIM_ECCS (0x00002000u)
  156. #define MMCSD_MMCIM_ECCS_SHIFT (0x0000000Du)
  157. #define MMCSD_MMCIM_ETRNDNE (0x00001000u)
  158. #define MMCSD_MMCIM_ETRNDNE_SHIFT (0x0000000Cu)
  159. #define MMCSD_MMCIM_EDATED (0x00000800u)
  160. #define MMCSD_MMCIM_EDATED_SHIFT (0x0000000Bu)
  161. #define MMCSD_MMCIM_EDRRDY (0x00000400u)
  162. #define MMCSD_MMCIM_EDRRDY_SHIFT (0x0000000Au)
  163. #define MMCSD_MMCIM_EDXRDY (0x00000200u)
  164. #define MMCSD_MMCIM_EDXRDY_SHIFT (0x00000009u)
  165. #define MMCSD_MMCIM_ESPIERR (0x00000100u)
  166. #define MMCSD_MMCIM_ESPIERR_SHIFT (0x00000008u)
  167. #define MMCSD_MMCIM_ECRCRS (0x00000080u)
  168. #define MMCSD_MMCIM_ECRCRS_SHIFT (0x00000007u)
  169. #define MMCSD_MMCIM_ECRCRD (0x00000040u)
  170. #define MMCSD_MMCIM_ECRCRD_SHIFT (0x00000006u)
  171. #define MMCSD_MMCIM_ECRCWR (0x00000020u)
  172. #define MMCSD_MMCIM_ECRCWR_SHIFT (0x00000005u)
  173. #define MMCSD_MMCIM_ETOUTRS (0x00000010u)
  174. #define MMCSD_MMCIM_ETOUTRS_SHIFT (0x00000004u)
  175. #define MMCSD_MMCIM_ETOUTRD (0x00000008u)
  176. #define MMCSD_MMCIM_ETOUTRD_SHIFT (0x00000003u)
  177. #define MMCSD_MMCIM_ERSPDNE (0x00000004u)
  178. #define MMCSD_MMCIM_ERSPDNE_SHIFT (0x00000002u)
  179. #define MMCSD_MMCIM_EBSYDNE (0x00000002u)
  180. #define MMCSD_MMCIM_EBSYDNE_SHIFT (0x00000001u)
  181. #define MMCSD_MMCIM_EDATDNE (0x00000001u)
  182. #define MMCSD_MMCIM_EDATDNE_SHIFT (0x00000000u)
  183. /* MMCTOR */
  184. #define MMCSD_MMCTOR_TOD_25_16 (0x0003FF00u)
  185. #define MMCSD_MMCTOR_TOD_25_16_SHIFT (0x00000008u)
  186. #define MMCSD_MMCTOR_TOR (0x000000FFu)
  187. #define MMCSD_MMCTOR_TOR_SHIFT (0x00000000u)
  188. /* MMCTOD */
  189. #define MMCSD_MMCTOD_TOD_15_0 (0x0000FFFFu)
  190. #define MMCSD_MMCTOD_TOD_15_0_SHIFT (0x00000000u)
  191. /* MMCBLEN */
  192. #define MMCSD_MMCBLEN_BLEN (0x00000FFFu)
  193. #define MMCSD_MMCBLEN_BLEN_SHIFT (0x00000000u)
  194. /* MMCNBLK */
  195. #define MMCSD_MMCNBLK_NBLK (0x0000FFFFu)
  196. #define MMCSD_MMCNBLK_NBLK_SHIFT (0x00000000u)
  197. /* MMCNBLC */
  198. #define MMCSD_MMCNBLC_NBLC (0x0000FFFFu)
  199. #define MMCSD_MMCNBLC_NBLC_SHIFT (0x00000000u)
  200. /* MMCDRR */
  201. #define MMCSD_MMCDRR_DRR (0xFFFFFFFFu)
  202. #define MMCSD_MMCDRR_DRR_SHIFT (0x00000000u)
  203. /* MMCDXR */
  204. #define MMCSD_MMCDXR_DXR (0xFFFFFFFFu)
  205. #define MMCSD_MMCDXR_DXR_SHIFT (0x00000000u)
  206. /* MMCCMD */
  207. #define MMCSD_MMCCMD_DMATRIG (0x00010000u)
  208. #define MMCSD_MMCCMD_DMATRIG_SHIFT (0x00000010u)
  209. #define MMCSD_MMCCMD_DCLR (0x00008000u)
  210. #define MMCSD_MMCCMD_DCLR_SHIFT (0x0000000Fu)
  211. #define MMCSD_MMCCMD_INITCK (0x00004000u)
  212. #define MMCSD_MMCCMD_INITCK_SHIFT (0x0000000Eu)
  213. #define MMCSD_MMCCMD_WDATX (0x00002000u)
  214. #define MMCSD_MMCCMD_WDATX_SHIFT (0x0000000Du)
  215. #define MMCSD_MMCCMD_STRMTP (0x00001000u)
  216. #define MMCSD_MMCCMD_STRMTP_SHIFT (0x0000000Cu)
  217. #define MMCSD_MMCCMD_DTRW (0x00000800u)
  218. #define MMCSD_MMCCMD_DTRW_SHIFT (0x0000000Bu)
  219. #define MMCSD_MMCCMD_RSPFMT (0x00000600u)
  220. #define MMCSD_MMCCMD_RSPFMT_SHIFT (0x00000009u)
  221. /*----RSPFMT Tokens----*/
  222. #define MMCSD_MMCCMD_RSPFMT_NORSP (0x00000000u)
  223. #define MMCSD_MMCCMD_RSPFMT_R1 (0x00000001u)
  224. #define MMCSD_MMCCMD_RSPFMT_R2 (0x00000002u)
  225. #define MMCSD_MMCCMD_RSPFMT_R3 (0x00000003u)
  226. #define MMCSD_MMCCMD_RSPFMT_R4 (0x00000001u)
  227. #define MMCSD_MMCCMD_RSPFMT_R5 (0x00000001u)
  228. #define MMCSD_MMCCMD_RSPFMT_R6 (0x00000001u)
  229. #define MMCSD_MMCCMD_BSYEXP (0x00000100u)
  230. #define MMCSD_MMCCMD_BSYEXP_SHIFT (0x00000008u)
  231. #define MMCSD_MMCCMD_PPLEN (0x00000080u)
  232. #define MMCSD_MMCCMD_PPLEN_SHIFT (0x00000007u)
  233. #define MMCSD_MMCCMD_CMD (0x0000003Fu)
  234. #define MMCSD_MMCCMD_CMD_SHIFT (0x00000000u)
  235. /* MMCARGHL */
  236. #define MMCSD_MMCARGHL_ARGH (0xFFFF0000u)
  237. #define MMCSD_MMCARGHL_ARGH_SHIFT (0x00000010u)
  238. #define MMCSD_MMCARGHL_ARGL (0x0000FFFFu)
  239. #define MMCSD_MMCARGHL_ARGL_SHIFT (0x00000000u)
  240. /* MMCRSP01 */
  241. #define MMCSD_MMCRSP01_MMCRSP1 (0xFFFF0000u)
  242. #define MMCSD_MMCRSP01_MMCRSP1_SHIFT (0x00000010u)
  243. #define MMCSD_MMCRSP01_MMCRSP0 (0x0000FFFFu)
  244. #define MMCSD_MMCRSP01_MMCRSP0_SHIFT (0x00000000u)
  245. /* MMCRSP23 */
  246. #define MMCSD_MMCRSP23_MMCRSP3 (0xFFFF0000u)
  247. #define MMCSD_MMCRSP23_MMCRSP3_SHIFT (0x00000010u)
  248. #define MMCSD_MMCRSP23_MMCRSP2 (0x0000FFFFu)
  249. #define MMCSD_MMCRSP23_MMCRSP2_SHIFT (0x00000000u)
  250. /* MMCRSP45 */
  251. #define MMCSD_MMCRSP45_MMCRSP5 (0xFFFF0000u)
  252. #define MMCSD_MMCRSP45_MMCRSP5_SHIFT (0x00000010u)
  253. #define MMCSD_MMCRSP45_MMCRSP4 (0x0000FFFFu)
  254. #define MMCSD_MMCRSP45_MMCRSP4_SHIFT (0x00000000u)
  255. /* MMCRSP67 */
  256. #define MMCSD_MMCRSP67_MMCRSP7 (0xFFFF0000u)
  257. #define MMCSD_MMCRSP67_MMCRSP7_SHIFT (0x00000010u)
  258. #define MMCSD_MMCRSP67_MMCRSP6 (0x0000FFFFu)
  259. #define MMCSD_MMCRSP67_MMCRSP6_SHIFT (0x00000000u)
  260. /* MMCDRSP */
  261. #define MMCSD_MMCDRSP_DRSP (0x000000FFu)
  262. #define MMCSD_MMCDRSP_DRSP_SHIFT (0x00000000u)
  263. /* MMCCIDX */
  264. #define MMCSD_MMCCIDX_STRT (0x00000080u)
  265. #define MMCSD_MMCCIDX_STRT_SHIFT (0x00000007u)
  266. #define MMCSD_MMCCIDX_XMIT (0x00000040u)
  267. #define MMCSD_MMCCIDX_XMIT_SHIFT (0x00000006u)
  268. #define MMCSD_MMCCIDX_CIDX (0x0000003Fu)
  269. #define MMCSD_MMCCIDX_CIDX_SHIFT (0x00000000u)
  270. /* SDIOCTL */
  271. #define MMCSD_SDIOCTL_RDWTCR (0x00000002u)
  272. #define MMCSD_SDIOCTL_RDWTCR_SHIFT (0x00000001u)
  273. #define MMCSD_SDIOCTL_RDWTRQ (0x00000001u)
  274. #define MMCSD_SDIOCTL_RDWTRQ_SHIFT (0x00000000u)
  275. /* SDIOST0 */
  276. #define MMCSD_SDIOST0_RDWTST (0x00000004u)
  277. #define MMCSD_SDIOST0_RDWTST_SHIFT (0x00000002u)
  278. #define MMCSD_SDIOST0_INTPRD (0x00000002u)
  279. #define MMCSD_SDIOST0_INTPRD_SHIFT (0x00000001u)
  280. #define MMCSD_SDIOST0_DAT1 (0x00000001u)
  281. #define MMCSD_SDIOST0_DAT1_SHIFT (0x00000000u)
  282. /* SDIOIEN */
  283. #define MMCSD_SDIOIEN_RWSEN (0x00000002u)
  284. #define MMCSD_SDIOIEN_RWSEN_SHIFT (0x00000001u)
  285. #define MMCSD_SDIOIEN_IOINTEN (0x00000001u)
  286. #define MMCSD_SDIOIEN_IOINTEN_SHIFT (0x00000000u)
  287. /* SDIOIST */
  288. #define MMCSD_SDIOIST_RWS (0x00000002u)
  289. #define MMCSD_SDIOIST_RWS_SHIFT (0x00000001u)
  290. #define MMCSD_SDIOIST_IOINT (0x00000001u)
  291. #define MMCSD_SDIOIST_IOINT_SHIFT (0x00000000u)
  292. /* MMCFIFOCTL */
  293. #define MMCSD_MMCFIFOCTL_ACCWD (0x00000018u)
  294. #define MMCSD_MMCFIFOCTL_ACCWD_SHIFT (0x00000003u)
  295. /*----ACCWD Tokens----*/
  296. #define MMCSD_MMCFIFOCTL_ACCWD_4BYTES (0x00000000u)
  297. #define MMCSD_MMCFIFOCTL_ACCWD_3BYTES (0x00000001u)
  298. #define MMCSD_MMCFIFOCTL_ACCWD_2BYTES (0x00000002u)
  299. #define MMCSD_MMCFIFOCTL_ACCWD_1BYTE (0x00000003u)
  300. #define MMCSD_MMCFIFOCTL_FIFOLEV (0x00000004u)
  301. #define MMCSD_MMCFIFOCTL_FIFOLEV_SHIFT (0x00000002u)
  302. #define MMCSD_MMCFIFOCTL_FIFODIR (0x00000002u)
  303. #define MMCSD_MMCFIFOCTL_FIFODIR_SHIFT (0x00000001u)
  304. #define MMCSD_MMCFIFOCTL_FIFORST (0x00000001u)
  305. #define MMCSD_MMCFIFOCTL_FIFORST_SHIFT (0x00000000u)
  306. #ifdef __cplusplus
  307. }
  308. #endif
  309. #endif