dw_mmc_reg.h 41 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637
  1. #ifndef _FSL_SDIF_REGS_
  2. #define _FSL_SDIF_REGS_
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. #define FSL_FEATURE_SDIF_INTERNAL_DMA_MAX_BUFFER_SIZE 4096
  7. /* ----------------------------------------------------------------------------
  8. -- SDIF Register Masks
  9. ---------------------------------------------------------------------------- */
  10. /*!
  11. * @addtogroup SDIF_Register_Masks SDIF Register Masks
  12. * @{
  13. */
  14. /*! @name CTRL - Control register */
  15. /*! @{ */
  16. #define SDIF_CTRL_CONTROLLER_RESET_MASK (0x1U)
  17. #define SDIF_CTRL_CONTROLLER_RESET_SHIFT (0U)
  18. #define SDIF_CTRL_CONTROLLER_RESET(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CTRL_CONTROLLER_RESET_SHIFT)) & SDIF_CTRL_CONTROLLER_RESET_MASK)
  19. #define SDIF_CTRL_FIFO_RESET_MASK (0x2U)
  20. #define SDIF_CTRL_FIFO_RESET_SHIFT (1U)
  21. #define SDIF_CTRL_FIFO_RESET(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CTRL_FIFO_RESET_SHIFT)) & SDIF_CTRL_FIFO_RESET_MASK)
  22. #define SDIF_CTRL_DMA_RESET_MASK (0x4U)
  23. #define SDIF_CTRL_DMA_RESET_SHIFT (2U)
  24. #define SDIF_CTRL_DMA_RESET(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CTRL_DMA_RESET_SHIFT)) & SDIF_CTRL_DMA_RESET_MASK)
  25. #define SDIF_CTRL_INT_ENABLE_MASK (0x10U)
  26. #define SDIF_CTRL_INT_ENABLE_SHIFT (4U)
  27. #define SDIF_CTRL_INT_ENABLE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CTRL_INT_ENABLE_SHIFT)) & SDIF_CTRL_INT_ENABLE_MASK)
  28. #define SDIF_CTRL_READ_WAIT_MASK (0x40U)
  29. #define SDIF_CTRL_READ_WAIT_SHIFT (6U)
  30. #define SDIF_CTRL_READ_WAIT(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CTRL_READ_WAIT_SHIFT)) & SDIF_CTRL_READ_WAIT_MASK)
  31. #define SDIF_CTRL_SEND_IRQ_RESPONSE_MASK (0x80U)
  32. #define SDIF_CTRL_SEND_IRQ_RESPONSE_SHIFT (7U)
  33. #define SDIF_CTRL_SEND_IRQ_RESPONSE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CTRL_SEND_IRQ_RESPONSE_SHIFT)) & SDIF_CTRL_SEND_IRQ_RESPONSE_MASK)
  34. #define SDIF_CTRL_ABORT_READ_DATA_MASK (0x100U)
  35. #define SDIF_CTRL_ABORT_READ_DATA_SHIFT (8U)
  36. #define SDIF_CTRL_ABORT_READ_DATA(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CTRL_ABORT_READ_DATA_SHIFT)) & SDIF_CTRL_ABORT_READ_DATA_MASK)
  37. #define SDIF_CTRL_SEND_CCSD_MASK (0x200U)
  38. #define SDIF_CTRL_SEND_CCSD_SHIFT (9U)
  39. #define SDIF_CTRL_SEND_CCSD(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CTRL_SEND_CCSD_SHIFT)) & SDIF_CTRL_SEND_CCSD_MASK)
  40. #define SDIF_CTRL_SEND_AUTO_STOP_CCSD_MASK (0x400U)
  41. #define SDIF_CTRL_SEND_AUTO_STOP_CCSD_SHIFT (10U)
  42. #define SDIF_CTRL_SEND_AUTO_STOP_CCSD(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CTRL_SEND_AUTO_STOP_CCSD_SHIFT)) & SDIF_CTRL_SEND_AUTO_STOP_CCSD_MASK)
  43. #define SDIF_CTRL_CEATA_DEVICE_INTERRUPT_STATUS_MASK (0x800U)
  44. #define SDIF_CTRL_CEATA_DEVICE_INTERRUPT_STATUS_SHIFT (11U)
  45. #define SDIF_CTRL_CEATA_DEVICE_INTERRUPT_STATUS(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CTRL_CEATA_DEVICE_INTERRUPT_STATUS_SHIFT)) & SDIF_CTRL_CEATA_DEVICE_INTERRUPT_STATUS_MASK)
  46. #define SDIF_CTRL_CARD_VOLTAGE_A0_MASK (0x10000U)
  47. #define SDIF_CTRL_CARD_VOLTAGE_A0_SHIFT (16U)
  48. #define SDIF_CTRL_CARD_VOLTAGE_A0(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CTRL_CARD_VOLTAGE_A0_SHIFT)) & SDIF_CTRL_CARD_VOLTAGE_A0_MASK)
  49. #define SDIF_CTRL_CARD_VOLTAGE_A1_MASK (0x20000U)
  50. #define SDIF_CTRL_CARD_VOLTAGE_A1_SHIFT (17U)
  51. #define SDIF_CTRL_CARD_VOLTAGE_A1(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CTRL_CARD_VOLTAGE_A1_SHIFT)) & SDIF_CTRL_CARD_VOLTAGE_A1_MASK)
  52. #define SDIF_CTRL_CARD_VOLTAGE_A2_MASK (0x40000U)
  53. #define SDIF_CTRL_CARD_VOLTAGE_A2_SHIFT (18U)
  54. #define SDIF_CTRL_CARD_VOLTAGE_A2(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CTRL_CARD_VOLTAGE_A2_SHIFT)) & SDIF_CTRL_CARD_VOLTAGE_A2_MASK)
  55. #define SDIF_CTRL_USE_INTERNAL_DMAC_MASK (0x2000000U)
  56. #define SDIF_CTRL_USE_INTERNAL_DMAC_SHIFT (25U)
  57. #define SDIF_CTRL_USE_INTERNAL_DMAC(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CTRL_USE_INTERNAL_DMAC_SHIFT)) & SDIF_CTRL_USE_INTERNAL_DMAC_MASK)
  58. /*! @} */
  59. /*! @name PWREN - Power Enable register */
  60. /*! @{ */
  61. #define SDIF_PWREN_POWER_ENABLE_MASK (0x1U)
  62. #define SDIF_PWREN_POWER_ENABLE_SHIFT (0U)
  63. #define SDIF_PWREN_POWER_ENABLE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_PWREN_POWER_ENABLE_SHIFT)) & SDIF_PWREN_POWER_ENABLE_MASK)
  64. /*! @} */
  65. /*! @name CLKDIV - Clock Divider register */
  66. /*! @{ */
  67. #define SDIF_CLKDIV_CLK_DIVIDER0_MASK (0xFFU)
  68. #define SDIF_CLKDIV_CLK_DIVIDER0_SHIFT (0U)
  69. #define SDIF_CLKDIV_CLK_DIVIDER0(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CLKDIV_CLK_DIVIDER0_SHIFT)) & SDIF_CLKDIV_CLK_DIVIDER0_MASK)
  70. /*! @} */
  71. /*! @name CLKENA - Clock Enable register */
  72. /*! @{ */
  73. #define SDIF_CLKENA_CCLK_ENABLE_MASK (0x1U)
  74. #define SDIF_CLKENA_CCLK_ENABLE_SHIFT (0U)
  75. #define SDIF_CLKENA_CCLK_ENABLE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CLKENA_CCLK_ENABLE_SHIFT)) & SDIF_CLKENA_CCLK_ENABLE_MASK)
  76. #define SDIF_CLKENA_CCLK_LOW_POWER_MASK (0x10000U)
  77. #define SDIF_CLKENA_CCLK_LOW_POWER_SHIFT (16U)
  78. #define SDIF_CLKENA_CCLK_LOW_POWER(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CLKENA_CCLK_LOW_POWER_SHIFT)) & SDIF_CLKENA_CCLK_LOW_POWER_MASK)
  79. /*! @} */
  80. /*! @name TMOUT - Time-out register */
  81. /*! @{ */
  82. #define SDIF_TMOUT_RESPONSE_TIMEOUT_MASK (0xFFU)
  83. #define SDIF_TMOUT_RESPONSE_TIMEOUT_SHIFT (0U)
  84. #define SDIF_TMOUT_RESPONSE_TIMEOUT(x) (((uint32_t)(((uint32_t)(x)) << SDIF_TMOUT_RESPONSE_TIMEOUT_SHIFT)) & SDIF_TMOUT_RESPONSE_TIMEOUT_MASK)
  85. #define SDIF_TMOUT_DATA_TIMEOUT_MASK (0xFFFFFF00U)
  86. #define SDIF_TMOUT_DATA_TIMEOUT_SHIFT (8U)
  87. #define SDIF_TMOUT_DATA_TIMEOUT(x) (((uint32_t)(((uint32_t)(x)) << SDIF_TMOUT_DATA_TIMEOUT_SHIFT)) & SDIF_TMOUT_DATA_TIMEOUT_MASK)
  88. /*! @} */
  89. /*! @name CTYPE - Card Type register */
  90. /*! @{ */
  91. #define SDIF_CTYPE_CARD_WIDTH0_MASK (0x1U)
  92. #define SDIF_CTYPE_CARD_WIDTH0_SHIFT (0U)
  93. #define SDIF_CTYPE_CARD_WIDTH0(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CTYPE_CARD_WIDTH0_SHIFT)) & SDIF_CTYPE_CARD_WIDTH0_MASK)
  94. #define SDIF_CTYPE_CARD_WIDTH1_MASK (0x10000U)
  95. #define SDIF_CTYPE_CARD_WIDTH1_SHIFT (16U)
  96. #define SDIF_CTYPE_CARD_WIDTH1(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CTYPE_CARD_WIDTH1_SHIFT)) & SDIF_CTYPE_CARD_WIDTH1_MASK)
  97. /*! @} */
  98. /*! @name BLKSIZ - Block Size register */
  99. /*! @{ */
  100. #define SDIF_BLKSIZ_BLOCK_SIZE_MASK (0xFFFFU)
  101. #define SDIF_BLKSIZ_BLOCK_SIZE_SHIFT (0U)
  102. #define SDIF_BLKSIZ_BLOCK_SIZE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_BLKSIZ_BLOCK_SIZE_SHIFT)) & SDIF_BLKSIZ_BLOCK_SIZE_MASK)
  103. /*! @} */
  104. /*! @name BYTCNT - Byte Count register */
  105. /*! @{ */
  106. #define SDIF_BYTCNT_BYTE_COUNT_MASK (0xFFFFFFFFU)
  107. #define SDIF_BYTCNT_BYTE_COUNT_SHIFT (0U)
  108. #define SDIF_BYTCNT_BYTE_COUNT(x) (((uint32_t)(((uint32_t)(x)) << SDIF_BYTCNT_BYTE_COUNT_SHIFT)) & SDIF_BYTCNT_BYTE_COUNT_MASK)
  109. /*! @} */
  110. /*! @name INTMASK - Interrupt Mask register */
  111. /*! @{ */
  112. #define SDIF_INTMASK_CDET_MASK (0x1U)
  113. #define SDIF_INTMASK_CDET_SHIFT (0U)
  114. #define SDIF_INTMASK_CDET(x) (((uint32_t)(((uint32_t)(x)) << SDIF_INTMASK_CDET_SHIFT)) & SDIF_INTMASK_CDET_MASK)
  115. #define SDIF_INTMASK_RE_MASK (0x2U)
  116. #define SDIF_INTMASK_RE_SHIFT (1U)
  117. #define SDIF_INTMASK_RE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_INTMASK_RE_SHIFT)) & SDIF_INTMASK_RE_MASK)
  118. #define SDIF_INTMASK_CDONE_MASK (0x4U)
  119. #define SDIF_INTMASK_CDONE_SHIFT (2U)
  120. #define SDIF_INTMASK_CDONE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_INTMASK_CDONE_SHIFT)) & SDIF_INTMASK_CDONE_MASK)
  121. #define SDIF_INTMASK_DTO_MASK (0x8U)
  122. #define SDIF_INTMASK_DTO_SHIFT (3U)
  123. #define SDIF_INTMASK_DTO(x) (((uint32_t)(((uint32_t)(x)) << SDIF_INTMASK_DTO_SHIFT)) & SDIF_INTMASK_DTO_MASK)
  124. #define SDIF_INTMASK_TXDR_MASK (0x10U)
  125. #define SDIF_INTMASK_TXDR_SHIFT (4U)
  126. #define SDIF_INTMASK_TXDR(x) (((uint32_t)(((uint32_t)(x)) << SDIF_INTMASK_TXDR_SHIFT)) & SDIF_INTMASK_TXDR_MASK)
  127. #define SDIF_INTMASK_RXDR_MASK (0x20U)
  128. #define SDIF_INTMASK_RXDR_SHIFT (5U)
  129. #define SDIF_INTMASK_RXDR(x) (((uint32_t)(((uint32_t)(x)) << SDIF_INTMASK_RXDR_SHIFT)) & SDIF_INTMASK_RXDR_MASK)
  130. #define SDIF_INTMASK_RCRC_MASK (0x40U)
  131. #define SDIF_INTMASK_RCRC_SHIFT (6U)
  132. #define SDIF_INTMASK_RCRC(x) (((uint32_t)(((uint32_t)(x)) << SDIF_INTMASK_RCRC_SHIFT)) & SDIF_INTMASK_RCRC_MASK)
  133. #define SDIF_INTMASK_DCRC_MASK (0x80U)
  134. #define SDIF_INTMASK_DCRC_SHIFT (7U)
  135. #define SDIF_INTMASK_DCRC(x) (((uint32_t)(((uint32_t)(x)) << SDIF_INTMASK_DCRC_SHIFT)) & SDIF_INTMASK_DCRC_MASK)
  136. #define SDIF_INTMASK_RTO_MASK (0x100U)
  137. #define SDIF_INTMASK_RTO_SHIFT (8U)
  138. #define SDIF_INTMASK_RTO(x) (((uint32_t)(((uint32_t)(x)) << SDIF_INTMASK_RTO_SHIFT)) & SDIF_INTMASK_RTO_MASK)
  139. #define SDIF_INTMASK_DRTO_MASK (0x200U)
  140. #define SDIF_INTMASK_DRTO_SHIFT (9U)
  141. #define SDIF_INTMASK_DRTO(x) (((uint32_t)(((uint32_t)(x)) << SDIF_INTMASK_DRTO_SHIFT)) & SDIF_INTMASK_DRTO_MASK)
  142. #define SDIF_INTMASK_HTO_MASK (0x400U)
  143. #define SDIF_INTMASK_HTO_SHIFT (10U)
  144. #define SDIF_INTMASK_HTO(x) (((uint32_t)(((uint32_t)(x)) << SDIF_INTMASK_HTO_SHIFT)) & SDIF_INTMASK_HTO_MASK)
  145. #define SDIF_INTMASK_FRUN_MASK (0x800U)
  146. #define SDIF_INTMASK_FRUN_SHIFT (11U)
  147. #define SDIF_INTMASK_FRUN(x) (((uint32_t)(((uint32_t)(x)) << SDIF_INTMASK_FRUN_SHIFT)) & SDIF_INTMASK_FRUN_MASK)
  148. #define SDIF_INTMASK_HLE_MASK (0x1000U)
  149. #define SDIF_INTMASK_HLE_SHIFT (12U)
  150. #define SDIF_INTMASK_HLE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_INTMASK_HLE_SHIFT)) & SDIF_INTMASK_HLE_MASK)
  151. #define SDIF_INTMASK_SBE_MASK (0x2000U)
  152. #define SDIF_INTMASK_SBE_SHIFT (13U)
  153. #define SDIF_INTMASK_SBE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_INTMASK_SBE_SHIFT)) & SDIF_INTMASK_SBE_MASK)
  154. #define SDIF_INTMASK_ACD_MASK (0x4000U)
  155. #define SDIF_INTMASK_ACD_SHIFT (14U)
  156. #define SDIF_INTMASK_ACD(x) (((uint32_t)(((uint32_t)(x)) << SDIF_INTMASK_ACD_SHIFT)) & SDIF_INTMASK_ACD_MASK)
  157. #define SDIF_INTMASK_EBE_MASK (0x8000U)
  158. #define SDIF_INTMASK_EBE_SHIFT (15U)
  159. #define SDIF_INTMASK_EBE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_INTMASK_EBE_SHIFT)) & SDIF_INTMASK_EBE_MASK)
  160. #define SDIF_INTMASK_SDIO_INT_MASK_MASK (0x10000U)
  161. #define SDIF_INTMASK_SDIO_INT_MASK_SHIFT (16U)
  162. #define SDIF_INTMASK_SDIO_INT_MASK(x) (((uint32_t)(((uint32_t)(x)) << SDIF_INTMASK_SDIO_INT_MASK_SHIFT)) & SDIF_INTMASK_SDIO_INT_MASK_MASK)
  163. /*! @} */
  164. /*! @name CMDARG - Command Argument register */
  165. /*! @{ */
  166. #define SDIF_CMDARG_CMD_ARG_MASK (0xFFFFFFFFU)
  167. #define SDIF_CMDARG_CMD_ARG_SHIFT (0U)
  168. #define SDIF_CMDARG_CMD_ARG(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CMDARG_CMD_ARG_SHIFT)) & SDIF_CMDARG_CMD_ARG_MASK)
  169. /*! @} */
  170. /*! @name CMD - Command register */
  171. /*! @{ */
  172. #define SDIF_CMD_CMD_INDEX_MASK (0x3FU)
  173. #define SDIF_CMD_CMD_INDEX_SHIFT (0U)
  174. #define SDIF_CMD_CMD_INDEX(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CMD_CMD_INDEX_SHIFT)) & SDIF_CMD_CMD_INDEX_MASK)
  175. #define SDIF_CMD_RESPONSE_EXPECT_MASK (0x40U)
  176. #define SDIF_CMD_RESPONSE_EXPECT_SHIFT (6U)
  177. #define SDIF_CMD_RESPONSE_EXPECT(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CMD_RESPONSE_EXPECT_SHIFT)) & SDIF_CMD_RESPONSE_EXPECT_MASK)
  178. #define SDIF_CMD_RESPONSE_LENGTH_MASK (0x80U)
  179. #define SDIF_CMD_RESPONSE_LENGTH_SHIFT (7U)
  180. #define SDIF_CMD_RESPONSE_LENGTH(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CMD_RESPONSE_LENGTH_SHIFT)) & SDIF_CMD_RESPONSE_LENGTH_MASK)
  181. #define SDIF_CMD_CHECK_RESPONSE_CRC_MASK (0x100U)
  182. #define SDIF_CMD_CHECK_RESPONSE_CRC_SHIFT (8U)
  183. #define SDIF_CMD_CHECK_RESPONSE_CRC(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CMD_CHECK_RESPONSE_CRC_SHIFT)) & SDIF_CMD_CHECK_RESPONSE_CRC_MASK)
  184. #define SDIF_CMD_DATA_EXPECTED_MASK (0x200U)
  185. #define SDIF_CMD_DATA_EXPECTED_SHIFT (9U)
  186. #define SDIF_CMD_DATA_EXPECTED(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CMD_DATA_EXPECTED_SHIFT)) & SDIF_CMD_DATA_EXPECTED_MASK)
  187. #define SDIF_CMD_READ_WRITE_MASK (0x400U)
  188. #define SDIF_CMD_READ_WRITE_SHIFT (10U)
  189. #define SDIF_CMD_READ_WRITE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CMD_READ_WRITE_SHIFT)) & SDIF_CMD_READ_WRITE_MASK)
  190. #define SDIF_CMD_TRANSFER_MODE_MASK (0x800U)
  191. #define SDIF_CMD_TRANSFER_MODE_SHIFT (11U)
  192. #define SDIF_CMD_TRANSFER_MODE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CMD_TRANSFER_MODE_SHIFT)) & SDIF_CMD_TRANSFER_MODE_MASK)
  193. #define SDIF_CMD_SEND_AUTO_STOP_MASK (0x1000U)
  194. #define SDIF_CMD_SEND_AUTO_STOP_SHIFT (12U)
  195. #define SDIF_CMD_SEND_AUTO_STOP(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CMD_SEND_AUTO_STOP_SHIFT)) & SDIF_CMD_SEND_AUTO_STOP_MASK)
  196. #define SDIF_CMD_WAIT_PRVDATA_COMPLETE_MASK (0x2000U)
  197. #define SDIF_CMD_WAIT_PRVDATA_COMPLETE_SHIFT (13U)
  198. #define SDIF_CMD_WAIT_PRVDATA_COMPLETE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CMD_WAIT_PRVDATA_COMPLETE_SHIFT)) & SDIF_CMD_WAIT_PRVDATA_COMPLETE_MASK)
  199. #define SDIF_CMD_STOP_ABORT_CMD_MASK (0x4000U)
  200. #define SDIF_CMD_STOP_ABORT_CMD_SHIFT (14U)
  201. #define SDIF_CMD_STOP_ABORT_CMD(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CMD_STOP_ABORT_CMD_SHIFT)) & SDIF_CMD_STOP_ABORT_CMD_MASK)
  202. #define SDIF_CMD_SEND_INITIALIZATION_MASK (0x8000U)
  203. #define SDIF_CMD_SEND_INITIALIZATION_SHIFT (15U)
  204. #define SDIF_CMD_SEND_INITIALIZATION(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CMD_SEND_INITIALIZATION_SHIFT)) & SDIF_CMD_SEND_INITIALIZATION_MASK)
  205. #define SDIF_CMD_UPDATE_CLOCK_REGISTERS_ONLY_MASK (0x200000U)
  206. #define SDIF_CMD_UPDATE_CLOCK_REGISTERS_ONLY_SHIFT (21U)
  207. #define SDIF_CMD_UPDATE_CLOCK_REGISTERS_ONLY(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CMD_UPDATE_CLOCK_REGISTERS_ONLY_SHIFT)) & SDIF_CMD_UPDATE_CLOCK_REGISTERS_ONLY_MASK)
  208. #define SDIF_CMD_READ_CEATA_DEVICE_MASK (0x400000U)
  209. #define SDIF_CMD_READ_CEATA_DEVICE_SHIFT (22U)
  210. #define SDIF_CMD_READ_CEATA_DEVICE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CMD_READ_CEATA_DEVICE_SHIFT)) & SDIF_CMD_READ_CEATA_DEVICE_MASK)
  211. #define SDIF_CMD_CCS_EXPECTED_MASK (0x800000U)
  212. #define SDIF_CMD_CCS_EXPECTED_SHIFT (23U)
  213. #define SDIF_CMD_CCS_EXPECTED(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CMD_CCS_EXPECTED_SHIFT)) & SDIF_CMD_CCS_EXPECTED_MASK)
  214. #define SDIF_CMD_ENABLE_BOOT_MASK (0x1000000U)
  215. #define SDIF_CMD_ENABLE_BOOT_SHIFT (24U)
  216. #define SDIF_CMD_ENABLE_BOOT(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CMD_ENABLE_BOOT_SHIFT)) & SDIF_CMD_ENABLE_BOOT_MASK)
  217. #define SDIF_CMD_EXPECT_BOOT_ACK_MASK (0x2000000U)
  218. #define SDIF_CMD_EXPECT_BOOT_ACK_SHIFT (25U)
  219. #define SDIF_CMD_EXPECT_BOOT_ACK(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CMD_EXPECT_BOOT_ACK_SHIFT)) & SDIF_CMD_EXPECT_BOOT_ACK_MASK)
  220. #define SDIF_CMD_DISABLE_BOOT_MASK (0x4000000U)
  221. #define SDIF_CMD_DISABLE_BOOT_SHIFT (26U)
  222. #define SDIF_CMD_DISABLE_BOOT(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CMD_DISABLE_BOOT_SHIFT)) & SDIF_CMD_DISABLE_BOOT_MASK)
  223. #define SDIF_CMD_BOOT_MODE_MASK (0x8000000U)
  224. #define SDIF_CMD_BOOT_MODE_SHIFT (27U)
  225. #define SDIF_CMD_BOOT_MODE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CMD_BOOT_MODE_SHIFT)) & SDIF_CMD_BOOT_MODE_MASK)
  226. #define SDIF_CMD_VOLT_SWITCH_MASK (0x10000000U)
  227. #define SDIF_CMD_VOLT_SWITCH_SHIFT (28U)
  228. #define SDIF_CMD_VOLT_SWITCH(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CMD_VOLT_SWITCH_SHIFT)) & SDIF_CMD_VOLT_SWITCH_MASK)
  229. #define SDIF_CMD_USE_HOLD_REG_MASK (0x20000000U)
  230. #define SDIF_CMD_USE_HOLD_REG_SHIFT (29U)
  231. #define SDIF_CMD_USE_HOLD_REG(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CMD_USE_HOLD_REG_SHIFT)) & SDIF_CMD_USE_HOLD_REG_MASK)
  232. #define SDIF_CMD_START_CMD_MASK (0x80000000U)
  233. #define SDIF_CMD_START_CMD_SHIFT (31U)
  234. #define SDIF_CMD_START_CMD(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CMD_START_CMD_SHIFT)) & SDIF_CMD_START_CMD_MASK)
  235. /*! @} */
  236. /*! @name RESP - Response register */
  237. /*! @{ */
  238. #define SDIF_RESP_RESPONSE_MASK (0xFFFFFFFFU)
  239. #define SDIF_RESP_RESPONSE_SHIFT (0U)
  240. #define SDIF_RESP_RESPONSE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_RESP_RESPONSE_SHIFT)) & SDIF_RESP_RESPONSE_MASK)
  241. /*! @} */
  242. /* The count of SDIF_RESP */
  243. #define SDIF_RESP_COUNT (4U)
  244. /*! @name MINTSTS - Masked Interrupt Status register */
  245. /*! @{ */
  246. #define SDIF_MINTSTS_CDET_MASK (0x1U)
  247. #define SDIF_MINTSTS_CDET_SHIFT (0U)
  248. #define SDIF_MINTSTS_CDET(x) (((uint32_t)(((uint32_t)(x)) << SDIF_MINTSTS_CDET_SHIFT)) & SDIF_MINTSTS_CDET_MASK)
  249. #define SDIF_MINTSTS_RE_MASK (0x2U)
  250. #define SDIF_MINTSTS_RE_SHIFT (1U)
  251. #define SDIF_MINTSTS_RE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_MINTSTS_RE_SHIFT)) & SDIF_MINTSTS_RE_MASK)
  252. #define SDIF_MINTSTS_CDONE_MASK (0x4U)
  253. #define SDIF_MINTSTS_CDONE_SHIFT (2U)
  254. #define SDIF_MINTSTS_CDONE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_MINTSTS_CDONE_SHIFT)) & SDIF_MINTSTS_CDONE_MASK)
  255. #define SDIF_MINTSTS_DTO_MASK (0x8U)
  256. #define SDIF_MINTSTS_DTO_SHIFT (3U)
  257. #define SDIF_MINTSTS_DTO(x) (((uint32_t)(((uint32_t)(x)) << SDIF_MINTSTS_DTO_SHIFT)) & SDIF_MINTSTS_DTO_MASK)
  258. #define SDIF_MINTSTS_TXDR_MASK (0x10U)
  259. #define SDIF_MINTSTS_TXDR_SHIFT (4U)
  260. #define SDIF_MINTSTS_TXDR(x) (((uint32_t)(((uint32_t)(x)) << SDIF_MINTSTS_TXDR_SHIFT)) & SDIF_MINTSTS_TXDR_MASK)
  261. #define SDIF_MINTSTS_RXDR_MASK (0x20U)
  262. #define SDIF_MINTSTS_RXDR_SHIFT (5U)
  263. #define SDIF_MINTSTS_RXDR(x) (((uint32_t)(((uint32_t)(x)) << SDIF_MINTSTS_RXDR_SHIFT)) & SDIF_MINTSTS_RXDR_MASK)
  264. #define SDIF_MINTSTS_RCRC_MASK (0x40U)
  265. #define SDIF_MINTSTS_RCRC_SHIFT (6U)
  266. #define SDIF_MINTSTS_RCRC(x) (((uint32_t)(((uint32_t)(x)) << SDIF_MINTSTS_RCRC_SHIFT)) & SDIF_MINTSTS_RCRC_MASK)
  267. #define SDIF_MINTSTS_DCRC_MASK (0x80U)
  268. #define SDIF_MINTSTS_DCRC_SHIFT (7U)
  269. #define SDIF_MINTSTS_DCRC(x) (((uint32_t)(((uint32_t)(x)) << SDIF_MINTSTS_DCRC_SHIFT)) & SDIF_MINTSTS_DCRC_MASK)
  270. #define SDIF_MINTSTS_RTO_MASK (0x100U)
  271. #define SDIF_MINTSTS_RTO_SHIFT (8U)
  272. #define SDIF_MINTSTS_RTO(x) (((uint32_t)(((uint32_t)(x)) << SDIF_MINTSTS_RTO_SHIFT)) & SDIF_MINTSTS_RTO_MASK)
  273. #define SDIF_MINTSTS_DRTO_MASK (0x200U)
  274. #define SDIF_MINTSTS_DRTO_SHIFT (9U)
  275. #define SDIF_MINTSTS_DRTO(x) (((uint32_t)(((uint32_t)(x)) << SDIF_MINTSTS_DRTO_SHIFT)) & SDIF_MINTSTS_DRTO_MASK)
  276. #define SDIF_MINTSTS_HTO_MASK (0x400U)
  277. #define SDIF_MINTSTS_HTO_SHIFT (10U)
  278. #define SDIF_MINTSTS_HTO(x) (((uint32_t)(((uint32_t)(x)) << SDIF_MINTSTS_HTO_SHIFT)) & SDIF_MINTSTS_HTO_MASK)
  279. #define SDIF_MINTSTS_FRUN_MASK (0x800U)
  280. #define SDIF_MINTSTS_FRUN_SHIFT (11U)
  281. #define SDIF_MINTSTS_FRUN(x) (((uint32_t)(((uint32_t)(x)) << SDIF_MINTSTS_FRUN_SHIFT)) & SDIF_MINTSTS_FRUN_MASK)
  282. #define SDIF_MINTSTS_HLE_MASK (0x1000U)
  283. #define SDIF_MINTSTS_HLE_SHIFT (12U)
  284. #define SDIF_MINTSTS_HLE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_MINTSTS_HLE_SHIFT)) & SDIF_MINTSTS_HLE_MASK)
  285. #define SDIF_MINTSTS_SBE_MASK (0x2000U)
  286. #define SDIF_MINTSTS_SBE_SHIFT (13U)
  287. #define SDIF_MINTSTS_SBE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_MINTSTS_SBE_SHIFT)) & SDIF_MINTSTS_SBE_MASK)
  288. #define SDIF_MINTSTS_ACD_MASK (0x4000U)
  289. #define SDIF_MINTSTS_ACD_SHIFT (14U)
  290. #define SDIF_MINTSTS_ACD(x) (((uint32_t)(((uint32_t)(x)) << SDIF_MINTSTS_ACD_SHIFT)) & SDIF_MINTSTS_ACD_MASK)
  291. #define SDIF_MINTSTS_EBE_MASK (0x8000U)
  292. #define SDIF_MINTSTS_EBE_SHIFT (15U)
  293. #define SDIF_MINTSTS_EBE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_MINTSTS_EBE_SHIFT)) & SDIF_MINTSTS_EBE_MASK)
  294. #define SDIF_MINTSTS_SDIO_INTERRUPT_MASK (0x10000U)
  295. #define SDIF_MINTSTS_SDIO_INTERRUPT_SHIFT (16U)
  296. #define SDIF_MINTSTS_SDIO_INTERRUPT(x) (((uint32_t)(((uint32_t)(x)) << SDIF_MINTSTS_SDIO_INTERRUPT_SHIFT)) & SDIF_MINTSTS_SDIO_INTERRUPT_MASK)
  297. /*! @} */
  298. /*! @name RINTSTS - Raw Interrupt Status register */
  299. /*! @{ */
  300. #define SDIF_RINTSTS_CDET_MASK (0x1U)
  301. #define SDIF_RINTSTS_CDET_SHIFT (0U)
  302. #define SDIF_RINTSTS_CDET(x) (((uint32_t)(((uint32_t)(x)) << SDIF_RINTSTS_CDET_SHIFT)) & SDIF_RINTSTS_CDET_MASK)
  303. #define SDIF_RINTSTS_RE_MASK (0x2U)
  304. #define SDIF_RINTSTS_RE_SHIFT (1U)
  305. #define SDIF_RINTSTS_RE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_RINTSTS_RE_SHIFT)) & SDIF_RINTSTS_RE_MASK)
  306. #define SDIF_RINTSTS_CDONE_MASK (0x4U)
  307. #define SDIF_RINTSTS_CDONE_SHIFT (2U)
  308. #define SDIF_RINTSTS_CDONE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_RINTSTS_CDONE_SHIFT)) & SDIF_RINTSTS_CDONE_MASK)
  309. #define SDIF_RINTSTS_DTO_MASK (0x8U)
  310. #define SDIF_RINTSTS_DTO_SHIFT (3U)
  311. #define SDIF_RINTSTS_DTO(x) (((uint32_t)(((uint32_t)(x)) << SDIF_RINTSTS_DTO_SHIFT)) & SDIF_RINTSTS_DTO_MASK)
  312. #define SDIF_RINTSTS_TXDR_MASK (0x10U)
  313. #define SDIF_RINTSTS_TXDR_SHIFT (4U)
  314. #define SDIF_RINTSTS_TXDR(x) (((uint32_t)(((uint32_t)(x)) << SDIF_RINTSTS_TXDR_SHIFT)) & SDIF_RINTSTS_TXDR_MASK)
  315. #define SDIF_RINTSTS_RXDR_MASK (0x20U)
  316. #define SDIF_RINTSTS_RXDR_SHIFT (5U)
  317. #define SDIF_RINTSTS_RXDR(x) (((uint32_t)(((uint32_t)(x)) << SDIF_RINTSTS_RXDR_SHIFT)) & SDIF_RINTSTS_RXDR_MASK)
  318. #define SDIF_RINTSTS_RCRC_MASK (0x40U)
  319. #define SDIF_RINTSTS_RCRC_SHIFT (6U)
  320. #define SDIF_RINTSTS_RCRC(x) (((uint32_t)(((uint32_t)(x)) << SDIF_RINTSTS_RCRC_SHIFT)) & SDIF_RINTSTS_RCRC_MASK)
  321. #define SDIF_RINTSTS_DCRC_MASK (0x80U)
  322. #define SDIF_RINTSTS_DCRC_SHIFT (7U)
  323. #define SDIF_RINTSTS_DCRC(x) (((uint32_t)(((uint32_t)(x)) << SDIF_RINTSTS_DCRC_SHIFT)) & SDIF_RINTSTS_DCRC_MASK)
  324. #define SDIF_RINTSTS_RTO_BAR_MASK (0x100U)
  325. #define SDIF_RINTSTS_RTO_BAR_SHIFT (8U)
  326. #define SDIF_RINTSTS_RTO_BAR(x) (((uint32_t)(((uint32_t)(x)) << SDIF_RINTSTS_RTO_BAR_SHIFT)) & SDIF_RINTSTS_RTO_BAR_MASK)
  327. #define SDIF_RINTSTS_DRTO_BDS_MASK (0x200U)
  328. #define SDIF_RINTSTS_DRTO_BDS_SHIFT (9U)
  329. #define SDIF_RINTSTS_DRTO_BDS(x) (((uint32_t)(((uint32_t)(x)) << SDIF_RINTSTS_DRTO_BDS_SHIFT)) & SDIF_RINTSTS_DRTO_BDS_MASK)
  330. #define SDIF_RINTSTS_HTO_MASK (0x400U)
  331. #define SDIF_RINTSTS_HTO_SHIFT (10U)
  332. #define SDIF_RINTSTS_HTO(x) (((uint32_t)(((uint32_t)(x)) << SDIF_RINTSTS_HTO_SHIFT)) & SDIF_RINTSTS_HTO_MASK)
  333. #define SDIF_RINTSTS_FRUN_MASK (0x800U)
  334. #define SDIF_RINTSTS_FRUN_SHIFT (11U)
  335. #define SDIF_RINTSTS_FRUN(x) (((uint32_t)(((uint32_t)(x)) << SDIF_RINTSTS_FRUN_SHIFT)) & SDIF_RINTSTS_FRUN_MASK)
  336. #define SDIF_RINTSTS_HLE_MASK (0x1000U)
  337. #define SDIF_RINTSTS_HLE_SHIFT (12U)
  338. #define SDIF_RINTSTS_HLE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_RINTSTS_HLE_SHIFT)) & SDIF_RINTSTS_HLE_MASK)
  339. #define SDIF_RINTSTS_SBE_MASK (0x2000U)
  340. #define SDIF_RINTSTS_SBE_SHIFT (13U)
  341. #define SDIF_RINTSTS_SBE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_RINTSTS_SBE_SHIFT)) & SDIF_RINTSTS_SBE_MASK)
  342. #define SDIF_RINTSTS_ACD_MASK (0x4000U)
  343. #define SDIF_RINTSTS_ACD_SHIFT (14U)
  344. #define SDIF_RINTSTS_ACD(x) (((uint32_t)(((uint32_t)(x)) << SDIF_RINTSTS_ACD_SHIFT)) & SDIF_RINTSTS_ACD_MASK)
  345. #define SDIF_RINTSTS_EBE_MASK (0x8000U)
  346. #define SDIF_RINTSTS_EBE_SHIFT (15U)
  347. #define SDIF_RINTSTS_EBE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_RINTSTS_EBE_SHIFT)) & SDIF_RINTSTS_EBE_MASK)
  348. #define SDIF_RINTSTS_SDIO_INTERRUPT_MASK (0x10000U)
  349. #define SDIF_RINTSTS_SDIO_INTERRUPT_SHIFT (16U)
  350. #define SDIF_RINTSTS_SDIO_INTERRUPT(x) (((uint32_t)(((uint32_t)(x)) << SDIF_RINTSTS_SDIO_INTERRUPT_SHIFT)) & SDIF_RINTSTS_SDIO_INTERRUPT_MASK)
  351. /*! @} */
  352. /*! @name STATUS - Status register */
  353. /*! @{ */
  354. #define SDIF_STATUS_FIFO_RX_WATERMARK_MASK (0x1U)
  355. #define SDIF_STATUS_FIFO_RX_WATERMARK_SHIFT (0U)
  356. #define SDIF_STATUS_FIFO_RX_WATERMARK(x) (((uint32_t)(((uint32_t)(x)) << SDIF_STATUS_FIFO_RX_WATERMARK_SHIFT)) & SDIF_STATUS_FIFO_RX_WATERMARK_MASK)
  357. #define SDIF_STATUS_FIFO_TX_WATERMARK_MASK (0x2U)
  358. #define SDIF_STATUS_FIFO_TX_WATERMARK_SHIFT (1U)
  359. #define SDIF_STATUS_FIFO_TX_WATERMARK(x) (((uint32_t)(((uint32_t)(x)) << SDIF_STATUS_FIFO_TX_WATERMARK_SHIFT)) & SDIF_STATUS_FIFO_TX_WATERMARK_MASK)
  360. #define SDIF_STATUS_FIFO_EMPTY_MASK (0x4U)
  361. #define SDIF_STATUS_FIFO_EMPTY_SHIFT (2U)
  362. #define SDIF_STATUS_FIFO_EMPTY(x) (((uint32_t)(((uint32_t)(x)) << SDIF_STATUS_FIFO_EMPTY_SHIFT)) & SDIF_STATUS_FIFO_EMPTY_MASK)
  363. #define SDIF_STATUS_FIFO_FULL_MASK (0x8U)
  364. #define SDIF_STATUS_FIFO_FULL_SHIFT (3U)
  365. #define SDIF_STATUS_FIFO_FULL(x) (((uint32_t)(((uint32_t)(x)) << SDIF_STATUS_FIFO_FULL_SHIFT)) & SDIF_STATUS_FIFO_FULL_MASK)
  366. #define SDIF_STATUS_CMDFSMSTATES_MASK (0xF0U)
  367. #define SDIF_STATUS_CMDFSMSTATES_SHIFT (4U)
  368. #define SDIF_STATUS_CMDFSMSTATES(x) (((uint32_t)(((uint32_t)(x)) << SDIF_STATUS_CMDFSMSTATES_SHIFT)) & SDIF_STATUS_CMDFSMSTATES_MASK)
  369. #define SDIF_STATUS_DATA_3_STATUS_MASK (0x100U)
  370. #define SDIF_STATUS_DATA_3_STATUS_SHIFT (8U)
  371. #define SDIF_STATUS_DATA_3_STATUS(x) (((uint32_t)(((uint32_t)(x)) << SDIF_STATUS_DATA_3_STATUS_SHIFT)) & SDIF_STATUS_DATA_3_STATUS_MASK)
  372. #define SDIF_STATUS_DATA_BUSY_MASK (0x200U)
  373. #define SDIF_STATUS_DATA_BUSY_SHIFT (9U)
  374. #define SDIF_STATUS_DATA_BUSY(x) (((uint32_t)(((uint32_t)(x)) << SDIF_STATUS_DATA_BUSY_SHIFT)) & SDIF_STATUS_DATA_BUSY_MASK)
  375. #define SDIF_STATUS_DATA_STATE_MC_BUSY_MASK (0x400U)
  376. #define SDIF_STATUS_DATA_STATE_MC_BUSY_SHIFT (10U)
  377. #define SDIF_STATUS_DATA_STATE_MC_BUSY(x) (((uint32_t)(((uint32_t)(x)) << SDIF_STATUS_DATA_STATE_MC_BUSY_SHIFT)) & SDIF_STATUS_DATA_STATE_MC_BUSY_MASK)
  378. #define SDIF_STATUS_RESPONSE_INDEX_MASK (0x1F800U)
  379. #define SDIF_STATUS_RESPONSE_INDEX_SHIFT (11U)
  380. #define SDIF_STATUS_RESPONSE_INDEX(x) (((uint32_t)(((uint32_t)(x)) << SDIF_STATUS_RESPONSE_INDEX_SHIFT)) & SDIF_STATUS_RESPONSE_INDEX_MASK)
  381. #define SDIF_STATUS_FIFO_COUNT_MASK (0x3FFE0000U)
  382. #define SDIF_STATUS_FIFO_COUNT_SHIFT (17U)
  383. #define SDIF_STATUS_FIFO_COUNT(x) (((uint32_t)(((uint32_t)(x)) << SDIF_STATUS_FIFO_COUNT_SHIFT)) & SDIF_STATUS_FIFO_COUNT_MASK)
  384. #define SDIF_STATUS_DMA_ACK_MASK (0x40000000U)
  385. #define SDIF_STATUS_DMA_ACK_SHIFT (30U)
  386. #define SDIF_STATUS_DMA_ACK(x) (((uint32_t)(((uint32_t)(x)) << SDIF_STATUS_DMA_ACK_SHIFT)) & SDIF_STATUS_DMA_ACK_MASK)
  387. #define SDIF_STATUS_DMA_REQ_MASK (0x80000000U)
  388. #define SDIF_STATUS_DMA_REQ_SHIFT (31U)
  389. #define SDIF_STATUS_DMA_REQ(x) (((uint32_t)(((uint32_t)(x)) << SDIF_STATUS_DMA_REQ_SHIFT)) & SDIF_STATUS_DMA_REQ_MASK)
  390. /*! @} */
  391. /*! @name FIFOTH - FIFO Threshold Watermark register */
  392. /*! @{ */
  393. #define SDIF_FIFOTH_TX_WMARK_MASK (0xFFFU)
  394. #define SDIF_FIFOTH_TX_WMARK_SHIFT (0U)
  395. #define SDIF_FIFOTH_TX_WMARK(x) (((uint32_t)(((uint32_t)(x)) << SDIF_FIFOTH_TX_WMARK_SHIFT)) & SDIF_FIFOTH_TX_WMARK_MASK)
  396. #define SDIF_FIFOTH_RX_WMARK_MASK (0xFFF0000U)
  397. #define SDIF_FIFOTH_RX_WMARK_SHIFT (16U)
  398. #define SDIF_FIFOTH_RX_WMARK(x) (((uint32_t)(((uint32_t)(x)) << SDIF_FIFOTH_RX_WMARK_SHIFT)) & SDIF_FIFOTH_RX_WMARK_MASK)
  399. #define SDIF_FIFOTH_DMA_MTS_MASK (0x70000000U)
  400. #define SDIF_FIFOTH_DMA_MTS_SHIFT (28U)
  401. #define SDIF_FIFOTH_DMA_MTS(x) (((uint32_t)(((uint32_t)(x)) << SDIF_FIFOTH_DMA_MTS_SHIFT)) & SDIF_FIFOTH_DMA_MTS_MASK)
  402. /*! @} */
  403. /*! @name CDETECT - Card Detect register */
  404. /*! @{ */
  405. #define SDIF_CDETECT_CARD_DETECT_MASK (0x200U)
  406. #define SDIF_CDETECT_CARD_DETECT_SHIFT (0U)
  407. #define SDIF_CDETECT_CARD_DETECT(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CDETECT_CARD_DETECT_SHIFT)) & SDIF_CDETECT_CARD_DETECT_MASK)
  408. /*! @} */
  409. /*! @name WRTPRT - Write Protect register */
  410. /*! @{ */
  411. #define SDIF_WRTPRT_WRITE_PROTECT_MASK (0x1U)
  412. #define SDIF_WRTPRT_WRITE_PROTECT_SHIFT (0U)
  413. #define SDIF_WRTPRT_WRITE_PROTECT(x) (((uint32_t)(((uint32_t)(x)) << SDIF_WRTPRT_WRITE_PROTECT_SHIFT)) & SDIF_WRTPRT_WRITE_PROTECT_MASK)
  414. /*! @} */
  415. /*! @name TCBCNT - Transferred CIU Card Byte Count register */
  416. /*! @{ */
  417. #define SDIF_TCBCNT_TRANS_CARD_BYTE_COUNT_MASK (0xFFFFFFFFU)
  418. #define SDIF_TCBCNT_TRANS_CARD_BYTE_COUNT_SHIFT (0U)
  419. #define SDIF_TCBCNT_TRANS_CARD_BYTE_COUNT(x) (((uint32_t)(((uint32_t)(x)) << SDIF_TCBCNT_TRANS_CARD_BYTE_COUNT_SHIFT)) & SDIF_TCBCNT_TRANS_CARD_BYTE_COUNT_MASK)
  420. /*! @} */
  421. /*! @name TBBCNT - Transferred Host to BIU-FIFO Byte Count register */
  422. /*! @{ */
  423. #define SDIF_TBBCNT_TRANS_FIFO_BYTE_COUNT_MASK (0xFFFFFFFFU)
  424. #define SDIF_TBBCNT_TRANS_FIFO_BYTE_COUNT_SHIFT (0U)
  425. #define SDIF_TBBCNT_TRANS_FIFO_BYTE_COUNT(x) (((uint32_t)(((uint32_t)(x)) << SDIF_TBBCNT_TRANS_FIFO_BYTE_COUNT_SHIFT)) & SDIF_TBBCNT_TRANS_FIFO_BYTE_COUNT_MASK)
  426. /*! @} */
  427. /*! @name DEBNCE - Debounce Count register */
  428. /*! @{ */
  429. #define SDIF_DEBNCE_DEBOUNCE_COUNT_MASK (0xFFFFFFU)
  430. #define SDIF_DEBNCE_DEBOUNCE_COUNT_SHIFT (0U)
  431. #define SDIF_DEBNCE_DEBOUNCE_COUNT(x) (((uint32_t)(((uint32_t)(x)) << SDIF_DEBNCE_DEBOUNCE_COUNT_SHIFT)) & SDIF_DEBNCE_DEBOUNCE_COUNT_MASK)
  432. /*! @} */
  433. /*! @name RST_N - Hardware Reset */
  434. /*! @{ */
  435. #define SDIF_RST_N_CARD_RESET_MASK (0x1U)
  436. #define SDIF_RST_N_CARD_RESET_SHIFT (0U)
  437. #define SDIF_RST_N_CARD_RESET(x) (((uint32_t)(((uint32_t)(x)) << SDIF_RST_N_CARD_RESET_SHIFT)) & SDIF_RST_N_CARD_RESET_MASK)
  438. /*! @} */
  439. /*! @name BMOD - Bus Mode register */
  440. /*! @{ */
  441. #define SDIF_BMOD_SWR_MASK (0x1U)
  442. #define SDIF_BMOD_SWR_SHIFT (0U)
  443. #define SDIF_BMOD_SWR(x) (((uint32_t)(((uint32_t)(x)) << SDIF_BMOD_SWR_SHIFT)) & SDIF_BMOD_SWR_MASK)
  444. #define SDIF_BMOD_FB_MASK (0x2U)
  445. #define SDIF_BMOD_FB_SHIFT (1U)
  446. #define SDIF_BMOD_FB(x) (((uint32_t)(((uint32_t)(x)) << SDIF_BMOD_FB_SHIFT)) & SDIF_BMOD_FB_MASK)
  447. #define SDIF_BMOD_DSL_MASK (0x7CU)
  448. #define SDIF_BMOD_DSL_SHIFT (2U)
  449. #define SDIF_BMOD_DSL(x) (((uint32_t)(((uint32_t)(x)) << SDIF_BMOD_DSL_SHIFT)) & SDIF_BMOD_DSL_MASK)
  450. #define SDIF_BMOD_DE_MASK (0x80U)
  451. #define SDIF_BMOD_DE_SHIFT (7U)
  452. #define SDIF_BMOD_DE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_BMOD_DE_SHIFT)) & SDIF_BMOD_DE_MASK)
  453. #define SDIF_BMOD_PBL_MASK (0x700U)
  454. #define SDIF_BMOD_PBL_SHIFT (8U)
  455. #define SDIF_BMOD_PBL(x) (((uint32_t)(((uint32_t)(x)) << SDIF_BMOD_PBL_SHIFT)) & SDIF_BMOD_PBL_MASK)
  456. /*! @} */
  457. /*! @name PLDMND - Poll Demand register */
  458. /*! @{ */
  459. #define SDIF_PLDMND_PD_MASK (0xFFFFFFFFU)
  460. #define SDIF_PLDMND_PD_SHIFT (0U)
  461. #define SDIF_PLDMND_PD(x) (((uint32_t)(((uint32_t)(x)) << SDIF_PLDMND_PD_SHIFT)) & SDIF_PLDMND_PD_MASK)
  462. /*! @} */
  463. /*! @name DBADDR - Descriptor List Base Address register */
  464. /*! @{ */
  465. #define SDIF_DBADDR_SDL_MASK (0xFFFFFFFFU)
  466. #define SDIF_DBADDR_SDL_SHIFT (0U)
  467. #define SDIF_DBADDR_SDL(x) (((uint32_t)(((uint32_t)(x)) << SDIF_DBADDR_SDL_SHIFT)) & SDIF_DBADDR_SDL_MASK)
  468. /*! @} */
  469. /*! @name IDSTS - Internal DMAC Status register */
  470. /*! @{ */
  471. #define SDIF_IDSTS_TI_MASK (0x1U)
  472. #define SDIF_IDSTS_TI_SHIFT (0U)
  473. #define SDIF_IDSTS_TI(x) (((uint32_t)(((uint32_t)(x)) << SDIF_IDSTS_TI_SHIFT)) & SDIF_IDSTS_TI_MASK)
  474. #define SDIF_IDSTS_RI_MASK (0x2U)
  475. #define SDIF_IDSTS_RI_SHIFT (1U)
  476. #define SDIF_IDSTS_RI(x) (((uint32_t)(((uint32_t)(x)) << SDIF_IDSTS_RI_SHIFT)) & SDIF_IDSTS_RI_MASK)
  477. #define SDIF_IDSTS_FBE_MASK (0x4U)
  478. #define SDIF_IDSTS_FBE_SHIFT (2U)
  479. #define SDIF_IDSTS_FBE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_IDSTS_FBE_SHIFT)) & SDIF_IDSTS_FBE_MASK)
  480. #define SDIF_IDSTS_DU_MASK (0x10U)
  481. #define SDIF_IDSTS_DU_SHIFT (4U)
  482. #define SDIF_IDSTS_DU(x) (((uint32_t)(((uint32_t)(x)) << SDIF_IDSTS_DU_SHIFT)) & SDIF_IDSTS_DU_MASK)
  483. #define SDIF_IDSTS_CES_MASK (0x20U)
  484. #define SDIF_IDSTS_CES_SHIFT (5U)
  485. #define SDIF_IDSTS_CES(x) (((uint32_t)(((uint32_t)(x)) << SDIF_IDSTS_CES_SHIFT)) & SDIF_IDSTS_CES_MASK)
  486. #define SDIF_IDSTS_NIS_MASK (0x100U)
  487. #define SDIF_IDSTS_NIS_SHIFT (8U)
  488. #define SDIF_IDSTS_NIS(x) (((uint32_t)(((uint32_t)(x)) << SDIF_IDSTS_NIS_SHIFT)) & SDIF_IDSTS_NIS_MASK)
  489. #define SDIF_IDSTS_AIS_MASK (0x200U)
  490. #define SDIF_IDSTS_AIS_SHIFT (9U)
  491. #define SDIF_IDSTS_AIS(x) (((uint32_t)(((uint32_t)(x)) << SDIF_IDSTS_AIS_SHIFT)) & SDIF_IDSTS_AIS_MASK)
  492. #define SDIF_IDSTS_EB_MASK (0x1C00U)
  493. #define SDIF_IDSTS_EB_SHIFT (10U)
  494. #define SDIF_IDSTS_EB(x) (((uint32_t)(((uint32_t)(x)) << SDIF_IDSTS_EB_SHIFT)) & SDIF_IDSTS_EB_MASK)
  495. #define SDIF_IDSTS_FSM_MASK (0x1E000U)
  496. #define SDIF_IDSTS_FSM_SHIFT (13U)
  497. #define SDIF_IDSTS_FSM(x) (((uint32_t)(((uint32_t)(x)) << SDIF_IDSTS_FSM_SHIFT)) & SDIF_IDSTS_FSM_MASK)
  498. /*! @} */
  499. /*! @name IDINTEN - Internal DMAC Interrupt Enable register */
  500. /*! @{ */
  501. #define SDIF_IDINTEN_TI_MASK (0x1U)
  502. #define SDIF_IDINTEN_TI_SHIFT (0U)
  503. #define SDIF_IDINTEN_TI(x) (((uint32_t)(((uint32_t)(x)) << SDIF_IDINTEN_TI_SHIFT)) & SDIF_IDINTEN_TI_MASK)
  504. #define SDIF_IDINTEN_RI_MASK (0x2U)
  505. #define SDIF_IDINTEN_RI_SHIFT (1U)
  506. #define SDIF_IDINTEN_RI(x) (((uint32_t)(((uint32_t)(x)) << SDIF_IDINTEN_RI_SHIFT)) & SDIF_IDINTEN_RI_MASK)
  507. #define SDIF_IDINTEN_FBE_MASK (0x4U)
  508. #define SDIF_IDINTEN_FBE_SHIFT (2U)
  509. #define SDIF_IDINTEN_FBE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_IDINTEN_FBE_SHIFT)) & SDIF_IDINTEN_FBE_MASK)
  510. #define SDIF_IDINTEN_DU_MASK (0x10U)
  511. #define SDIF_IDINTEN_DU_SHIFT (4U)
  512. #define SDIF_IDINTEN_DU(x) (((uint32_t)(((uint32_t)(x)) << SDIF_IDINTEN_DU_SHIFT)) & SDIF_IDINTEN_DU_MASK)
  513. #define SDIF_IDINTEN_CES_MASK (0x20U)
  514. #define SDIF_IDINTEN_CES_SHIFT (5U)
  515. #define SDIF_IDINTEN_CES(x) (((uint32_t)(((uint32_t)(x)) << SDIF_IDINTEN_CES_SHIFT)) & SDIF_IDINTEN_CES_MASK)
  516. #define SDIF_IDINTEN_NIS_MASK (0x100U)
  517. #define SDIF_IDINTEN_NIS_SHIFT (8U)
  518. #define SDIF_IDINTEN_NIS(x) (((uint32_t)(((uint32_t)(x)) << SDIF_IDINTEN_NIS_SHIFT)) & SDIF_IDINTEN_NIS_MASK)
  519. #define SDIF_IDINTEN_AIS_MASK (0x200U)
  520. #define SDIF_IDINTEN_AIS_SHIFT (9U)
  521. #define SDIF_IDINTEN_AIS(x) (((uint32_t)(((uint32_t)(x)) << SDIF_IDINTEN_AIS_SHIFT)) & SDIF_IDINTEN_AIS_MASK)
  522. /*! @} */
  523. /*! @name DSCADDR - Current Host Descriptor Address register */
  524. /*! @{ */
  525. #define SDIF_DSCADDR_HDA_MASK (0xFFFFFFFFU)
  526. #define SDIF_DSCADDR_HDA_SHIFT (0U)
  527. #define SDIF_DSCADDR_HDA(x) (((uint32_t)(((uint32_t)(x)) << SDIF_DSCADDR_HDA_SHIFT)) & SDIF_DSCADDR_HDA_MASK)
  528. /*! @} */
  529. /*! @name BUFADDR - Current Buffer Descriptor Address register */
  530. /*! @{ */
  531. #define SDIF_BUFADDR_HBA_MASK (0xFFFFFFFFU)
  532. #define SDIF_BUFADDR_HBA_SHIFT (0U)
  533. #define SDIF_BUFADDR_HBA(x) (((uint32_t)(((uint32_t)(x)) << SDIF_BUFADDR_HBA_SHIFT)) & SDIF_BUFADDR_HBA_MASK)
  534. /*! @} */
  535. /*! @name UHS_REG_EXT - UHS register */
  536. /*! @{ */
  537. #define SDIF_UHS_REG_EXT_MMC_VOLT_MASK (0xFFFFU)
  538. #define SDIF_UHS_REG_EXT_MMC_VOLT_SHIFT (0U)
  539. #define SDIF_UHS_REG_EXT_MMC_VOLT(x) (((uint32_t)(((uint32_t)(x)) << SDIF_UHS_REG_EXT_MMC_VOLT_SHIFT)) & SDIF_UHS_REG_EXT_MMC_VOLT_MASK)
  540. #define SDIF_UHS_REG_EXT_CLK_SMPL_PHASE_MASK (0x30000U)
  541. #define SDIF_UHS_REG_EXT_CLK_SMPL_PHASE_SHIFT (16U)
  542. #define SDIF_UHS_REG_EXT_CLK_SMPL_PHASE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_UHS_REG_EXT_CLK_SMPL_PHASE_SHIFT)) & SDIF_UHS_REG_EXT_CLK_SMPL_PHASE_MASK)
  543. #define SDIF_UHS_REG_EXT_CLK_SMPL_DLY_MASK (0x700000U)
  544. #define SDIF_UHS_REG_EXT_CLK_SMPL_DLY_SHIFT (20U)
  545. #define SDIF_UHS_REG_EXT_CLK_SMPL_DLY(x) (((uint32_t)(((uint32_t)(x)) << SDIF_UHS_REG_EXT_CLK_SMPL_DLY_SHIFT)) & SDIF_UHS_REG_EXT_CLK_SMPL_DLY_MASK)
  546. #define SDIF_UHS_REG_EXT_CLK_DRV_PHASE_MASK (0x1800000U)
  547. #define SDIF_UHS_REG_EXT_CLK_DRV_PHASE_SHIFT (23U)
  548. #define SDIF_UHS_REG_EXT_CLK_DRV_PHASE(x) (((uint32_t)(((uint32_t)(x)) << SDIF_UHS_REG_EXT_CLK_DRV_PHASE_SHIFT)) & SDIF_UHS_REG_EXT_CLK_DRV_PHASE_MASK)
  549. #define SDIF_UHS_REG_EXT_CLK_DRV_DLY_MASK (0x38000000U)
  550. #define SDIF_UHS_REG_EXT_CLK_DRV_DLY_SHIFT (27U)
  551. #define SDIF_UHS_REG_EXT_CLK_DRV_DLY(x) (((uint32_t)(((uint32_t)(x)) << SDIF_UHS_REG_EXT_CLK_DRV_DLY_SHIFT)) & SDIF_UHS_REG_EXT_CLK_DRV_DLY_MASK)
  552. #define SDIF_UHS_REG_EXT_EXT_CLK_MUX_MASK (0xC0000000U)
  553. #define SDIF_UHS_REG_EXT_EXT_CLK_MUX_SHIFT (30U)
  554. #define SDIF_UHS_REG_EXT_EXT_CLK_MUX(x) (((uint32_t)(((uint32_t)(x)) << SDIF_UHS_REG_EXT_EXT_CLK_MUX_SHIFT)) & SDIF_UHS_REG_EXT_EXT_CLK_MUX_MASK)
  555. /*! @} */
  556. /*! @name CARDTHRCTL - Card Threshold Control */
  557. /*! @{ */
  558. #define SDIF_CARDTHRCTL_CARDRDTHREN_MASK (0x1U)
  559. #define SDIF_CARDTHRCTL_CARDRDTHREN_SHIFT (0U)
  560. #define SDIF_CARDTHRCTL_CARDRDTHREN(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CARDTHRCTL_CARDRDTHREN_SHIFT)) & SDIF_CARDTHRCTL_CARDRDTHREN_MASK)
  561. #define SDIF_CARDTHRCTL_BSYCLRINTEN_MASK (0x2U)
  562. #define SDIF_CARDTHRCTL_BSYCLRINTEN_SHIFT (1U)
  563. #define SDIF_CARDTHRCTL_BSYCLRINTEN(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CARDTHRCTL_BSYCLRINTEN_SHIFT)) & SDIF_CARDTHRCTL_BSYCLRINTEN_MASK)
  564. #define SDIF_CARDTHRCTL_CARDTHRESHOLD_MASK (0xFF0000U)
  565. #define SDIF_CARDTHRCTL_CARDTHRESHOLD_SHIFT (16U)
  566. #define SDIF_CARDTHRCTL_CARDTHRESHOLD(x) (((uint32_t)(((uint32_t)(x)) << SDIF_CARDTHRCTL_CARDTHRESHOLD_SHIFT)) & SDIF_CARDTHRCTL_CARDTHRESHOLD_MASK)
  567. /*! @} */
  568. /*! @name BACKENDPWR - Power control */
  569. /*! @{ */
  570. #define SDIF_BACKENDPWR_BACKENDPWR_MASK (0x1U)
  571. #define SDIF_BACKENDPWR_BACKENDPWR_SHIFT (0U)
  572. #define SDIF_BACKENDPWR_BACKENDPWR(x) (((uint32_t)(((uint32_t)(x)) << SDIF_BACKENDPWR_BACKENDPWR_SHIFT)) & SDIF_BACKENDPWR_BACKENDPWR_MASK)
  573. /*! @} */
  574. /*! @name FIFO - SDIF FIFO */
  575. /*! @{ */
  576. #define SDIF_FIFO_DATA_MASK (0xFFFFFFFFU)
  577. #define SDIF_FIFO_DATA_SHIFT (0U)
  578. #define SDIF_FIFO_DATA(x) (((uint32_t)(((uint32_t)(x)) << SDIF_FIFO_DATA_SHIFT)) & SDIF_FIFO_DATA_MASK)
  579. /*! @} */
  580. /* The count of SDIF_FIFO */
  581. #define SDIF_FIFO_COUNT (32U)
  582. /*!
  583. * @}
  584. */ /* end of group SDIF_Register_Masks */
  585. /*!
  586. * @}
  587. */ /* end of group SDIF_Peripheral_Access_Layer */
  588. #ifdef __cplusplus
  589. }
  590. #endif
  591. #endif