1 /**
2   ******************************************************************************
3   * @file    stm32h7xx_hal_mmc_ex.h
4   * @author  MCD Application Team
5   * @brief   Header file of SD HAL extended module.
6   ******************************************************************************
7   * @attention
8   *
9   * Copyright (c) 2017 STMicroelectronics.
10   * All rights reserved.
11   *
12   * This software is licensed under terms that can be found in the LICENSE file
13   * in the root directory of this software component.
14   * If no LICENSE file comes with this software, it is provided AS-IS.
15   *
16   ******************************************************************************
17   */
18 
19 /* Define to prevent recursive inclusion -------------------------------------*/
20 #ifndef STM32H7xx_HAL_MMC_EX_H
21 #define STM32H7xx_HAL_MMC_EX_H
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 /* Includes ------------------------------------------------------------------*/
28 #include "stm32h7xx_hal_def.h"
29 
30 /** @addtogroup STM32H7xx_HAL_Driver
31   * @{
32   */
33 
34 /** @addtogroup MMCEx
35   * @brief SD HAL extended module driver
36   * @{
37   */
38 
39 /* Exported types ------------------------------------------------------------*/
40 /** @defgroup MMCEx_Exported_Types MMCEx Exported Types
41   * @{
42   */
43 
44 /** @defgroup MMCEx_Exported_Types_Group1 MMC Internal DMA Buffer structure
45   * @{
46   */
47 typedef enum
48 {
49   MMC_DMA_BUFFER0      = 0x00U,    /*!< selects MMC internal DMA Buffer 0     */
50   MMC_DMA_BUFFER1      = 0x01U,    /*!< selects MMC internal DMA Buffer 1     */
51 
52 } HAL_MMCEx_DMABuffer_MemoryTypeDef;
53 
54 
55 /**
56   * @}
57   */
58 
59 /**
60   * @}
61   */
62 /* Exported functions --------------------------------------------------------*/
63 /** @defgroup MMCEx_Exported_Functions MMCEx Exported Functions
64   * @{
65   */
66 
67 /** @defgroup MMCEx_Exported_Functions_Group1 MultiBuffer functions
68   * @{
69   */
70 HAL_StatusTypeDef HAL_MMCEx_ConfigDMAMultiBuffer(MMC_HandleTypeDef *hmmc, uint32_t *pDataBuffer0,
71                                                  uint32_t *pDataBuffer1, uint32_t BufferSize);
72 HAL_StatusTypeDef HAL_MMCEx_ReadBlocksDMAMultiBuffer(MMC_HandleTypeDef *hmmc, uint32_t BlockAdd,
73                                                      uint32_t NumberOfBlocks);
74 HAL_StatusTypeDef HAL_MMCEx_WriteBlocksDMAMultiBuffer(MMC_HandleTypeDef *hmmc, uint32_t BlockAdd,
75                                                       uint32_t NumberOfBlocks);
76 HAL_StatusTypeDef HAL_MMCEx_ChangeDMABuffer(MMC_HandleTypeDef *hmmc, HAL_MMCEx_DMABuffer_MemoryTypeDef Buffer,
77                                             uint32_t *pDataBuffer);
78 
79 void HAL_MMCEx_Read_DMADoubleBuf0CpltCallback(MMC_HandleTypeDef *hmmc);
80 void HAL_MMCEx_Read_DMADoubleBuf1CpltCallback(MMC_HandleTypeDef *hmmc);
81 void HAL_MMCEx_Write_DMADoubleBuf0CpltCallback(MMC_HandleTypeDef *hmmc);
82 void HAL_MMCEx_Write_DMADoubleBuf1CpltCallback(MMC_HandleTypeDef *hmmc);
83 
84 /**
85   * @}
86   */
87 
88 /**
89   * @}
90   */
91 
92 /* Private types -------------------------------------------------------------*/
93 /* Private defines -----------------------------------------------------------*/
94 /* Private variables ---------------------------------------------------------*/
95 /* Private constants ---------------------------------------------------------*/
96 /* Private macros ------------------------------------------------------------*/
97 /* Private functions prototypes ----------------------------------------------*/
98 /* Private functions ---------------------------------------------------------*/
99 
100 /**
101   * @}
102   */
103 
104 /**
105   * @}
106   */
107 #ifdef __cplusplus
108 }
109 #endif
110 
111 
112 #endif /* STM32H7xx_HAL_MMCEx_H */
113