mbed library sources

Dependents:   Encrypted my_mbed lklk CyaSSL_DTLS_Cellular ... more

Superseded

This library was superseded by mbed-dev - https://os.mbed.com/users/mbed_official/code/mbed-dev/.

Development branch of the mbed library sources. This library is kept in synch with the latest changes from the mbed SDK and it is not guaranteed to work.

If you are looking for a stable and tested release, please import one of the official mbed library releases:

Import librarymbed

The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Committer:
mbed_official
Date:
Thu Jul 02 16:30:08 2015 +0100
Revision:
581:39197bcd20f2
Parent:
532:fe11edbda85c
Child:
613:bc40b8d2aec4
Synchronized with git revision ae2d3cdffe70184eb8736d94f76c45c93f4b7724

Full URL: https://github.com/mbedmicro/mbed/commit/ae2d3cdffe70184eb8736d94f76c45c93f4b7724/

Make it possible to build the core mbed library with yotta

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 235:685d5f11838f 1 /**
mbed_official 235:685d5f11838f 2 ******************************************************************************
mbed_official 235:685d5f11838f 3 * @file stm32f4xx_ll_sdmmc.h
mbed_official 235:685d5f11838f 4 * @author MCD Application Team
mbed_official 532:fe11edbda85c 5 * @version V1.3.0
mbed_official 532:fe11edbda85c 6 * @date 09-March-2015
mbed_official 235:685d5f11838f 7 * @brief Header file of SDMMC HAL module.
mbed_official 235:685d5f11838f 8 ******************************************************************************
mbed_official 235:685d5f11838f 9 * @attention
mbed_official 235:685d5f11838f 10 *
mbed_official 532:fe11edbda85c 11 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
mbed_official 235:685d5f11838f 12 *
mbed_official 235:685d5f11838f 13 * Redistribution and use in source and binary forms, with or without modification,
mbed_official 235:685d5f11838f 14 * are permitted provided that the following conditions are met:
mbed_official 235:685d5f11838f 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 235:685d5f11838f 16 * this list of conditions and the following disclaimer.
mbed_official 235:685d5f11838f 17 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 235:685d5f11838f 18 * this list of conditions and the following disclaimer in the documentation
mbed_official 235:685d5f11838f 19 * and/or other materials provided with the distribution.
mbed_official 235:685d5f11838f 20 * 3. Neither the name of STMicroelectronics nor the names of its contributors
mbed_official 235:685d5f11838f 21 * may be used to endorse or promote products derived from this software
mbed_official 235:685d5f11838f 22 * without specific prior written permission.
mbed_official 235:685d5f11838f 23 *
mbed_official 235:685d5f11838f 24 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
mbed_official 235:685d5f11838f 25 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
mbed_official 235:685d5f11838f 26 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
mbed_official 235:685d5f11838f 27 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
mbed_official 235:685d5f11838f 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 235:685d5f11838f 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
mbed_official 235:685d5f11838f 30 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
mbed_official 235:685d5f11838f 31 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
mbed_official 235:685d5f11838f 32 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
mbed_official 235:685d5f11838f 33 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
mbed_official 235:685d5f11838f 34 *
mbed_official 235:685d5f11838f 35 ******************************************************************************
mbed_official 235:685d5f11838f 36 */
mbed_official 235:685d5f11838f 37
mbed_official 235:685d5f11838f 38 /* Define to prevent recursive inclusion -------------------------------------*/
mbed_official 235:685d5f11838f 39 #ifndef __STM32F4xx_LL_SDMMC_H
mbed_official 235:685d5f11838f 40 #define __STM32F4xx_LL_SDMMC_H
mbed_official 235:685d5f11838f 41
mbed_official 235:685d5f11838f 42 #ifdef __cplusplus
mbed_official 235:685d5f11838f 43 extern "C" {
mbed_official 235:685d5f11838f 44 #endif
mbed_official 235:685d5f11838f 45
mbed_official 235:685d5f11838f 46 /* Includes ------------------------------------------------------------------*/
mbed_official 235:685d5f11838f 47 #include "stm32f4xx_hal_def.h"
mbed_official 235:685d5f11838f 48
mbed_official 235:685d5f11838f 49 /** @addtogroup STM32F4xx_Driver
mbed_official 235:685d5f11838f 50 * @{
mbed_official 235:685d5f11838f 51 */
mbed_official 235:685d5f11838f 52
mbed_official 532:fe11edbda85c 53 /** @addtogroup SDMMC_LL
mbed_official 235:685d5f11838f 54 * @{
mbed_official 235:685d5f11838f 55 */
mbed_official 235:685d5f11838f 56
mbed_official 235:685d5f11838f 57 /* Exported types ------------------------------------------------------------*/
mbed_official 532:fe11edbda85c 58 /** @defgroup SDMMC_LL_Exported_Types SDMMC_LL Exported Types
mbed_official 235:685d5f11838f 59 * @{
mbed_official 235:685d5f11838f 60 */
mbed_official 235:685d5f11838f 61
mbed_official 235:685d5f11838f 62 /**
mbed_official 235:685d5f11838f 63 * @brief SDMMC Configuration Structure definition
mbed_official 235:685d5f11838f 64 */
mbed_official 235:685d5f11838f 65 typedef struct
mbed_official 235:685d5f11838f 66 {
mbed_official 235:685d5f11838f 67 uint32_t ClockEdge; /*!< Specifies the clock transition on which the bit capture is made.
mbed_official 235:685d5f11838f 68 This parameter can be a value of @ref SDIO_Clock_Edge */
mbed_official 235:685d5f11838f 69
mbed_official 235:685d5f11838f 70 uint32_t ClockBypass; /*!< Specifies whether the SDIO Clock divider bypass is
mbed_official 235:685d5f11838f 71 enabled or disabled.
mbed_official 235:685d5f11838f 72 This parameter can be a value of @ref SDIO_Clock_Bypass */
mbed_official 235:685d5f11838f 73
mbed_official 235:685d5f11838f 74 uint32_t ClockPowerSave; /*!< Specifies whether SDIO Clock output is enabled or
mbed_official 235:685d5f11838f 75 disabled when the bus is idle.
mbed_official 235:685d5f11838f 76 This parameter can be a value of @ref SDIO_Clock_Power_Save */
mbed_official 235:685d5f11838f 77
mbed_official 235:685d5f11838f 78 uint32_t BusWide; /*!< Specifies the SDIO bus width.
mbed_official 235:685d5f11838f 79 This parameter can be a value of @ref SDIO_Bus_Wide */
mbed_official 235:685d5f11838f 80
mbed_official 235:685d5f11838f 81 uint32_t HardwareFlowControl; /*!< Specifies whether the SDIO hardware flow control is enabled or disabled.
mbed_official 235:685d5f11838f 82 This parameter can be a value of @ref SDIO_Hardware_Flow_Control */
mbed_official 235:685d5f11838f 83
mbed_official 235:685d5f11838f 84 uint32_t ClockDiv; /*!< Specifies the clock frequency of the SDIO controller.
mbed_official 235:685d5f11838f 85 This parameter can be a value between Min_Data = 0 and Max_Data = 255 */
mbed_official 235:685d5f11838f 86
mbed_official 235:685d5f11838f 87 }SDIO_InitTypeDef;
mbed_official 235:685d5f11838f 88
mbed_official 235:685d5f11838f 89
mbed_official 235:685d5f11838f 90 /**
mbed_official 235:685d5f11838f 91 * @brief SDIO Command Control structure
mbed_official 235:685d5f11838f 92 */
mbed_official 235:685d5f11838f 93 typedef struct
mbed_official 235:685d5f11838f 94 {
mbed_official 235:685d5f11838f 95 uint32_t Argument; /*!< Specifies the SDIO command argument which is sent
mbed_official 235:685d5f11838f 96 to a card as part of a command message. If a command
mbed_official 235:685d5f11838f 97 contains an argument, it must be loaded into this register
mbed_official 235:685d5f11838f 98 before writing the command to the command register. */
mbed_official 235:685d5f11838f 99
mbed_official 235:685d5f11838f 100 uint32_t CmdIndex; /*!< Specifies the SDIO command index. It must be Min_Data = 0 and
mbed_official 235:685d5f11838f 101 Max_Data = 64 */
mbed_official 235:685d5f11838f 102
mbed_official 235:685d5f11838f 103 uint32_t Response; /*!< Specifies the SDIO response type.
mbed_official 235:685d5f11838f 104 This parameter can be a value of @ref SDIO_Response_Type */
mbed_official 235:685d5f11838f 105
mbed_official 235:685d5f11838f 106 uint32_t WaitForInterrupt; /*!< Specifies whether SDIO wait for interrupt request is
mbed_official 235:685d5f11838f 107 enabled or disabled.
mbed_official 235:685d5f11838f 108 This parameter can be a value of @ref SDIO_Wait_Interrupt_State */
mbed_official 235:685d5f11838f 109
mbed_official 235:685d5f11838f 110 uint32_t CPSM; /*!< Specifies whether SDIO Command path state machine (CPSM)
mbed_official 235:685d5f11838f 111 is enabled or disabled.
mbed_official 235:685d5f11838f 112 This parameter can be a value of @ref SDIO_CPSM_State */
mbed_official 235:685d5f11838f 113 }SDIO_CmdInitTypeDef;
mbed_official 235:685d5f11838f 114
mbed_official 235:685d5f11838f 115
mbed_official 235:685d5f11838f 116 /**
mbed_official 235:685d5f11838f 117 * @brief SDIO Data Control structure
mbed_official 235:685d5f11838f 118 */
mbed_official 235:685d5f11838f 119 typedef struct
mbed_official 235:685d5f11838f 120 {
mbed_official 235:685d5f11838f 121 uint32_t DataTimeOut; /*!< Specifies the data timeout period in card bus clock periods. */
mbed_official 235:685d5f11838f 122
mbed_official 235:685d5f11838f 123 uint32_t DataLength; /*!< Specifies the number of data bytes to be transferred. */
mbed_official 235:685d5f11838f 124
mbed_official 235:685d5f11838f 125 uint32_t DataBlockSize; /*!< Specifies the data block size for block transfer.
mbed_official 235:685d5f11838f 126 This parameter can be a value of @ref SDIO_Data_Block_Size */
mbed_official 235:685d5f11838f 127
mbed_official 235:685d5f11838f 128 uint32_t TransferDir; /*!< Specifies the data transfer direction, whether the transfer
mbed_official 235:685d5f11838f 129 is a read or write.
mbed_official 235:685d5f11838f 130 This parameter can be a value of @ref SDIO_Transfer_Direction */
mbed_official 235:685d5f11838f 131
mbed_official 235:685d5f11838f 132 uint32_t TransferMode; /*!< Specifies whether data transfer is in stream or block mode.
mbed_official 235:685d5f11838f 133 This parameter can be a value of @ref SDIO_Transfer_Type */
mbed_official 235:685d5f11838f 134
mbed_official 235:685d5f11838f 135 uint32_t DPSM; /*!< Specifies whether SDIO Data path state machine (DPSM)
mbed_official 235:685d5f11838f 136 is enabled or disabled.
mbed_official 235:685d5f11838f 137 This parameter can be a value of @ref SDIO_DPSM_State */
mbed_official 235:685d5f11838f 138 }SDIO_DataInitTypeDef;
mbed_official 235:685d5f11838f 139
mbed_official 235:685d5f11838f 140 /**
mbed_official 235:685d5f11838f 141 * @}
mbed_official 235:685d5f11838f 142 */
mbed_official 235:685d5f11838f 143
mbed_official 235:685d5f11838f 144 /* Exported constants --------------------------------------------------------*/
mbed_official 532:fe11edbda85c 145 /** @defgroup SDMMC_LL_Exported_Constants SDMMC_LL Exported Constants
mbed_official 235:685d5f11838f 146 * @{
mbed_official 235:685d5f11838f 147 */
mbed_official 235:685d5f11838f 148
mbed_official 532:fe11edbda85c 149 /** @defgroup SDIO_Clock_Edge Clock Edge
mbed_official 235:685d5f11838f 150 * @{
mbed_official 235:685d5f11838f 151 */
mbed_official 235:685d5f11838f 152 #define SDIO_CLOCK_EDGE_RISING ((uint32_t)0x00000000)
mbed_official 235:685d5f11838f 153 #define SDIO_CLOCK_EDGE_FALLING SDIO_CLKCR_NEGEDGE
mbed_official 235:685d5f11838f 154
mbed_official 235:685d5f11838f 155 #define IS_SDIO_CLOCK_EDGE(EDGE) (((EDGE) == SDIO_CLOCK_EDGE_RISING) || \
mbed_official 235:685d5f11838f 156 ((EDGE) == SDIO_CLOCK_EDGE_FALLING))
mbed_official 235:685d5f11838f 157 /**
mbed_official 235:685d5f11838f 158 * @}
mbed_official 235:685d5f11838f 159 */
mbed_official 235:685d5f11838f 160
mbed_official 532:fe11edbda85c 161 /** @defgroup SDIO_Clock_Bypass Clock Bypass
mbed_official 235:685d5f11838f 162 * @{
mbed_official 235:685d5f11838f 163 */
mbed_official 235:685d5f11838f 164 #define SDIO_CLOCK_BYPASS_DISABLE ((uint32_t)0x00000000)
mbed_official 235:685d5f11838f 165 #define SDIO_CLOCK_BYPASS_ENABLE SDIO_CLKCR_BYPASS
mbed_official 235:685d5f11838f 166
mbed_official 235:685d5f11838f 167 #define IS_SDIO_CLOCK_BYPASS(BYPASS) (((BYPASS) == SDIO_CLOCK_BYPASS_DISABLE) || \
mbed_official 235:685d5f11838f 168 ((BYPASS) == SDIO_CLOCK_BYPASS_ENABLE))
mbed_official 235:685d5f11838f 169 /**
mbed_official 235:685d5f11838f 170 * @}
mbed_official 235:685d5f11838f 171 */
mbed_official 235:685d5f11838f 172
mbed_official 532:fe11edbda85c 173 /** @defgroup SDIO_Clock_Power_Save Clock Power Saving
mbed_official 235:685d5f11838f 174 * @{
mbed_official 235:685d5f11838f 175 */
mbed_official 235:685d5f11838f 176 #define SDIO_CLOCK_POWER_SAVE_DISABLE ((uint32_t)0x00000000)
mbed_official 235:685d5f11838f 177 #define SDIO_CLOCK_POWER_SAVE_ENABLE SDIO_CLKCR_PWRSAV
mbed_official 235:685d5f11838f 178
mbed_official 235:685d5f11838f 179 #define IS_SDIO_CLOCK_POWER_SAVE(SAVE) (((SAVE) == SDIO_CLOCK_POWER_SAVE_DISABLE) || \
mbed_official 235:685d5f11838f 180 ((SAVE) == SDIO_CLOCK_POWER_SAVE_ENABLE))
mbed_official 235:685d5f11838f 181 /**
mbed_official 235:685d5f11838f 182 * @}
mbed_official 235:685d5f11838f 183 */
mbed_official 235:685d5f11838f 184
mbed_official 532:fe11edbda85c 185 /** @defgroup SDIO_Bus_Wide Bus Width
mbed_official 235:685d5f11838f 186 * @{
mbed_official 235:685d5f11838f 187 */
mbed_official 235:685d5f11838f 188 #define SDIO_BUS_WIDE_1B ((uint32_t)0x00000000)
mbed_official 235:685d5f11838f 189 #define SDIO_BUS_WIDE_4B SDIO_CLKCR_WIDBUS_0
mbed_official 235:685d5f11838f 190 #define SDIO_BUS_WIDE_8B SDIO_CLKCR_WIDBUS_1
mbed_official 235:685d5f11838f 191
mbed_official 235:685d5f11838f 192 #define IS_SDIO_BUS_WIDE(WIDE) (((WIDE) == SDIO_BUS_WIDE_1B) || \
mbed_official 235:685d5f11838f 193 ((WIDE) == SDIO_BUS_WIDE_4B) || \
mbed_official 235:685d5f11838f 194 ((WIDE) == SDIO_BUS_WIDE_8B))
mbed_official 235:685d5f11838f 195 /**
mbed_official 235:685d5f11838f 196 * @}
mbed_official 235:685d5f11838f 197 */
mbed_official 235:685d5f11838f 198
mbed_official 532:fe11edbda85c 199 /** @defgroup SDIO_Hardware_Flow_Control Hardware Flow Control
mbed_official 235:685d5f11838f 200 * @{
mbed_official 235:685d5f11838f 201 */
mbed_official 235:685d5f11838f 202 #define SDIO_HARDWARE_FLOW_CONTROL_DISABLE ((uint32_t)0x00000000)
mbed_official 235:685d5f11838f 203 #define SDIO_HARDWARE_FLOW_CONTROL_ENABLE SDIO_CLKCR_HWFC_EN
mbed_official 235:685d5f11838f 204
mbed_official 235:685d5f11838f 205 #define IS_SDIO_HARDWARE_FLOW_CONTROL(CONTROL) (((CONTROL) == SDIO_HARDWARE_FLOW_CONTROL_DISABLE) || \
mbed_official 235:685d5f11838f 206 ((CONTROL) == SDIO_HARDWARE_FLOW_CONTROL_ENABLE))
mbed_official 235:685d5f11838f 207 /**
mbed_official 235:685d5f11838f 208 * @}
mbed_official 235:685d5f11838f 209 */
mbed_official 235:685d5f11838f 210
mbed_official 532:fe11edbda85c 211 /** @defgroup SDIO_Clock_Division Clock Division
mbed_official 235:685d5f11838f 212 * @{
mbed_official 235:685d5f11838f 213 */
mbed_official 235:685d5f11838f 214 #define IS_SDIO_CLKDIV(DIV) ((DIV) <= 0xFF)
mbed_official 235:685d5f11838f 215 /**
mbed_official 235:685d5f11838f 216 * @}
mbed_official 235:685d5f11838f 217 */
mbed_official 235:685d5f11838f 218
mbed_official 532:fe11edbda85c 219 /** @defgroup SDIO_Command_Index Command Index
mbed_official 235:685d5f11838f 220 * @{
mbed_official 235:685d5f11838f 221 */
mbed_official 235:685d5f11838f 222 #define IS_SDIO_CMD_INDEX(INDEX) ((INDEX) < 0x40)
mbed_official 235:685d5f11838f 223 /**
mbed_official 235:685d5f11838f 224 * @}
mbed_official 235:685d5f11838f 225 */
mbed_official 235:685d5f11838f 226
mbed_official 532:fe11edbda85c 227 /** @defgroup SDIO_Response_Type Response Type
mbed_official 235:685d5f11838f 228 * @{
mbed_official 235:685d5f11838f 229 */
mbed_official 235:685d5f11838f 230 #define SDIO_RESPONSE_NO ((uint32_t)0x00000000)
mbed_official 235:685d5f11838f 231 #define SDIO_RESPONSE_SHORT SDIO_CMD_WAITRESP_0
mbed_official 235:685d5f11838f 232 #define SDIO_RESPONSE_LONG SDIO_CMD_WAITRESP
mbed_official 235:685d5f11838f 233
mbed_official 235:685d5f11838f 234 #define IS_SDIO_RESPONSE(RESPONSE) (((RESPONSE) == SDIO_RESPONSE_NO) || \
mbed_official 235:685d5f11838f 235 ((RESPONSE) == SDIO_RESPONSE_SHORT) || \
mbed_official 235:685d5f11838f 236 ((RESPONSE) == SDIO_RESPONSE_LONG))
mbed_official 235:685d5f11838f 237 /**
mbed_official 235:685d5f11838f 238 * @}
mbed_official 235:685d5f11838f 239 */
mbed_official 235:685d5f11838f 240
mbed_official 532:fe11edbda85c 241 /** @defgroup SDIO_Wait_Interrupt_State Wait Interrupt
mbed_official 235:685d5f11838f 242 * @{
mbed_official 235:685d5f11838f 243 */
mbed_official 235:685d5f11838f 244 #define SDIO_WAIT_NO ((uint32_t)0x00000000)
mbed_official 235:685d5f11838f 245 #define SDIO_WAIT_IT SDIO_CMD_WAITINT
mbed_official 235:685d5f11838f 246 #define SDIO_WAIT_PEND SDIO_CMD_WAITPEND
mbed_official 235:685d5f11838f 247
mbed_official 235:685d5f11838f 248 #define IS_SDIO_WAIT(WAIT) (((WAIT) == SDIO_WAIT_NO) || \
mbed_official 235:685d5f11838f 249 ((WAIT) == SDIO_WAIT_IT) || \
mbed_official 235:685d5f11838f 250 ((WAIT) == SDIO_WAIT_PEND))
mbed_official 235:685d5f11838f 251 /**
mbed_official 235:685d5f11838f 252 * @}
mbed_official 235:685d5f11838f 253 */
mbed_official 235:685d5f11838f 254
mbed_official 532:fe11edbda85c 255 /** @defgroup SDIO_CPSM_State CPSM State
mbed_official 235:685d5f11838f 256 * @{
mbed_official 235:685d5f11838f 257 */
mbed_official 235:685d5f11838f 258 #define SDIO_CPSM_DISABLE ((uint32_t)0x00000000)
mbed_official 235:685d5f11838f 259 #define SDIO_CPSM_ENABLE SDIO_CMD_CPSMEN
mbed_official 235:685d5f11838f 260
mbed_official 235:685d5f11838f 261 #define IS_SDIO_CPSM(CPSM) (((CPSM) == SDIO_CPSM_DISABLE) || \
mbed_official 235:685d5f11838f 262 ((CPSM) == SDIO_CPSM_ENABLE))
mbed_official 235:685d5f11838f 263 /**
mbed_official 235:685d5f11838f 264 * @}
mbed_official 235:685d5f11838f 265 */
mbed_official 235:685d5f11838f 266
mbed_official 532:fe11edbda85c 267 /** @defgroup SDIO_Response_Registers Response Register
mbed_official 235:685d5f11838f 268 * @{
mbed_official 235:685d5f11838f 269 */
mbed_official 235:685d5f11838f 270 #define SDIO_RESP1 ((uint32_t)0x00000000)
mbed_official 235:685d5f11838f 271 #define SDIO_RESP2 ((uint32_t)0x00000004)
mbed_official 235:685d5f11838f 272 #define SDIO_RESP3 ((uint32_t)0x00000008)
mbed_official 235:685d5f11838f 273 #define SDIO_RESP4 ((uint32_t)0x0000000C)
mbed_official 235:685d5f11838f 274
mbed_official 235:685d5f11838f 275 #define IS_SDIO_RESP(RESP) (((RESP) == SDIO_RESP1) || \
mbed_official 235:685d5f11838f 276 ((RESP) == SDIO_RESP2) || \
mbed_official 235:685d5f11838f 277 ((RESP) == SDIO_RESP3) || \
mbed_official 235:685d5f11838f 278 ((RESP) == SDIO_RESP4))
mbed_official 235:685d5f11838f 279 /**
mbed_official 235:685d5f11838f 280 * @}
mbed_official 235:685d5f11838f 281 */
mbed_official 235:685d5f11838f 282
mbed_official 532:fe11edbda85c 283 /** @defgroup SDIO_Data_Length Data Lenght
mbed_official 235:685d5f11838f 284 * @{
mbed_official 235:685d5f11838f 285 */
mbed_official 235:685d5f11838f 286 #define IS_SDIO_DATA_LENGTH(LENGTH) ((LENGTH) <= 0x01FFFFFF)
mbed_official 235:685d5f11838f 287 /**
mbed_official 235:685d5f11838f 288 * @}
mbed_official 235:685d5f11838f 289 */
mbed_official 235:685d5f11838f 290
mbed_official 532:fe11edbda85c 291 /** @defgroup SDIO_Data_Block_Size Data Block Size
mbed_official 235:685d5f11838f 292 * @{
mbed_official 235:685d5f11838f 293 */
mbed_official 235:685d5f11838f 294 #define SDIO_DATABLOCK_SIZE_1B ((uint32_t)0x00000000)
mbed_official 235:685d5f11838f 295 #define SDIO_DATABLOCK_SIZE_2B SDIO_DCTRL_DBLOCKSIZE_0
mbed_official 235:685d5f11838f 296 #define SDIO_DATABLOCK_SIZE_4B SDIO_DCTRL_DBLOCKSIZE_1
mbed_official 235:685d5f11838f 297 #define SDIO_DATABLOCK_SIZE_8B ((uint32_t)0x00000030)
mbed_official 235:685d5f11838f 298 #define SDIO_DATABLOCK_SIZE_16B SDIO_DCTRL_DBLOCKSIZE_2
mbed_official 235:685d5f11838f 299 #define SDIO_DATABLOCK_SIZE_32B ((uint32_t)0x00000050)
mbed_official 235:685d5f11838f 300 #define SDIO_DATABLOCK_SIZE_64B ((uint32_t)0x00000060)
mbed_official 235:685d5f11838f 301 #define SDIO_DATABLOCK_SIZE_128B ((uint32_t)0x00000070)
mbed_official 235:685d5f11838f 302 #define SDIO_DATABLOCK_SIZE_256B SDIO_DCTRL_DBLOCKSIZE_3
mbed_official 235:685d5f11838f 303 #define SDIO_DATABLOCK_SIZE_512B ((uint32_t)0x00000090)
mbed_official 235:685d5f11838f 304 #define SDIO_DATABLOCK_SIZE_1024B ((uint32_t)0x000000A0)
mbed_official 235:685d5f11838f 305 #define SDIO_DATABLOCK_SIZE_2048B ((uint32_t)0x000000B0)
mbed_official 235:685d5f11838f 306 #define SDIO_DATABLOCK_SIZE_4096B ((uint32_t)0x000000C0)
mbed_official 235:685d5f11838f 307 #define SDIO_DATABLOCK_SIZE_8192B ((uint32_t)0x000000D0)
mbed_official 235:685d5f11838f 308 #define SDIO_DATABLOCK_SIZE_16384B ((uint32_t)0x000000E0)
mbed_official 235:685d5f11838f 309
mbed_official 235:685d5f11838f 310 #define IS_SDIO_BLOCK_SIZE(SIZE) (((SIZE) == SDIO_DATABLOCK_SIZE_1B) || \
mbed_official 235:685d5f11838f 311 ((SIZE) == SDIO_DATABLOCK_SIZE_2B) || \
mbed_official 235:685d5f11838f 312 ((SIZE) == SDIO_DATABLOCK_SIZE_4B) || \
mbed_official 235:685d5f11838f 313 ((SIZE) == SDIO_DATABLOCK_SIZE_8B) || \
mbed_official 235:685d5f11838f 314 ((SIZE) == SDIO_DATABLOCK_SIZE_16B) || \
mbed_official 235:685d5f11838f 315 ((SIZE) == SDIO_DATABLOCK_SIZE_32B) || \
mbed_official 235:685d5f11838f 316 ((SIZE) == SDIO_DATABLOCK_SIZE_64B) || \
mbed_official 235:685d5f11838f 317 ((SIZE) == SDIO_DATABLOCK_SIZE_128B) || \
mbed_official 235:685d5f11838f 318 ((SIZE) == SDIO_DATABLOCK_SIZE_256B) || \
mbed_official 235:685d5f11838f 319 ((SIZE) == SDIO_DATABLOCK_SIZE_512B) || \
mbed_official 235:685d5f11838f 320 ((SIZE) == SDIO_DATABLOCK_SIZE_1024B) || \
mbed_official 235:685d5f11838f 321 ((SIZE) == SDIO_DATABLOCK_SIZE_2048B) || \
mbed_official 235:685d5f11838f 322 ((SIZE) == SDIO_DATABLOCK_SIZE_4096B) || \
mbed_official 235:685d5f11838f 323 ((SIZE) == SDIO_DATABLOCK_SIZE_8192B) || \
mbed_official 235:685d5f11838f 324 ((SIZE) == SDIO_DATABLOCK_SIZE_16384B))
mbed_official 235:685d5f11838f 325 /**
mbed_official 235:685d5f11838f 326 * @}
mbed_official 235:685d5f11838f 327 */
mbed_official 235:685d5f11838f 328
mbed_official 532:fe11edbda85c 329 /** @defgroup SDIO_Transfer_Direction Transfer Direction
mbed_official 235:685d5f11838f 330 * @{
mbed_official 235:685d5f11838f 331 */
mbed_official 235:685d5f11838f 332 #define SDIO_TRANSFER_DIR_TO_CARD ((uint32_t)0x00000000)
mbed_official 235:685d5f11838f 333 #define SDIO_TRANSFER_DIR_TO_SDIO SDIO_DCTRL_DTDIR
mbed_official 235:685d5f11838f 334
mbed_official 235:685d5f11838f 335 #define IS_SDIO_TRANSFER_DIR(DIR) (((DIR) == SDIO_TRANSFER_DIR_TO_CARD) || \
mbed_official 235:685d5f11838f 336 ((DIR) == SDIO_TRANSFER_DIR_TO_SDIO))
mbed_official 235:685d5f11838f 337 /**
mbed_official 235:685d5f11838f 338 * @}
mbed_official 235:685d5f11838f 339 */
mbed_official 235:685d5f11838f 340
mbed_official 532:fe11edbda85c 341 /** @defgroup SDIO_Transfer_Type Transfer Type
mbed_official 235:685d5f11838f 342 * @{
mbed_official 235:685d5f11838f 343 */
mbed_official 235:685d5f11838f 344 #define SDIO_TRANSFER_MODE_BLOCK ((uint32_t)0x00000000)
mbed_official 235:685d5f11838f 345 #define SDIO_TRANSFER_MODE_STREAM SDIO_DCTRL_DTMODE
mbed_official 235:685d5f11838f 346
mbed_official 235:685d5f11838f 347 #define IS_SDIO_TRANSFER_MODE(MODE) (((MODE) == SDIO_TRANSFER_MODE_BLOCK) || \
mbed_official 235:685d5f11838f 348 ((MODE) == SDIO_TRANSFER_MODE_STREAM))
mbed_official 235:685d5f11838f 349 /**
mbed_official 235:685d5f11838f 350 * @}
mbed_official 235:685d5f11838f 351 */
mbed_official 235:685d5f11838f 352
mbed_official 532:fe11edbda85c 353 /** @defgroup SDIO_DPSM_State DPSM State
mbed_official 235:685d5f11838f 354 * @{
mbed_official 235:685d5f11838f 355 */
mbed_official 235:685d5f11838f 356 #define SDIO_DPSM_DISABLE ((uint32_t)0x00000000)
mbed_official 235:685d5f11838f 357 #define SDIO_DPSM_ENABLE SDIO_DCTRL_DTEN
mbed_official 235:685d5f11838f 358
mbed_official 235:685d5f11838f 359 #define IS_SDIO_DPSM(DPSM) (((DPSM) == SDIO_DPSM_DISABLE) ||\
mbed_official 235:685d5f11838f 360 ((DPSM) == SDIO_DPSM_ENABLE))
mbed_official 235:685d5f11838f 361 /**
mbed_official 235:685d5f11838f 362 * @}
mbed_official 235:685d5f11838f 363 */
mbed_official 235:685d5f11838f 364
mbed_official 532:fe11edbda85c 365 /** @defgroup SDIO_Read_Wait_Mode Read Wait Mode
mbed_official 235:685d5f11838f 366 * @{
mbed_official 235:685d5f11838f 367 */
mbed_official 532:fe11edbda85c 368 #define SDIO_READ_WAIT_MODE_DATA2 ((uint32_t)0x00000000)
mbed_official 532:fe11edbda85c 369 #define SDIO_READ_WAIT_MODE_CLK ((uint32_t)0x00000001)
mbed_official 235:685d5f11838f 370
mbed_official 235:685d5f11838f 371 #define IS_SDIO_READWAIT_MODE(MODE) (((MODE) == SDIO_READ_WAIT_MODE_CLK) || \
mbed_official 235:685d5f11838f 372 ((MODE) == SDIO_READ_WAIT_MODE_DATA2))
mbed_official 235:685d5f11838f 373 /**
mbed_official 235:685d5f11838f 374 * @}
mbed_official 235:685d5f11838f 375 */
mbed_official 235:685d5f11838f 376
mbed_official 532:fe11edbda85c 377 /** @defgroup SDIO_Interrupt_sources Interrupt Sources
mbed_official 235:685d5f11838f 378 * @{
mbed_official 235:685d5f11838f 379 */
mbed_official 235:685d5f11838f 380 #define SDIO_IT_CCRCFAIL SDIO_STA_CCRCFAIL
mbed_official 235:685d5f11838f 381 #define SDIO_IT_DCRCFAIL SDIO_STA_DCRCFAIL
mbed_official 235:685d5f11838f 382 #define SDIO_IT_CTIMEOUT SDIO_STA_CTIMEOUT
mbed_official 235:685d5f11838f 383 #define SDIO_IT_DTIMEOUT SDIO_STA_DTIMEOUT
mbed_official 235:685d5f11838f 384 #define SDIO_IT_TXUNDERR SDIO_STA_TXUNDERR
mbed_official 235:685d5f11838f 385 #define SDIO_IT_RXOVERR SDIO_STA_RXOVERR
mbed_official 235:685d5f11838f 386 #define SDIO_IT_CMDREND SDIO_STA_CMDREND
mbed_official 235:685d5f11838f 387 #define SDIO_IT_CMDSENT SDIO_STA_CMDSENT
mbed_official 235:685d5f11838f 388 #define SDIO_IT_DATAEND SDIO_STA_DATAEND
mbed_official 235:685d5f11838f 389 #define SDIO_IT_STBITERR SDIO_STA_STBITERR
mbed_official 235:685d5f11838f 390 #define SDIO_IT_DBCKEND SDIO_STA_DBCKEND
mbed_official 235:685d5f11838f 391 #define SDIO_IT_CMDACT SDIO_STA_CMDACT
mbed_official 235:685d5f11838f 392 #define SDIO_IT_TXACT SDIO_STA_TXACT
mbed_official 235:685d5f11838f 393 #define SDIO_IT_RXACT SDIO_STA_RXACT
mbed_official 235:685d5f11838f 394 #define SDIO_IT_TXFIFOHE SDIO_STA_TXFIFOHE
mbed_official 235:685d5f11838f 395 #define SDIO_IT_RXFIFOHF SDIO_STA_RXFIFOHF
mbed_official 235:685d5f11838f 396 #define SDIO_IT_TXFIFOF SDIO_STA_TXFIFOF
mbed_official 235:685d5f11838f 397 #define SDIO_IT_RXFIFOF SDIO_STA_RXFIFOF
mbed_official 235:685d5f11838f 398 #define SDIO_IT_TXFIFOE SDIO_STA_TXFIFOE
mbed_official 235:685d5f11838f 399 #define SDIO_IT_RXFIFOE SDIO_STA_RXFIFOE
mbed_official 235:685d5f11838f 400 #define SDIO_IT_TXDAVL SDIO_STA_TXDAVL
mbed_official 235:685d5f11838f 401 #define SDIO_IT_RXDAVL SDIO_STA_RXDAVL
mbed_official 235:685d5f11838f 402 #define SDIO_IT_SDIOIT SDIO_STA_SDIOIT
mbed_official 235:685d5f11838f 403 #define SDIO_IT_CEATAEND SDIO_STA_CEATAEND
mbed_official 235:685d5f11838f 404 /**
mbed_official 235:685d5f11838f 405 * @}
mbed_official 235:685d5f11838f 406 */
mbed_official 235:685d5f11838f 407
mbed_official 532:fe11edbda85c 408 /** @defgroup SDIO_Flags Flags
mbed_official 235:685d5f11838f 409 * @{
mbed_official 235:685d5f11838f 410 */
mbed_official 235:685d5f11838f 411 #define SDIO_FLAG_CCRCFAIL SDIO_STA_CCRCFAIL
mbed_official 235:685d5f11838f 412 #define SDIO_FLAG_DCRCFAIL SDIO_STA_DCRCFAIL
mbed_official 235:685d5f11838f 413 #define SDIO_FLAG_CTIMEOUT SDIO_STA_CTIMEOUT
mbed_official 235:685d5f11838f 414 #define SDIO_FLAG_DTIMEOUT SDIO_STA_DTIMEOUT
mbed_official 235:685d5f11838f 415 #define SDIO_FLAG_TXUNDERR SDIO_STA_TXUNDERR
mbed_official 235:685d5f11838f 416 #define SDIO_FLAG_RXOVERR SDIO_STA_RXOVERR
mbed_official 235:685d5f11838f 417 #define SDIO_FLAG_CMDREND SDIO_STA_CMDREND
mbed_official 235:685d5f11838f 418 #define SDIO_FLAG_CMDSENT SDIO_STA_CMDSENT
mbed_official 235:685d5f11838f 419 #define SDIO_FLAG_DATAEND SDIO_STA_DATAEND
mbed_official 235:685d5f11838f 420 #define SDIO_FLAG_STBITERR SDIO_STA_STBITERR
mbed_official 235:685d5f11838f 421 #define SDIO_FLAG_DBCKEND SDIO_STA_DBCKEND
mbed_official 235:685d5f11838f 422 #define SDIO_FLAG_CMDACT SDIO_STA_CMDACT
mbed_official 235:685d5f11838f 423 #define SDIO_FLAG_TXACT SDIO_STA_TXACT
mbed_official 235:685d5f11838f 424 #define SDIO_FLAG_RXACT SDIO_STA_RXACT
mbed_official 235:685d5f11838f 425 #define SDIO_FLAG_TXFIFOHE SDIO_STA_TXFIFOHE
mbed_official 235:685d5f11838f 426 #define SDIO_FLAG_RXFIFOHF SDIO_STA_RXFIFOHF
mbed_official 235:685d5f11838f 427 #define SDIO_FLAG_TXFIFOF SDIO_STA_TXFIFOF
mbed_official 235:685d5f11838f 428 #define SDIO_FLAG_RXFIFOF SDIO_STA_RXFIFOF
mbed_official 235:685d5f11838f 429 #define SDIO_FLAG_TXFIFOE SDIO_STA_TXFIFOE
mbed_official 235:685d5f11838f 430 #define SDIO_FLAG_RXFIFOE SDIO_STA_RXFIFOE
mbed_official 235:685d5f11838f 431 #define SDIO_FLAG_TXDAVL SDIO_STA_TXDAVL
mbed_official 235:685d5f11838f 432 #define SDIO_FLAG_RXDAVL SDIO_STA_RXDAVL
mbed_official 235:685d5f11838f 433 #define SDIO_FLAG_SDIOIT SDIO_STA_SDIOIT
mbed_official 235:685d5f11838f 434 #define SDIO_FLAG_CEATAEND SDIO_STA_CEATAEND
mbed_official 532:fe11edbda85c 435 /**
mbed_official 532:fe11edbda85c 436 * @}
mbed_official 532:fe11edbda85c 437 */
mbed_official 235:685d5f11838f 438
mbed_official 235:685d5f11838f 439 /**
mbed_official 235:685d5f11838f 440 * @}
mbed_official 235:685d5f11838f 441 */
mbed_official 532:fe11edbda85c 442 /* Exported macro ------------------------------------------------------------*/
mbed_official 532:fe11edbda85c 443 /** @defgroup SDMMC_LL_Exported_macros SDMMC_LL Exported Macros
mbed_official 235:685d5f11838f 444 * @{
mbed_official 532:fe11edbda85c 445 */
mbed_official 235:685d5f11838f 446
mbed_official 532:fe11edbda85c 447 /** @defgroup SDMMC_LL_Alias_Region Bit Address in the alias region
mbed_official 532:fe11edbda85c 448 * @{
mbed_official 235:685d5f11838f 449 */
mbed_official 235:685d5f11838f 450 /* ------------ SDIO registers bit address in the alias region -------------- */
mbed_official 235:685d5f11838f 451 #define SDIO_OFFSET (SDIO_BASE - PERIPH_BASE)
mbed_official 235:685d5f11838f 452
mbed_official 235:685d5f11838f 453 /* --- CLKCR Register ---*/
mbed_official 235:685d5f11838f 454 /* Alias word address of CLKEN bit */
mbed_official 235:685d5f11838f 455 #define CLKCR_OFFSET (SDIO_OFFSET + 0x04)
mbed_official 532:fe11edbda85c 456 #define CLKEN_BITNUMBER 0x08
mbed_official 532:fe11edbda85c 457 #define CLKCR_CLKEN_BB (PERIPH_BB_BASE + (CLKCR_OFFSET * 32) + (CLKEN_BITNUMBER * 4))
mbed_official 235:685d5f11838f 458
mbed_official 235:685d5f11838f 459 /* --- CMD Register ---*/
mbed_official 235:685d5f11838f 460 /* Alias word address of SDIOSUSPEND bit */
mbed_official 235:685d5f11838f 461 #define CMD_OFFSET (SDIO_OFFSET + 0x0C)
mbed_official 532:fe11edbda85c 462 #define SDIOSUSPEND_BITNUMBER 0x0B
mbed_official 532:fe11edbda85c 463 #define CMD_SDIOSUSPEND_BB (PERIPH_BB_BASE + (CMD_OFFSET * 32) + (SDIOSUSPEND_BITNUMBER * 4))
mbed_official 235:685d5f11838f 464
mbed_official 235:685d5f11838f 465 /* Alias word address of ENCMDCOMPL bit */
mbed_official 532:fe11edbda85c 466 #define ENCMDCOMPL_BITNUMBER 0x0C
mbed_official 532:fe11edbda85c 467 #define CMD_ENCMDCOMPL_BB (PERIPH_BB_BASE + (CMD_OFFSET * 32) + (ENCMDCOMPL_BITNUMBER * 4))
mbed_official 235:685d5f11838f 468
mbed_official 235:685d5f11838f 469 /* Alias word address of NIEN bit */
mbed_official 532:fe11edbda85c 470 #define NIEN_BITNUMBER 0x0D
mbed_official 532:fe11edbda85c 471 #define CMD_NIEN_BB (PERIPH_BB_BASE + (CMD_OFFSET * 32) + (NIEN_BITNUMBER * 4))
mbed_official 235:685d5f11838f 472
mbed_official 235:685d5f11838f 473 /* Alias word address of ATACMD bit */
mbed_official 532:fe11edbda85c 474 #define ATACMD_BITNUMBER 0x0E
mbed_official 532:fe11edbda85c 475 #define CMD_ATACMD_BB (PERIPH_BB_BASE + (CMD_OFFSET * 32) + (ATACMD_BITNUMBER * 4))
mbed_official 235:685d5f11838f 476
mbed_official 235:685d5f11838f 477 /* --- DCTRL Register ---*/
mbed_official 235:685d5f11838f 478 /* Alias word address of DMAEN bit */
mbed_official 235:685d5f11838f 479 #define DCTRL_OFFSET (SDIO_OFFSET + 0x2C)
mbed_official 532:fe11edbda85c 480 #define DMAEN_BITNUMBER 0x03
mbed_official 532:fe11edbda85c 481 #define DCTRL_DMAEN_BB (PERIPH_BB_BASE + (DCTRL_OFFSET * 32) + (DMAEN_BITNUMBER * 4))
mbed_official 235:685d5f11838f 482
mbed_official 235:685d5f11838f 483 /* Alias word address of RWSTART bit */
mbed_official 532:fe11edbda85c 484 #define RWSTART_BITNUMBER 0x08
mbed_official 532:fe11edbda85c 485 #define DCTRL_RWSTART_BB (PERIPH_BB_BASE + (DCTRL_OFFSET * 32) + (RWSTART_BITNUMBER * 4))
mbed_official 235:685d5f11838f 486
mbed_official 235:685d5f11838f 487 /* Alias word address of RWSTOP bit */
mbed_official 532:fe11edbda85c 488 #define RWSTOP_BITNUMBER 0x09
mbed_official 532:fe11edbda85c 489 #define DCTRL_RWSTOP_BB (PERIPH_BB_BASE + (DCTRL_OFFSET * 32) + (RWSTOP_BITNUMBER * 4))
mbed_official 235:685d5f11838f 490
mbed_official 235:685d5f11838f 491 /* Alias word address of RWMOD bit */
mbed_official 532:fe11edbda85c 492 #define RWMOD_BITNUMBER 0x0A
mbed_official 532:fe11edbda85c 493 #define DCTRL_RWMOD_BB (PERIPH_BB_BASE + (DCTRL_OFFSET * 32) + (RWMOD_BITNUMBER * 4))
mbed_official 235:685d5f11838f 494
mbed_official 235:685d5f11838f 495 /* Alias word address of SDIOEN bit */
mbed_official 532:fe11edbda85c 496 #define SDIOEN_BITNUMBER 0x0B
mbed_official 532:fe11edbda85c 497 #define DCTRL_SDIOEN_BB (PERIPH_BB_BASE + (DCTRL_OFFSET * 32) + (SDIOEN_BITNUMBER * 4))
mbed_official 532:fe11edbda85c 498 /**
mbed_official 532:fe11edbda85c 499 * @}
mbed_official 532:fe11edbda85c 500 */
mbed_official 532:fe11edbda85c 501
mbed_official 532:fe11edbda85c 502 /** @defgroup SDMMC_LL_Register Bits And Addresses Definitions
mbed_official 532:fe11edbda85c 503 * @brief SDMMC_LL registers bit address in the alias region
mbed_official 532:fe11edbda85c 504 * @{
mbed_official 532:fe11edbda85c 505 */
mbed_official 235:685d5f11838f 506
mbed_official 235:685d5f11838f 507 /* ---------------------- SDIO registers bit mask --------------------------- */
mbed_official 235:685d5f11838f 508 /* --- CLKCR Register ---*/
mbed_official 235:685d5f11838f 509 /* CLKCR register clear mask */
mbed_official 235:685d5f11838f 510 #define CLKCR_CLEAR_MASK ((uint32_t)(SDIO_CLKCR_CLKDIV | SDIO_CLKCR_PWRSAV |\
mbed_official 235:685d5f11838f 511 SDIO_CLKCR_BYPASS | SDIO_CLKCR_WIDBUS |\
mbed_official 235:685d5f11838f 512 SDIO_CLKCR_NEGEDGE | SDIO_CLKCR_HWFC_EN))
mbed_official 235:685d5f11838f 513
mbed_official 235:685d5f11838f 514 /* --- PWRCTRL Register ---*/
mbed_official 235:685d5f11838f 515 /* --- DCTRL Register ---*/
mbed_official 235:685d5f11838f 516 /* SDIO DCTRL Clear Mask */
mbed_official 235:685d5f11838f 517 #define DCTRL_CLEAR_MASK ((uint32_t)(SDIO_DCTRL_DTEN | SDIO_DCTRL_DTDIR |\
mbed_official 235:685d5f11838f 518 SDIO_DCTRL_DTMODE | SDIO_DCTRL_DBLOCKSIZE))
mbed_official 235:685d5f11838f 519
mbed_official 235:685d5f11838f 520 /* --- CMD Register ---*/
mbed_official 235:685d5f11838f 521 /* CMD Register clear mask */
mbed_official 235:685d5f11838f 522 #define CMD_CLEAR_MASK ((uint32_t)(SDIO_CMD_CMDINDEX | SDIO_CMD_WAITRESP |\
mbed_official 235:685d5f11838f 523 SDIO_CMD_WAITINT | SDIO_CMD_WAITPEND |\
mbed_official 235:685d5f11838f 524 SDIO_CMD_CPSMEN | SDIO_CMD_SDIOSUSPEND))
mbed_official 235:685d5f11838f 525
mbed_official 235:685d5f11838f 526 /* SDIO RESP Registers Address */
mbed_official 235:685d5f11838f 527 #define SDIO_RESP_ADDR ((uint32_t)(SDIO_BASE + 0x14))
mbed_official 235:685d5f11838f 528
mbed_official 532:fe11edbda85c 529 /* SDIO Initialization Frequency (400KHz max) */
mbed_official 235:685d5f11838f 530 #define SDIO_INIT_CLK_DIV ((uint8_t)0x76)
mbed_official 235:685d5f11838f 531
mbed_official 235:685d5f11838f 532 /* SDIO Data Transfer Frequency (25MHz max) */
mbed_official 235:685d5f11838f 533 #define SDIO_TRANSFER_CLK_DIV ((uint8_t)0x0)
mbed_official 532:fe11edbda85c 534 /**
mbed_official 532:fe11edbda85c 535 * @}
mbed_official 532:fe11edbda85c 536 */
mbed_official 235:685d5f11838f 537
mbed_official 532:fe11edbda85c 538 /** @defgroup SDMMC_LL_Interrupt_Clock Interrupt And Clock Configuration
mbed_official 532:fe11edbda85c 539 * @brief macros to handle interrupts and specific clock configurations
mbed_official 532:fe11edbda85c 540 * @{
mbed_official 532:fe11edbda85c 541 */
mbed_official 532:fe11edbda85c 542
mbed_official 235:685d5f11838f 543 /**
mbed_official 235:685d5f11838f 544 * @brief Enable the SDIO device.
mbed_official 235:685d5f11838f 545 * @retval None
mbed_official 235:685d5f11838f 546 */
mbed_official 235:685d5f11838f 547 #define __SDIO_ENABLE() (*(__IO uint32_t *)CLKCR_CLKEN_BB = ENABLE)
mbed_official 235:685d5f11838f 548
mbed_official 235:685d5f11838f 549 /**
mbed_official 235:685d5f11838f 550 * @brief Disable the SDIO device.
mbed_official 235:685d5f11838f 551 * @retval None
mbed_official 235:685d5f11838f 552 */
mbed_official 235:685d5f11838f 553 #define __SDIO_DISABLE() (*(__IO uint32_t *)CLKCR_CLKEN_BB = DISABLE)
mbed_official 235:685d5f11838f 554
mbed_official 235:685d5f11838f 555 /**
mbed_official 235:685d5f11838f 556 * @brief Enable the SDIO DMA transfer.
mbed_official 235:685d5f11838f 557 * @retval None
mbed_official 235:685d5f11838f 558 */
mbed_official 235:685d5f11838f 559 #define __SDIO_DMA_ENABLE() (*(__IO uint32_t *)DCTRL_DMAEN_BB = ENABLE)
mbed_official 235:685d5f11838f 560
mbed_official 235:685d5f11838f 561 /**
mbed_official 235:685d5f11838f 562 * @brief Disable the SDIO DMA transfer.
mbed_official 235:685d5f11838f 563 * @retval None
mbed_official 235:685d5f11838f 564 */
mbed_official 235:685d5f11838f 565 #define __SDIO_DMA_DISABLE() (*(__IO uint32_t *)DCTRL_DMAEN_BB = DISABLE)
mbed_official 235:685d5f11838f 566
mbed_official 235:685d5f11838f 567 /**
mbed_official 235:685d5f11838f 568 * @brief Enable the SDIO device interrupt.
mbed_official 235:685d5f11838f 569 * @param __INSTANCE__ : Pointer to SDIO register base
mbed_official 235:685d5f11838f 570 * @param __INTERRUPT__ : specifies the SDIO interrupt sources to be enabled.
mbed_official 235:685d5f11838f 571 * This parameter can be one or a combination of the following values:
mbed_official 235:685d5f11838f 572 * @arg SDIO_IT_CCRCFAIL: Command response received (CRC check failed) interrupt
mbed_official 235:685d5f11838f 573 * @arg SDIO_IT_DCRCFAIL: Data block sent/received (CRC check failed) interrupt
mbed_official 235:685d5f11838f 574 * @arg SDIO_IT_CTIMEOUT: Command response timeout interrupt
mbed_official 235:685d5f11838f 575 * @arg SDIO_IT_DTIMEOUT: Data timeout interrupt
mbed_official 235:685d5f11838f 576 * @arg SDIO_IT_TXUNDERR: Transmit FIFO underrun error interrupt
mbed_official 235:685d5f11838f 577 * @arg SDIO_IT_RXOVERR: Received FIFO overrun error interrupt
mbed_official 235:685d5f11838f 578 * @arg SDIO_IT_CMDREND: Command response received (CRC check passed) interrupt
mbed_official 235:685d5f11838f 579 * @arg SDIO_IT_CMDSENT: Command sent (no response required) interrupt
mbed_official 235:685d5f11838f 580 * @arg SDIO_IT_DATAEND: Data end (data counter, SDIDCOUNT, is zero) interrupt
mbed_official 235:685d5f11838f 581 * @arg SDIO_IT_STBITERR: Start bit not detected on all data signals in wide
mbed_official 235:685d5f11838f 582 * bus mode interrupt
mbed_official 235:685d5f11838f 583 * @arg SDIO_IT_DBCKEND: Data block sent/received (CRC check passed) interrupt
mbed_official 235:685d5f11838f 584 * @arg SDIO_IT_CMDACT: Command transfer in progress interrupt
mbed_official 235:685d5f11838f 585 * @arg SDIO_IT_TXACT: Data transmit in progress interrupt
mbed_official 235:685d5f11838f 586 * @arg SDIO_IT_RXACT: Data receive in progress interrupt
mbed_official 235:685d5f11838f 587 * @arg SDIO_IT_TXFIFOHE: Transmit FIFO Half Empty interrupt
mbed_official 235:685d5f11838f 588 * @arg SDIO_IT_RXFIFOHF: Receive FIFO Half Full interrupt
mbed_official 235:685d5f11838f 589 * @arg SDIO_IT_TXFIFOF: Transmit FIFO full interrupt
mbed_official 235:685d5f11838f 590 * @arg SDIO_IT_RXFIFOF: Receive FIFO full interrupt
mbed_official 235:685d5f11838f 591 * @arg SDIO_IT_TXFIFOE: Transmit FIFO empty interrupt
mbed_official 235:685d5f11838f 592 * @arg SDIO_IT_RXFIFOE: Receive FIFO empty interrupt
mbed_official 235:685d5f11838f 593 * @arg SDIO_IT_TXDAVL: Data available in transmit FIFO interrupt
mbed_official 235:685d5f11838f 594 * @arg SDIO_IT_RXDAVL: Data available in receive FIFO interrupt
mbed_official 235:685d5f11838f 595 * @arg SDIO_IT_SDIOIT: SD I/O interrupt received interrupt
mbed_official 235:685d5f11838f 596 * @arg SDIO_IT_CEATAEND: CE-ATA command completion signal received for CMD61 interrupt
mbed_official 235:685d5f11838f 597 * @retval None
mbed_official 235:685d5f11838f 598 */
mbed_official 235:685d5f11838f 599 #define __SDIO_ENABLE_IT(__INSTANCE__, __INTERRUPT__) ((__INSTANCE__)->MASK |= (__INTERRUPT__))
mbed_official 235:685d5f11838f 600
mbed_official 235:685d5f11838f 601 /**
mbed_official 235:685d5f11838f 602 * @brief Disable the SDIO device interrupt.
mbed_official 235:685d5f11838f 603 * @param __INSTANCE__ : Pointer to SDIO register base
mbed_official 235:685d5f11838f 604 * @param __INTERRUPT__ : specifies the SDIO interrupt sources to be disabled.
mbed_official 235:685d5f11838f 605 * This parameter can be one or a combination of the following values:
mbed_official 235:685d5f11838f 606 * @arg SDIO_IT_CCRCFAIL: Command response received (CRC check failed) interrupt
mbed_official 235:685d5f11838f 607 * @arg SDIO_IT_DCRCFAIL: Data block sent/received (CRC check failed) interrupt
mbed_official 235:685d5f11838f 608 * @arg SDIO_IT_CTIMEOUT: Command response timeout interrupt
mbed_official 235:685d5f11838f 609 * @arg SDIO_IT_DTIMEOUT: Data timeout interrupt
mbed_official 235:685d5f11838f 610 * @arg SDIO_IT_TXUNDERR: Transmit FIFO underrun error interrupt
mbed_official 235:685d5f11838f 611 * @arg SDIO_IT_RXOVERR: Received FIFO overrun error interrupt
mbed_official 235:685d5f11838f 612 * @arg SDIO_IT_CMDREND: Command response received (CRC check passed) interrupt
mbed_official 235:685d5f11838f 613 * @arg SDIO_IT_CMDSENT: Command sent (no response required) interrupt
mbed_official 235:685d5f11838f 614 * @arg SDIO_IT_DATAEND: Data end (data counter, SDIDCOUNT, is zero) interrupt
mbed_official 235:685d5f11838f 615 * @arg SDIO_IT_STBITERR: Start bit not detected on all data signals in wide
mbed_official 235:685d5f11838f 616 * bus mode interrupt
mbed_official 235:685d5f11838f 617 * @arg SDIO_IT_DBCKEND: Data block sent/received (CRC check passed) interrupt
mbed_official 235:685d5f11838f 618 * @arg SDIO_IT_CMDACT: Command transfer in progress interrupt
mbed_official 235:685d5f11838f 619 * @arg SDIO_IT_TXACT: Data transmit in progress interrupt
mbed_official 235:685d5f11838f 620 * @arg SDIO_IT_RXACT: Data receive in progress interrupt
mbed_official 235:685d5f11838f 621 * @arg SDIO_IT_TXFIFOHE: Transmit FIFO Half Empty interrupt
mbed_official 235:685d5f11838f 622 * @arg SDIO_IT_RXFIFOHF: Receive FIFO Half Full interrupt
mbed_official 235:685d5f11838f 623 * @arg SDIO_IT_TXFIFOF: Transmit FIFO full interrupt
mbed_official 235:685d5f11838f 624 * @arg SDIO_IT_RXFIFOF: Receive FIFO full interrupt
mbed_official 235:685d5f11838f 625 * @arg SDIO_IT_TXFIFOE: Transmit FIFO empty interrupt
mbed_official 235:685d5f11838f 626 * @arg SDIO_IT_RXFIFOE: Receive FIFO empty interrupt
mbed_official 235:685d5f11838f 627 * @arg SDIO_IT_TXDAVL: Data available in transmit FIFO interrupt
mbed_official 235:685d5f11838f 628 * @arg SDIO_IT_RXDAVL: Data available in receive FIFO interrupt
mbed_official 235:685d5f11838f 629 * @arg SDIO_IT_SDIOIT: SD I/O interrupt received interrupt
mbed_official 235:685d5f11838f 630 * @arg SDIO_IT_CEATAEND: CE-ATA command completion signal received for CMD61 interrupt
mbed_official 235:685d5f11838f 631 * @retval None
mbed_official 235:685d5f11838f 632 */
mbed_official 235:685d5f11838f 633 #define __SDIO_DISABLE_IT(__INSTANCE__, __INTERRUPT__) ((__INSTANCE__)->MASK &= ~(__INTERRUPT__))
mbed_official 235:685d5f11838f 634
mbed_official 235:685d5f11838f 635 /**
mbed_official 235:685d5f11838f 636 * @brief Checks whether the specified SDIO flag is set or not.
mbed_official 235:685d5f11838f 637 * @param __INSTANCE__ : Pointer to SDIO register base
mbed_official 235:685d5f11838f 638 * @param __FLAG__: specifies the flag to check.
mbed_official 235:685d5f11838f 639 * This parameter can be one of the following values:
mbed_official 235:685d5f11838f 640 * @arg SDIO_FLAG_CCRCFAIL: Command response received (CRC check failed)
mbed_official 235:685d5f11838f 641 * @arg SDIO_FLAG_DCRCFAIL: Data block sent/received (CRC check failed)
mbed_official 235:685d5f11838f 642 * @arg SDIO_FLAG_CTIMEOUT: Command response timeout
mbed_official 235:685d5f11838f 643 * @arg SDIO_FLAG_DTIMEOUT: Data timeout
mbed_official 235:685d5f11838f 644 * @arg SDIO_FLAG_TXUNDERR: Transmit FIFO underrun error
mbed_official 235:685d5f11838f 645 * @arg SDIO_FLAG_RXOVERR: Received FIFO overrun error
mbed_official 235:685d5f11838f 646 * @arg SDIO_FLAG_CMDREND: Command response received (CRC check passed)
mbed_official 235:685d5f11838f 647 * @arg SDIO_FLAG_CMDSENT: Command sent (no response required)
mbed_official 235:685d5f11838f 648 * @arg SDIO_FLAG_DATAEND: Data end (data counter, SDIDCOUNT, is zero)
mbed_official 235:685d5f11838f 649 * @arg SDIO_FLAG_STBITERR: Start bit not detected on all data signals in wide bus mode.
mbed_official 235:685d5f11838f 650 * @arg SDIO_FLAG_DBCKEND: Data block sent/received (CRC check passed)
mbed_official 235:685d5f11838f 651 * @arg SDIO_FLAG_CMDACT: Command transfer in progress
mbed_official 235:685d5f11838f 652 * @arg SDIO_FLAG_TXACT: Data transmit in progress
mbed_official 235:685d5f11838f 653 * @arg SDIO_FLAG_RXACT: Data receive in progress
mbed_official 235:685d5f11838f 654 * @arg SDIO_FLAG_TXFIFOHE: Transmit FIFO Half Empty
mbed_official 235:685d5f11838f 655 * @arg SDIO_FLAG_RXFIFOHF: Receive FIFO Half Full
mbed_official 235:685d5f11838f 656 * @arg SDIO_FLAG_TXFIFOF: Transmit FIFO full
mbed_official 235:685d5f11838f 657 * @arg SDIO_FLAG_RXFIFOF: Receive FIFO full
mbed_official 235:685d5f11838f 658 * @arg SDIO_FLAG_TXFIFOE: Transmit FIFO empty
mbed_official 235:685d5f11838f 659 * @arg SDIO_FLAG_RXFIFOE: Receive FIFO empty
mbed_official 235:685d5f11838f 660 * @arg SDIO_FLAG_TXDAVL: Data available in transmit FIFO
mbed_official 235:685d5f11838f 661 * @arg SDIO_FLAG_RXDAVL: Data available in receive FIFO
mbed_official 235:685d5f11838f 662 * @arg SDIO_FLAG_SDIOIT: SD I/O interrupt received
mbed_official 235:685d5f11838f 663 * @arg SDIO_FLAG_CEATAEND: CE-ATA command completion signal received for CMD61
mbed_official 235:685d5f11838f 664 * @retval The new state of SDIO_FLAG (SET or RESET).
mbed_official 235:685d5f11838f 665 */
mbed_official 235:685d5f11838f 666 #define __SDIO_GET_FLAG(__INSTANCE__, __FLAG__) (((__INSTANCE__)->STA &(__FLAG__)) != RESET)
mbed_official 235:685d5f11838f 667
mbed_official 235:685d5f11838f 668
mbed_official 235:685d5f11838f 669 /**
mbed_official 235:685d5f11838f 670 * @brief Clears the SDIO pending flags.
mbed_official 235:685d5f11838f 671 * @param __INSTANCE__ : Pointer to SDIO register base
mbed_official 235:685d5f11838f 672 * @param __FLAG__: specifies the flag to clear.
mbed_official 235:685d5f11838f 673 * This parameter can be one or a combination of the following values:
mbed_official 235:685d5f11838f 674 * @arg SDIO_FLAG_CCRCFAIL: Command response received (CRC check failed)
mbed_official 235:685d5f11838f 675 * @arg SDIO_FLAG_DCRCFAIL: Data block sent/received (CRC check failed)
mbed_official 235:685d5f11838f 676 * @arg SDIO_FLAG_CTIMEOUT: Command response timeout
mbed_official 235:685d5f11838f 677 * @arg SDIO_FLAG_DTIMEOUT: Data timeout
mbed_official 235:685d5f11838f 678 * @arg SDIO_FLAG_TXUNDERR: Transmit FIFO underrun error
mbed_official 235:685d5f11838f 679 * @arg SDIO_FLAG_RXOVERR: Received FIFO overrun error
mbed_official 235:685d5f11838f 680 * @arg SDIO_FLAG_CMDREND: Command response received (CRC check passed)
mbed_official 235:685d5f11838f 681 * @arg SDIO_FLAG_CMDSENT: Command sent (no response required)
mbed_official 235:685d5f11838f 682 * @arg SDIO_FLAG_DATAEND: Data end (data counter, SDIDCOUNT, is zero)
mbed_official 235:685d5f11838f 683 * @arg SDIO_FLAG_STBITERR: Start bit not detected on all data signals in wide bus mode
mbed_official 235:685d5f11838f 684 * @arg SDIO_FLAG_DBCKEND: Data block sent/received (CRC check passed)
mbed_official 235:685d5f11838f 685 * @arg SDIO_FLAG_SDIOIT: SD I/O interrupt received
mbed_official 235:685d5f11838f 686 * @arg SDIO_FLAG_CEATAEND: CE-ATA command completion signal received for CMD61
mbed_official 235:685d5f11838f 687 * @retval None
mbed_official 235:685d5f11838f 688 */
mbed_official 235:685d5f11838f 689 #define __SDIO_CLEAR_FLAG(__INSTANCE__, __FLAG__) ((__INSTANCE__)->ICR = (__FLAG__))
mbed_official 235:685d5f11838f 690
mbed_official 235:685d5f11838f 691 /**
mbed_official 235:685d5f11838f 692 * @brief Checks whether the specified SDIO interrupt has occurred or not.
mbed_official 235:685d5f11838f 693 * @param __INSTANCE__ : Pointer to SDIO register base
mbed_official 235:685d5f11838f 694 * @param __INTERRUPT__: specifies the SDIO interrupt source to check.
mbed_official 235:685d5f11838f 695 * This parameter can be one of the following values:
mbed_official 235:685d5f11838f 696 * @arg SDIO_IT_CCRCFAIL: Command response received (CRC check failed) interrupt
mbed_official 235:685d5f11838f 697 * @arg SDIO_IT_DCRCFAIL: Data block sent/received (CRC check failed) interrupt
mbed_official 235:685d5f11838f 698 * @arg SDIO_IT_CTIMEOUT: Command response timeout interrupt
mbed_official 235:685d5f11838f 699 * @arg SDIO_IT_DTIMEOUT: Data timeout interrupt
mbed_official 235:685d5f11838f 700 * @arg SDIO_IT_TXUNDERR: Transmit FIFO underrun error interrupt
mbed_official 235:685d5f11838f 701 * @arg SDIO_IT_RXOVERR: Received FIFO overrun error interrupt
mbed_official 235:685d5f11838f 702 * @arg SDIO_IT_CMDREND: Command response received (CRC check passed) interrupt
mbed_official 235:685d5f11838f 703 * @arg SDIO_IT_CMDSENT: Command sent (no response required) interrupt
mbed_official 235:685d5f11838f 704 * @arg SDIO_IT_DATAEND: Data end (data counter, SDIDCOUNT, is zero) interrupt
mbed_official 235:685d5f11838f 705 * @arg SDIO_IT_STBITERR: Start bit not detected on all data signals in wide
mbed_official 235:685d5f11838f 706 * bus mode interrupt
mbed_official 235:685d5f11838f 707 * @arg SDIO_IT_DBCKEND: Data block sent/received (CRC check passed) interrupt
mbed_official 235:685d5f11838f 708 * @arg SDIO_IT_CMDACT: Command transfer in progress interrupt
mbed_official 235:685d5f11838f 709 * @arg SDIO_IT_TXACT: Data transmit in progress interrupt
mbed_official 235:685d5f11838f 710 * @arg SDIO_IT_RXACT: Data receive in progress interrupt
mbed_official 235:685d5f11838f 711 * @arg SDIO_IT_TXFIFOHE: Transmit FIFO Half Empty interrupt
mbed_official 235:685d5f11838f 712 * @arg SDIO_IT_RXFIFOHF: Receive FIFO Half Full interrupt
mbed_official 235:685d5f11838f 713 * @arg SDIO_IT_TXFIFOF: Transmit FIFO full interrupt
mbed_official 235:685d5f11838f 714 * @arg SDIO_IT_RXFIFOF: Receive FIFO full interrupt
mbed_official 235:685d5f11838f 715 * @arg SDIO_IT_TXFIFOE: Transmit FIFO empty interrupt
mbed_official 235:685d5f11838f 716 * @arg SDIO_IT_RXFIFOE: Receive FIFO empty interrupt
mbed_official 235:685d5f11838f 717 * @arg SDIO_IT_TXDAVL: Data available in transmit FIFO interrupt
mbed_official 235:685d5f11838f 718 * @arg SDIO_IT_RXDAVL: Data available in receive FIFO interrupt
mbed_official 235:685d5f11838f 719 * @arg SDIO_IT_SDIOIT: SD I/O interrupt received interrupt
mbed_official 235:685d5f11838f 720 * @arg SDIO_IT_CEATAEND: CE-ATA command completion signal received for CMD61 interrupt
mbed_official 235:685d5f11838f 721 * @retval The new state of SDIO_IT (SET or RESET).
mbed_official 235:685d5f11838f 722 */
mbed_official 235:685d5f11838f 723 #define __SDIO_GET_IT (__INSTANCE__, __INTERRUPT__) (((__INSTANCE__)->STA &(__INTERRUPT__)) == (__INTERRUPT__))
mbed_official 235:685d5f11838f 724
mbed_official 235:685d5f11838f 725 /**
mbed_official 235:685d5f11838f 726 * @brief Clears the SDIO's interrupt pending bits.
mbed_official 235:685d5f11838f 727 * @param __INSTANCE__ : Pointer to SDIO register base
mbed_official 235:685d5f11838f 728 * @param __INTERRUPT__: specifies the interrupt pending bit to clear.
mbed_official 235:685d5f11838f 729 * This parameter can be one or a combination of the following values:
mbed_official 235:685d5f11838f 730 * @arg SDIO_IT_CCRCFAIL: Command response received (CRC check failed) interrupt
mbed_official 235:685d5f11838f 731 * @arg SDIO_IT_DCRCFAIL: Data block sent/received (CRC check failed) interrupt
mbed_official 235:685d5f11838f 732 * @arg SDIO_IT_CTIMEOUT: Command response timeout interrupt
mbed_official 235:685d5f11838f 733 * @arg SDIO_IT_DTIMEOUT: Data timeout interrupt
mbed_official 235:685d5f11838f 734 * @arg SDIO_IT_TXUNDERR: Transmit FIFO underrun error interrupt
mbed_official 235:685d5f11838f 735 * @arg SDIO_IT_RXOVERR: Received FIFO overrun error interrupt
mbed_official 235:685d5f11838f 736 * @arg SDIO_IT_CMDREND: Command response received (CRC check passed) interrupt
mbed_official 235:685d5f11838f 737 * @arg SDIO_IT_CMDSENT: Command sent (no response required) interrupt
mbed_official 235:685d5f11838f 738 * @arg SDIO_IT_DATAEND: Data end (data counter, SDIO_DCOUNT, is zero) interrupt
mbed_official 235:685d5f11838f 739 * @arg SDIO_IT_STBITERR: Start bit not detected on all data signals in wide
mbed_official 235:685d5f11838f 740 * bus mode interrupt
mbed_official 235:685d5f11838f 741 * @arg SDIO_IT_SDIOIT: SD I/O interrupt received interrupt
mbed_official 235:685d5f11838f 742 * @arg SDIO_IT_CEATAEND: CE-ATA command completion signal received for CMD61
mbed_official 235:685d5f11838f 743 * @retval None
mbed_official 235:685d5f11838f 744 */
mbed_official 235:685d5f11838f 745 #define __SDIO_CLEAR_IT(__INSTANCE__, __INTERRUPT__) ((__INSTANCE__)->ICR = (__INTERRUPT__))
mbed_official 235:685d5f11838f 746
mbed_official 235:685d5f11838f 747 /**
mbed_official 235:685d5f11838f 748 * @brief Enable Start the SD I/O Read Wait operation.
mbed_official 235:685d5f11838f 749 * @retval None
mbed_official 235:685d5f11838f 750 */
mbed_official 235:685d5f11838f 751 #define __SDIO_START_READWAIT_ENABLE() (*(__IO uint32_t *) DCTRL_RWSTART_BB = ENABLE)
mbed_official 235:685d5f11838f 752
mbed_official 235:685d5f11838f 753 /**
mbed_official 235:685d5f11838f 754 * @brief Disable Start the SD I/O Read Wait operations.
mbed_official 235:685d5f11838f 755 * @retval None
mbed_official 235:685d5f11838f 756 */
mbed_official 235:685d5f11838f 757 #define __SDIO_START_READWAIT_DISABLE() (*(__IO uint32_t *) DCTRL_RWSTART_BB = DISABLE)
mbed_official 235:685d5f11838f 758
mbed_official 235:685d5f11838f 759 /**
mbed_official 235:685d5f11838f 760 * @brief Enable Start the SD I/O Read Wait operation.
mbed_official 235:685d5f11838f 761 * @retval None
mbed_official 235:685d5f11838f 762 */
mbed_official 235:685d5f11838f 763 #define __SDIO_STOP_READWAIT_ENABLE() (*(__IO uint32_t *) DCTRL_RWSTOP_BB = ENABLE)
mbed_official 235:685d5f11838f 764
mbed_official 235:685d5f11838f 765 /**
mbed_official 235:685d5f11838f 766 * @brief Disable Stop the SD I/O Read Wait operations.
mbed_official 235:685d5f11838f 767 * @retval None
mbed_official 235:685d5f11838f 768 */
mbed_official 235:685d5f11838f 769 #define __SDIO_STOP_READWAIT_DISABLE() (*(__IO uint32_t *) DCTRL_RWSTOP_BB = DISABLE)
mbed_official 235:685d5f11838f 770
mbed_official 235:685d5f11838f 771 /**
mbed_official 235:685d5f11838f 772 * @brief Enable the SD I/O Mode Operation.
mbed_official 235:685d5f11838f 773 * @retval None
mbed_official 235:685d5f11838f 774 */
mbed_official 235:685d5f11838f 775 #define __SDIO_OPERATION_ENABLE() (*(__IO uint32_t *) DCTRL_SDIOEN_BB = ENABLE)
mbed_official 235:685d5f11838f 776
mbed_official 235:685d5f11838f 777 /**
mbed_official 235:685d5f11838f 778 * @brief Disable the SD I/O Mode Operation.
mbed_official 235:685d5f11838f 779 * @retval None
mbed_official 235:685d5f11838f 780 */
mbed_official 235:685d5f11838f 781 #define __SDIO_OPERATION_DISABLE() (*(__IO uint32_t *) DCTRL_SDIOEN_BB = DISABLE)
mbed_official 235:685d5f11838f 782
mbed_official 235:685d5f11838f 783 /**
mbed_official 235:685d5f11838f 784 * @brief Enable the SD I/O Suspend command sending.
mbed_official 235:685d5f11838f 785 * @retval None
mbed_official 235:685d5f11838f 786 */
mbed_official 235:685d5f11838f 787 #define __SDIO_SUSPEND_CMD_ENABLE() (*(__IO uint32_t *) CMD_SDIOSUSPEND_BB = ENABLE)
mbed_official 235:685d5f11838f 788
mbed_official 235:685d5f11838f 789 /**
mbed_official 235:685d5f11838f 790 * @brief Disable the SD I/O Suspend command sending.
mbed_official 235:685d5f11838f 791 * @retval None
mbed_official 235:685d5f11838f 792 */
mbed_official 235:685d5f11838f 793 #define __SDIO_SUSPEND_CMD_DISABLE() (*(__IO uint32_t *) CMD_SDIOSUSPEND_BB = DISABLE)
mbed_official 532:fe11edbda85c 794
mbed_official 532:fe11edbda85c 795 #if !defined(STM32F446xx)
mbed_official 235:685d5f11838f 796 /**
mbed_official 235:685d5f11838f 797 * @brief Enable the command completion signal.
mbed_official 235:685d5f11838f 798 * @retval None
mbed_official 235:685d5f11838f 799 */
mbed_official 235:685d5f11838f 800 #define __SDIO_CEATA_CMD_COMPLETION_ENABLE() (*(__IO uint32_t *) CMD_ENCMDCOMPL_BB = ENABLE)
mbed_official 235:685d5f11838f 801
mbed_official 235:685d5f11838f 802 /**
mbed_official 235:685d5f11838f 803 * @brief Disable the command completion signal.
mbed_official 235:685d5f11838f 804 * @retval None
mbed_official 235:685d5f11838f 805 */
mbed_official 235:685d5f11838f 806 #define __SDIO_CEATA_CMD_COMPLETION_DISABLE() (*(__IO uint32_t *) CMD_ENCMDCOMPL_BB = DISABLE)
mbed_official 235:685d5f11838f 807
mbed_official 235:685d5f11838f 808 /**
mbed_official 235:685d5f11838f 809 * @brief Enable the CE-ATA interrupt.
mbed_official 235:685d5f11838f 810 * @retval None
mbed_official 235:685d5f11838f 811 */
mbed_official 235:685d5f11838f 812 #define __SDIO_CEATA_ENABLE_IT() (*(__IO uint32_t *) CMD_NIEN_BB = (uint32_t)0)
mbed_official 235:685d5f11838f 813
mbed_official 235:685d5f11838f 814 /**
mbed_official 235:685d5f11838f 815 * @brief Disable the CE-ATA interrupt.
mbed_official 235:685d5f11838f 816 * @retval None
mbed_official 235:685d5f11838f 817 */
mbed_official 235:685d5f11838f 818 #define __SDIO_CEATA_DISABLE_IT() (*(__IO uint32_t *) CMD_NIEN_BB = (uint32_t)1)
mbed_official 235:685d5f11838f 819
mbed_official 235:685d5f11838f 820 /**
mbed_official 235:685d5f11838f 821 * @brief Enable send CE-ATA command (CMD61).
mbed_official 235:685d5f11838f 822 * @retval None
mbed_official 235:685d5f11838f 823 */
mbed_official 235:685d5f11838f 824 #define __SDIO_CEATA_SENDCMD_ENABLE() (*(__IO uint32_t *) CMD_ATACMD_BB = ENABLE)
mbed_official 235:685d5f11838f 825
mbed_official 235:685d5f11838f 826 /**
mbed_official 235:685d5f11838f 827 * @brief Disable send CE-ATA command (CMD61).
mbed_official 235:685d5f11838f 828 * @retval None
mbed_official 235:685d5f11838f 829 */
mbed_official 235:685d5f11838f 830 #define __SDIO_CEATA_SENDCMD_DISABLE() (*(__IO uint32_t *) CMD_ATACMD_BB = DISABLE)
mbed_official 532:fe11edbda85c 831 #endif /* !defined(STM32F446xx) */
mbed_official 235:685d5f11838f 832 /**
mbed_official 235:685d5f11838f 833 * @}
mbed_official 235:685d5f11838f 834 */
mbed_official 235:685d5f11838f 835
mbed_official 235:685d5f11838f 836 /**
mbed_official 235:685d5f11838f 837 * @}
mbed_official 235:685d5f11838f 838 */
mbed_official 235:685d5f11838f 839
mbed_official 235:685d5f11838f 840 /* Exported functions --------------------------------------------------------*/
mbed_official 532:fe11edbda85c 841 /** @addtogroup SDMMC_LL_Exported_Functions
mbed_official 235:685d5f11838f 842 * @{
mbed_official 235:685d5f11838f 843 */
mbed_official 235:685d5f11838f 844
mbed_official 235:685d5f11838f 845 /* Initialization/de-initialization functions **********************************/
mbed_official 532:fe11edbda85c 846 /** @addtogroup HAL_SDMMC_LL_Group1
mbed_official 235:685d5f11838f 847 * @{
mbed_official 235:685d5f11838f 848 */
mbed_official 235:685d5f11838f 849 HAL_StatusTypeDef SDIO_Init(SDIO_TypeDef *SDIOx, SDIO_InitTypeDef Init);
mbed_official 235:685d5f11838f 850 /**
mbed_official 235:685d5f11838f 851 * @}
mbed_official 235:685d5f11838f 852 */
mbed_official 235:685d5f11838f 853
mbed_official 235:685d5f11838f 854 /* I/O operation functions *****************************************************/
mbed_official 532:fe11edbda85c 855 /** @addtogroup HAL_SDMMC_LL_Group2
mbed_official 235:685d5f11838f 856 * @{
mbed_official 235:685d5f11838f 857 */
mbed_official 235:685d5f11838f 858 /* Blocking mode: Polling */
mbed_official 235:685d5f11838f 859 uint32_t SDIO_ReadFIFO(SDIO_TypeDef *SDIOx);
mbed_official 235:685d5f11838f 860 HAL_StatusTypeDef SDIO_WriteFIFO(SDIO_TypeDef *SDIOx, uint32_t *pWriteData);
mbed_official 235:685d5f11838f 861 /**
mbed_official 235:685d5f11838f 862 * @}
mbed_official 235:685d5f11838f 863 */
mbed_official 235:685d5f11838f 864
mbed_official 235:685d5f11838f 865 /* Peripheral Control functions ************************************************/
mbed_official 532:fe11edbda85c 866 /** @addtogroup HAL_SDMMC_LL_Group3
mbed_official 235:685d5f11838f 867 * @{
mbed_official 235:685d5f11838f 868 */
mbed_official 235:685d5f11838f 869 HAL_StatusTypeDef SDIO_PowerState_ON(SDIO_TypeDef *SDIOx);
mbed_official 235:685d5f11838f 870 HAL_StatusTypeDef SDIO_PowerState_OFF(SDIO_TypeDef *SDIOx);
mbed_official 235:685d5f11838f 871 uint32_t SDIO_GetPowerState(SDIO_TypeDef *SDIOx);
mbed_official 235:685d5f11838f 872
mbed_official 235:685d5f11838f 873 /* Command path state machine (CPSM) management functions */
mbed_official 235:685d5f11838f 874 HAL_StatusTypeDef SDIO_SendCommand(SDIO_TypeDef *SDIOx, SDIO_CmdInitTypeDef *SDIO_CmdInitStruct);
mbed_official 235:685d5f11838f 875 uint8_t SDIO_GetCommandResponse(SDIO_TypeDef *SDIOx);
mbed_official 235:685d5f11838f 876 uint32_t SDIO_GetResponse(uint32_t SDIO_RESP);
mbed_official 235:685d5f11838f 877
mbed_official 235:685d5f11838f 878 /* Data path state machine (DPSM) management functions */
mbed_official 235:685d5f11838f 879 HAL_StatusTypeDef SDIO_DataConfig(SDIO_TypeDef *SDIOx, SDIO_DataInitTypeDef* SDIO_DataInitStruct);
mbed_official 235:685d5f11838f 880 uint32_t SDIO_GetDataCounter(SDIO_TypeDef *SDIOx);
mbed_official 235:685d5f11838f 881 uint32_t SDIO_GetFIFOCount(SDIO_TypeDef *SDIOx);
mbed_official 235:685d5f11838f 882
mbed_official 235:685d5f11838f 883 /* SDIO IO Cards mode management functions */
mbed_official 235:685d5f11838f 884 HAL_StatusTypeDef SDIO_SetSDIOReadWaitMode(uint32_t SDIO_ReadWaitMode);
mbed_official 235:685d5f11838f 885
mbed_official 235:685d5f11838f 886 /**
mbed_official 235:685d5f11838f 887 * @}
mbed_official 235:685d5f11838f 888 */
mbed_official 235:685d5f11838f 889
mbed_official 235:685d5f11838f 890 /**
mbed_official 235:685d5f11838f 891 * @}
mbed_official 235:685d5f11838f 892 */
mbed_official 235:685d5f11838f 893
mbed_official 235:685d5f11838f 894 /**
mbed_official 235:685d5f11838f 895 * @}
mbed_official 235:685d5f11838f 896 */
mbed_official 235:685d5f11838f 897
mbed_official 235:685d5f11838f 898 /**
mbed_official 235:685d5f11838f 899 * @}
mbed_official 235:685d5f11838f 900 */
mbed_official 235:685d5f11838f 901
mbed_official 235:685d5f11838f 902 #ifdef __cplusplus
mbed_official 235:685d5f11838f 903 }
mbed_official 235:685d5f11838f 904 #endif
mbed_official 235:685d5f11838f 905
mbed_official 235:685d5f11838f 906 #endif /* __STM32F4xx_LL_SDMMC_H */
mbed_official 235:685d5f11838f 907
mbed_official 235:685d5f11838f 908 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/