STM32H735xx HAL User Manual
stm32h7xx_ll_mdma.h
Go to the documentation of this file.
00001 /**
00002   ******************************************************************************
00003   * @file    stm32h7xx_ll_mdma.h
00004   * @author  MCD Application Team
00005   * @brief   Header file of MDMA LL module.
00006   ******************************************************************************
00007   * @attention
00008   *
00009   * Copyright (c) 2017 STMicroelectronics.
00010   * All rights reserved.
00011   *
00012   * This software is licensed under terms that can be found in the LICENSE file
00013   * in the root directory of this software component.
00014   * If no LICENSE file comes with this software, it is provided AS-IS.
00015   *
00016   ******************************************************************************
00017   */
00018 
00019 /* Define to prevent recursive inclusion -------------------------------------*/
00020 #ifndef STM32H7xx_LL_MDMA_H
00021 #define STM32H7xx_LL_MDMA_H
00022 
00023 #ifdef __cplusplus
00024 extern "C" {
00025 #endif
00026 
00027 /* Includes ------------------------------------------------------------------*/
00028 #include "stm32h7xx.h"
00029 
00030 /** @addtogroup STM32H7xx_LL_Driver
00031   * @{
00032   */
00033 
00034 #if defined (MDMA)
00035 
00036 /** @defgroup MDMA_LL MDMA
00037   * @{
00038   */
00039 
00040 /* Private types -------------------------------------------------------------*/
00041 /* Private variables ---------------------------------------------------------*/
00042 /** @defgroup MDMA_LL_Private_Variables MDMA Private Variables
00043   * @{
00044   */
00045 /* Array used to get the MDMA channel register offset versus channel index LL_MDMA_CHANNEL_x */
00046 static const uint32_t LL_MDMA_CH_OFFSET_TAB[] =
00047 {
00048   (uint32_t)(MDMA_Channel0_BASE - MDMA_BASE),
00049   (uint32_t)(MDMA_Channel1_BASE - MDMA_BASE),
00050   (uint32_t)(MDMA_Channel2_BASE - MDMA_BASE),
00051   (uint32_t)(MDMA_Channel3_BASE - MDMA_BASE),
00052   (uint32_t)(MDMA_Channel4_BASE - MDMA_BASE),
00053   (uint32_t)(MDMA_Channel5_BASE - MDMA_BASE),
00054   (uint32_t)(MDMA_Channel6_BASE - MDMA_BASE),
00055   (uint32_t)(MDMA_Channel7_BASE - MDMA_BASE),
00056   (uint32_t)(MDMA_Channel8_BASE - MDMA_BASE),
00057   (uint32_t)(MDMA_Channel9_BASE - MDMA_BASE),
00058   (uint32_t)(MDMA_Channel10_BASE - MDMA_BASE),
00059   (uint32_t)(MDMA_Channel11_BASE - MDMA_BASE),
00060   (uint32_t)(MDMA_Channel12_BASE - MDMA_BASE),
00061   (uint32_t)(MDMA_Channel13_BASE - MDMA_BASE),
00062   (uint32_t)(MDMA_Channel14_BASE - MDMA_BASE),
00063   (uint32_t)(MDMA_Channel15_BASE - MDMA_BASE)
00064 };
00065 
00066 /**
00067   * @}
00068   */
00069 
00070 /* Private constants ---------------------------------------------------------*/
00071 /** @defgroup MDMA_LL_Private_Constants MDMA Private Constants
00072   * @{
00073   */
00074 /**
00075   * @}
00076   */
00077 
00078 
00079 /* Private macros ------------------------------------------------------------*/
00080 /* Exported types ------------------------------------------------------------*/
00081 #if defined(USE_FULL_LL_DRIVER)
00082 /** @defgroup MDMA_LL_ES_INIT MDMA Exported Init structure
00083   * @{
00084   */
00085 typedef struct
00086 {
00087   uint32_t SrcAddress;            /*!< Specifies the transfer source address
00088                                        This parameter must be a value between Min_Data = 0 and Max_Data = 0xFFFFFFFF.
00089                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_SetSourceAddress() */
00090 
00091   uint32_t DstAddress;            /*!< Specifies the transfer destination address
00092                                        This parameter must be a value between Min_Data = 0 and Max_Data = 0xFFFFFFFF.
00093                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_SetDestinationAddress() */
00094 
00095   uint32_t RequestMode;           /*!< Specifies the request mode Hardware or Software.
00096                                        This parameter can be a value of @ref MDMA_LL_EC_REQUEST_MODE
00097                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_SetRequestMode() */
00098 
00099   uint32_t TriggerMode;           /*!< Specifies the transfer trigger mode.
00100                                        This parameter can be a value of @ref MDMA_LL_EC_TRIGGER_MODE
00101                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_SetTriggerMode() */
00102 
00103   uint32_t HWTrigger;             /*!< Specifies the HW transfer trigger used when RequestMode is HW.
00104                                        This parameter can be a value of @ref MDMA_LL_EC_HW_TRIGGER_SELCTION
00105                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_SetHWTrigger() */
00106 
00107   uint32_t BlockDataLength;       /*!< Specifies the length of a block transfer in bytes
00108                                        This parameter must be a value between Min_Data = 0 and Max_Data = 0x00010000.
00109                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_SetBlkDataLength() */
00110 
00111   uint32_t BlockRepeatCount;      /*!< Specifies the Block Repeat Count
00112                                        This parameter must be a value between Min_Data = 0 and Max_Data = 0x00000FFF.
00113                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_SetBlkRepeatCount() */
00114 
00115   uint32_t BlockRepeatDestAddrUpdateMode; /*!< Specifies the block repeat destination address update mode.
00116                                                This parameter can be a value of @ref MDMA_LL_EC_BLK_RPT_DEST_ADDR_UPDATE_MODE
00117                                                This feature can be modified afterwards using unitary function @ref LL_MDMA_SetBlkRepeatDestAddrUpdate() */
00118 
00119   uint32_t BlockRepeatSrcAddrUpdateMode;  /*!< Specifies the block repeat source address update mode.
00120                                                This parameter can be a value of @ref MDMA_LL_EC_SRC_BLK_RPT_ADDR_UPDATE_MODE
00121                                                This feature can be modified afterwards using unitary function @ref LL_MDMA_SetBlkRepeatSrcAddrUpdate() */
00122 
00123   uint32_t BlockRepeatDestAddrUpdateVal;  /*!< Specifies the block repeat destination address update value.
00124                                                This parameter can be a value Between 0 to 0x0000FFFF
00125                                                This feature can be modified afterwards using unitary function @ref LL_MDMA_SetBlkRptDestAddrUpdateValue() */
00126 
00127   uint32_t BlockRepeatSrcAddrUpdateVal;   /*!< Specifies the block repeat source address update value.
00128                                                This parameter can be a value Between 0 to 0x0000FFFF
00129                                                This feature can be modified afterwards using unitary function @ref LL_MDMA_SetBlkRptSrcAddrUpdateValue() */
00130 
00131   uint32_t LinkAddress;                   /*!< Specifies the linked list next transfer node address.
00132                                                This parameter can be a value Between 0 to 0xFFFFFFFF
00133                                                This feature can be modified afterwards using unitary function @ref LL_MDMA_SetLinkAddress() */
00134 
00135   uint32_t WordEndianess;         /*!< Specifies the Word transfer endianness
00136                                        This parameter can be a value of @ref MDMA_LL_EC_WORD_ENDIANNESS.
00137                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_SetWordEndianness() */
00138 
00139   uint32_t HalfWordEndianess;     /*!< Specifies the Half Word transfer endianness
00140                                        This parameter can be a value of @ref MDMA_LL_EC_HALFWORD_ENDIANNESS.
00141                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_SetHalfWordEndianness() */
00142 
00143   uint32_t ByteEndianess;         /*!< Specifies the Byte transfer endianness
00144                                        This parameter can be a value of @ref MDMA_LL_EC_BYTE_ENDIANNESS.
00145                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_SetByteEndianness() */
00146 
00147   uint32_t Priority;              /*!< Specifies the channel priority level.
00148                                        This parameter can be a value of @ref MDMA_LL_EC_PRIORITY
00149                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_SetChannelPriorityLevel() */
00150 
00151   uint32_t BufferableWriteMode;   /*!< Specifies the transfer Bufferable Write Mode.
00152                                        This parameter can be a value of @ref MDMA_LL_EC_BUFF_WRITE_MODE
00153                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_EnableBufferableWrMode()
00154                                        and LL_MDMA_DisableBufferableWrMode */
00155 
00156 
00157   uint32_t PaddingAlignment;     /*!< Specifies the transfer Padding and Alignment.
00158                                        This parameter can be a value of @ref MDMA_LL_EC_PADDING_ALIGNMENT_MODE
00159                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_SetPaddingAlignment() */
00160 
00161   uint32_t PackMode;              /*!< Specifies the transfer Packing enabled or disabled.
00162                                        This parameter can be a value of @ref MDMA_LL_EC_PACKING_MODE
00163                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_EnablePacking()
00164                                        and LL_MDMA_DisablePacking() */
00165 
00166   uint32_t BufferTransferLength;  /*!< Specifies the length of a buffer transfer in bytes
00167                                        This parameter must be a value between Min_Data = 0 and Max_Data = 0x0000007F.
00168                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_SetBufferTransferLength() */
00169 
00170   uint32_t DestBurst;             /*!< Specifies the destination burst size.
00171                                        This parameter can be a value of @ref MDMA_LL_EC_DEST_BURST
00172                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_SetDestinationBurstSize() */
00173 
00174   uint32_t SrctBurst;             /*!< Specifies the source burst size.
00175                                        This parameter can be a value of @ref MDMA_LL_EC_SRC_BURST
00176                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_SetSourceBurstSize() */
00177 
00178   uint32_t DestIncSize;           /*!< Specifies the destination increment size.
00179                                        This parameter can be a value of @ref MDMA_LL_EC_DEST_INC_OFFSET_SIZE
00180                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_SetDestinationIncSize() */
00181 
00182   uint32_t SrcIncSize;            /*!< Specifies the source increment size.
00183                                        This parameter can be a value of @ref MDMA_LL_EC_SRC_INC_OFFSET_SIZE
00184                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_SetSourceIncSize() */
00185 
00186   uint32_t DestDataSize;          /*!< Specifies the destination data size.
00187                                        This parameter can be a value of @ref MDMA_LL_EC_DEST_DATA_SIZE
00188                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_SetDestinationDataSize() */
00189 
00190   uint32_t SrcDataSize;           /*!< Specifies the source data size.
00191                                        This parameter can be a value of @ref MDMA_LL_EC_SRC_DATA_SIZE
00192                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_SetSourceDataSize() */
00193 
00194   uint32_t DestIncMode;           /*!< Specifies the destination increment mode.
00195                                        This parameter can be a value of @ref MDMA_LL_EC_DEST_INC_MODE
00196                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_SetDestinationIncMode() */
00197 
00198   uint32_t SrcIncMode;            /*!< Specifies the source increment mode.
00199                                        This parameter can be a value of @ref MDMA_LL_EC_SRC_INC_MODE
00200                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_SetSourceIncMode() */
00201 
00202 
00203   uint32_t DestBus;               /*!< Specifies the destination transfer bus, System AXI or AHB/TCM bus.
00204                                        This parameter can be a value of @ref MDMA_LL_EC_DEST_BUS
00205                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_SetDestBusSelection() */
00206 
00207   uint32_t SrcBus;                /*!< Specifies the source transfer bus, System AXI or AHB/TCM bus.
00208                                        This parameter can be a value of @ref MDMA_LL_EC_SRC_BUS
00209                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_SetSrcBusSelection() */
00210 
00211   uint32_t MaskAddress;           /*!< Specifies the address to be updated (written) with MaskData after a request is served.
00212                                        MaskAddress and MaskData could be used to automatically clear a peripheral flag when the request is served
00213                                        This parameter can be a value Between 0 to 0xFFFFFFFF
00214                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_SetMaskAddress() */
00215 
00216   uint32_t MaskData;              /*!< Specifies the value to be written to MaskAddress after a request is served.
00217                                        MaskAddress and MaskData could be used to automatically clear a peripheral flag when the request is served
00218                                        This parameter can be a value Between 0 to 0xFFFFFFFF
00219                                        This feature can be modified afterwards using unitary function @ref LL_MDMA_SetMaskData() */
00220 
00221 } LL_MDMA_InitTypeDef;
00222 
00223 /**
00224   * @brief  LL MDMA linked list node structure definition
00225   * @note   The Linked list node allows to define a new MDMA configuration
00226   *         (CTCR ,CBNDTR ,CSAR ,CDAR ,CBRUR, CLAR, CTBR, CMAR and CMDR registers).
00227   *         When CLAR register is configured to a non NULL value , each time a transfer ends,
00228   *         a new configuration (linked list node) is automatically loaded from the address given in CLAR register.
00229   */
00230 typedef struct
00231 {
00232   __IO uint32_t CTCR;     /*!< New CTCR register configuration for the given MDMA linked list node   */
00233   __IO uint32_t CBNDTR;   /*!< New CBNDTR register configuration for the given MDMA linked list node */
00234   __IO uint32_t CSAR;     /*!< New CSAR register configuration for the given MDMA linked list node   */
00235   __IO uint32_t CDAR;     /*!< New CDAR register configuration for the given MDMA linked list node   */
00236   __IO uint32_t CBRUR;    /*!< New CBRUR register configuration for the given MDMA linked list node  */
00237   __IO uint32_t CLAR;     /*!< New CLAR register configuration for the given MDMA linked list node   */
00238   __IO uint32_t CTBR;     /*!< New CTBR register configuration for the given MDMA linked list node   */
00239   __IO uint32_t Reserved; /*!< Reserved register*/
00240   __IO uint32_t CMAR;     /*!< New CMAR register configuration for the given MDMA linked list node   */
00241   __IO uint32_t CMDR;     /*!< New CMDR register configuration for the given MDMA linked list node   */
00242 
00243 }LL_MDMA_LinkNodeTypeDef;
00244 
00245 /**
00246   * @}
00247   */
00248 #endif /*USE_FULL_LL_DRIVER*/
00249 /* Exported constants --------------------------------------------------------*/
00250 /** @defgroup MDMA_LL_Exported_Constants MDMA Exported Constants
00251   * @{
00252   */
00253 
00254 /** @defgroup MDMA_LL_EC_CHANNEL CHANNEL
00255   * @{
00256   */
00257 #define LL_MDMA_CHANNEL_0                   0x00000000U
00258 #define LL_MDMA_CHANNEL_1                   0x00000001U
00259 #define LL_MDMA_CHANNEL_2                   0x00000002U
00260 #define LL_MDMA_CHANNEL_3                   0x00000003U
00261 #define LL_MDMA_CHANNEL_4                   0x00000004U
00262 #define LL_MDMA_CHANNEL_5                   0x00000005U
00263 #define LL_MDMA_CHANNEL_6                   0x00000006U
00264 #define LL_MDMA_CHANNEL_7                   0x00000007U
00265 #define LL_MDMA_CHANNEL_8                   0x00000008U
00266 #define LL_MDMA_CHANNEL_9                   0x00000009U
00267 #define LL_MDMA_CHANNEL_10                  0x0000000AU
00268 #define LL_MDMA_CHANNEL_11                  0x0000000BU
00269 #define LL_MDMA_CHANNEL_12                  0x0000000CU
00270 #define LL_MDMA_CHANNEL_13                  0x0000000DU
00271 #define LL_MDMA_CHANNEL_14                  0x0000000EU
00272 #define LL_MDMA_CHANNEL_15                  0x0000000FU
00273 #define LL_MDMA_CHANNEL_ALL                 0xFFFF0000U
00274 /**
00275   * @}
00276   */
00277 
00278 /** @defgroup MDMA_LL_EC_WORD_ENDIANNESS Word Endianness
00279   * @{
00280   */
00281 #define LL_MDMA_WORD_ENDIANNESS_PRESERVE     0x00000000U  /*!< Little endianness preserved for words */
00282 #define LL_MDMA_WORD_ENDIANNESS_EXCHANGE     MDMA_CCR_WEX /*!< word order exchanged when destination data size is double word  */
00283 
00284 /**
00285   * @}
00286   */
00287 
00288 /** @defgroup MDMA_LL_EC_HALFWORD_ENDIANNESS Half Word Endianness
00289   * @{
00290   */
00291 #define LL_MDMA_HALFWORD_ENDIANNESS_PRESERVE     0x00000000U  /*!< Little endianness preserved for half words */
00292 #define LL_MDMA_HALFWORD_ENDIANNESS_EXCHANGE     MDMA_CCR_HEX /*!< half word order exchanged when destination data size is word or double word  */
00293 
00294 /**
00295   * @}
00296   */
00297 
00298 /** @defgroup MDMA_LL_EC_BYTE_ENDIANNESS Byte Endianness
00299   * @{
00300   */
00301 #define LL_MDMA_BYTE_ENDIANNESS_PRESERVE     0x00000000U  /*!< Little endianness preserved for bytes */
00302 #define LL_MDMA_BYTE_ENDIANNESS_EXCHANGE     MDMA_CCR_BEX /*!< byte order exchanged when destination data size is half word , word or double word  */
00303 
00304 /**
00305   * @}
00306   */
00307 
00308 /** @defgroup MDMA_LL_EC_PRIORITY Transfer Priority level
00309   * @{
00310   */
00311 #define LL_MDMA_PRIORITY_LOW               0x00000000U               /*!< Priority level : Low       */
00312 #define LL_MDMA_PRIORITY_MEDIUM            MDMA_CCR_PL_0             /*!< Priority level : Medium    */
00313 #define LL_MDMA_PRIORITY_HIGH              MDMA_CCR_PL_1             /*!< Priority level : High      */
00314 #define LL_MDMA_PRIORITY_VERYHIGH          MDMA_CCR_PL               /*!< Priority level : Very_High */
00315 /**
00316   * @}
00317   */
00318 
00319 /** @defgroup MDMA_LL_EC_BUFF_WRITE_MODE Bufferable Write Mode
00320   * @{
00321   */
00322 #define LL_MDMA_BUFF_WRITE_DISABLE         0x00000000U               /*!< destination write operation is non-bufferable */
00323 #define LL_MDMA_BUFF_WRITE_ENABLE          MDMA_CTCR_BWM             /*!< destination write operation is bufferable     */
00324 /**
00325   * @}
00326   */
00327 
00328 /** @defgroup MDMA_LL_EC_REQUEST_MODE Request Mode
00329   * @{
00330   */
00331 #define LL_MDMA_REQUEST_MODE_HW            0x00000000U               /*!< Request mode is Hardware    */
00332 #define LL_MDMA_REQUEST_MODE_SW            MDMA_CTCR_SWRM            /*!< Request mode is Software    */
00333 /**
00334   * @}
00335   */
00336 
00337 /** @defgroup MDMA_LL_EC_TRIGGER_MODE Trigger Mode
00338   * @{
00339   */
00340 #define LL_MDMA_BUFFER_TRANSFER          0x00000000U               /*!< Each MDMA request (SW or HW) triggers a buffer transfer */
00341 #define LL_MDMA_BLOCK_TRANSFER           MDMA_CTCR_TRGM_0          /*!< Each MDMA request (SW or HW) triggers a block transfer */
00342 #define LL_MDMA_REPEAT_BLOCK_TRANSFER    MDMA_CTCR_TRGM_1          /*!< Each MDMA request (SW or HW) triggers a repeated block transfer */
00343 #define LL_MDMA_FULL_TRANSFER            MDMA_CTCR_TRGM            /*!< Each MDMA request (SW or HW) triggers a Full transfer or a linked list transfer if any */
00344 /**
00345   * @}
00346   */
00347 
00348 /** @defgroup MDMA_LL_EC_PADDING_ALIGNMENT_MODE Padding Alignment Mode
00349   * @{
00350   */
00351 #define LL_MDMA_DATAALIGN_RIGHT          0x00000000U              /*!< Right Aligned, padded w/ 0s (default) */
00352 #define LL_MDMA_DATAALIGN_RIGHT_SIGNED   MDMA_CTCR_PAM_0          /*!< Right Aligned, Sign extended ,
00353                                                                        Note : this mode is allowed only if the Source data size smaller than Destination data size  */
00354 #define LL_MDMA_DATAALIGN_LEFT           MDMA_CTCR_PAM_1          /*!< Left Aligned (padded with 0s) */
00355 /**
00356   * @}
00357   */
00358 
00359 /** @defgroup MDMA_LL_EC_PACKING_MODE Transfer Packing
00360   * @{
00361   */
00362 #define LL_MDMA_PACK_DISABLE          0x00000000U              /*!< Packing disabled */
00363 #define LL_MDMA_PACK_ENABLE           MDMA_CTCR_PKE            /*!< Packing enabled  */
00364 /**
00365   * @}
00366   */
00367 
00368 /** @defgroup MDMA_LL_EC_DEST_BURST Transfer Destination Burst
00369   * @{
00370   */
00371 #define LL_MDMA_DEST_BURST_SINGLE        0x00000000U                               /*!< Single transfer */
00372 #define LL_MDMA_DEST_BURST_2BEATS        MDMA_CTCR_DBURST_0                        /*!< Burst 2 beats   */
00373 #define LL_MDMA_DEST_BURST_4BEATS        MDMA_CTCR_DBURST_1                        /*!< Burst 4 beats   */
00374 #define LL_MDMA_DEST_BURST_8BEATS       (MDMA_CTCR_DBURST_0 | MDMA_CTCR_DBURST_1)  /*!< Burst 8 beats   */
00375 #define LL_MDMA_DEST_BURST_16BEATS       MDMA_CTCR_DBURST_2                        /*!< Burst 16 beats  */
00376 #define LL_MDMA_DEST_BURST_32BEATS      (MDMA_CTCR_DBURST_0 | MDMA_CTCR_DBURST_2)  /*!< Burst 32 beats  */
00377 #define LL_MDMA_DEST_BURST_64BEATS      (MDMA_CTCR_DBURST_1 | MDMA_CTCR_DBURST_2)  /*!< Burst 64 beats  */
00378 #define LL_MDMA_DEST_BURST_128BEATS     (MDMA_CTCR_DBURST)                         /*!< Burst 128 beats */
00379 /**
00380   * @}
00381   */
00382 
00383 /** @defgroup MDMA_LL_EC_SRC_BURST Transfer Source Burst
00384   * @{
00385   */
00386 #define LL_MDMA_SRC_BURST_SINGLE        0x00000000U                                /*!< Single transfer */
00387 #define LL_MDMA_SRC_BURST_2BEATS        MDMA_CTCR_SBURST_0                         /*!< Burst 2 beats   */
00388 #define LL_MDMA_SRC_BURST_4BEATS        MDMA_CTCR_SBURST_1                         /*!< Burst 4 beats   */
00389 #define LL_MDMA_SRC_BURST_8BEATS       (MDMA_CTCR_SBURST_0 | MDMA_CTCR_SBURST_1)   /*!< Burst 8 beats   */
00390 #define LL_MDMA_SRC_BURST_16BEATS       MDMA_CTCR_SBURST_2                         /*!< Burst 16 beats  */
00391 #define LL_MDMA_SRC_BURST_32BEATS      (MDMA_CTCR_SBURST_0 | MDMA_CTCR_SBURST_2)   /*!< Burst 32 beats  */
00392 #define LL_MDMA_SRC_BURST_64BEATS      (MDMA_CTCR_SBURST_1 | MDMA_CTCR_SBURST_2)   /*!< Burst 64 beats  */
00393 #define LL_MDMA_SRC_BURST_128BEATS      MDMA_CTCR_SBURST                           /*!< Burst 128 beats */
00394 /**
00395   * @}
00396   */
00397 
00398 /** @defgroup MDMA_LL_EC_DEST_INC_OFFSET_SIZE Destination Increment Offset Size
00399   * @{
00400   */
00401 #define LL_MDMA_DEST_INC_OFFSET_BYTE        0x00000000U                           /*!< offset is Byte (8-bit)         */
00402 #define LL_MDMA_DEST_INC_OFFSET_HALFWORD    MDMA_CTCR_DINCOS_0                    /*!< offset is Half Word (16-bit)   */
00403 #define LL_MDMA_DEST_INC_OFFSET_WORD        MDMA_CTCR_DINCOS_1                    /*!< offset is Word (32-bit)        */
00404 #define LL_MDMA_DEST_INC_OFFSET_DOUBLEWORD  MDMA_CTCR_DINCOS                      /*!< offset is Double Word (64-bit) */
00405 /**
00406   * @}
00407   */
00408 
00409 /** @defgroup MDMA_LL_EC_SRC_INC_OFFSET_SIZE Source Increment Offset Size
00410   * @{
00411   */
00412 #define LL_MDMA_SRC_INC_OFFSET_BYTE        0x00000000U                           /*!< offset is Byte (8-bit)         */
00413 #define LL_MDMA_SRC_INC_OFFSET_HALFWORD    MDMA_CTCR_SINCOS_0                    /*!< offset is Half Word (16-bit)   */
00414 #define LL_MDMA_SRC_INC_OFFSET_WORD        MDMA_CTCR_SINCOS_1                    /*!< offset is Word (32-bit)        */
00415 #define LL_MDMA_SRC_INC_OFFSET_DOUBLEWORD  MDMA_CTCR_SINCOS                      /*!< offset is Double Word (64-bit) */
00416 /**
00417   * @}
00418   */
00419 
00420 /** @defgroup MDMA_LL_EC_DEST_DATA_SIZE Destination Data Size
00421   * @{
00422   */
00423 #define LL_MDMA_DEST_DATA_SIZE_BYTE       0x00000000U                            /*!< Destination data size is Byte        */
00424 #define LL_MDMA_DEST_DATA_SIZE_HALFWORD   MDMA_CTCR_DSIZE_0                      /*!< Destination data size is half word   */
00425 #define LL_MDMA_DEST_DATA_SIZE_WORD       MDMA_CTCR_DSIZE_1                      /*!< Destination data size is word        */
00426 #define LL_MDMA_DEST_DATA_SIZE_DOUBLEWORD MDMA_CTCR_DSIZE                        /*!< Destination data size is double word */
00427 /**
00428   * @}
00429   */
00430 
00431 /** @defgroup MDMA_LL_EC_SRC_DATA_SIZE Source Data Size
00432   * @{
00433   */
00434 #define LL_MDMA_SRC_DATA_SIZE_BYTE       0x00000000U                            /*!< Source data size is Byte        */
00435 #define LL_MDMA_SRC_DATA_SIZE_HALFWORD   MDMA_CTCR_SSIZE_0                      /*!< Source data size is half word   */
00436 #define LL_MDMA_SRC_DATA_SIZE_WORD       MDMA_CTCR_SSIZE_1                      /*!< Source data size is word        */
00437 #define LL_MDMA_SRC_DATA_SIZE_DOUBLEWORD MDMA_CTCR_SSIZE                        /*!< Source data size is double word */
00438 /**
00439   * @}
00440   */
00441 
00442 /** @defgroup MDMA_LL_EC_DEST_INC_MODE Destination Increment Mode
00443   * @{
00444   */
00445 #define LL_MDMA_DEST_FIXED               0x00000000U                            /*!< Destination address pointer is fixed */
00446 #define LL_MDMA_DEST_INCREMENT           MDMA_CTCR_DINC_1                       /*!< Destination address pointer is incremented after each data transfer */
00447 #define LL_MDMA_DEST_DECREMENT           MDMA_CTCR_DINC                         /*!< Destination address pointer is decremented after each data transfer */
00448 /**
00449   * @}
00450   */
00451 
00452 /** @defgroup MDMA_LL_EC_SRC_INC_MODE Source Increment Mode
00453   * @{
00454   */
00455 #define LL_MDMA_SRC_FIXED                0x00000000U                            /*!< Destination address pointer is fixed */
00456 #define LL_MDMA_SRC_INCREMENT            MDMA_CTCR_SINC_1                       /*!< Destination address pointer is incremented after each data transfer */
00457 #define LL_MDMA_SRC_DECREMENT            MDMA_CTCR_SINC                         /*!< Destination address pointer is decremented after each data transfer */
00458 /**
00459   * @}
00460   */
00461 
00462 /** @defgroup MDMA_LL_EC_BLK_RPT_DEST_ADDR_UPDATE_MODE Block Repeat Destination address Update Mode
00463   * @{
00464   */
00465 #define LL_MDMA_BLK_RPT_DEST_ADDR_INCREMENT   0x00000000U                       /*!< Destination address pointer is incremented after each block transfer by Destination Update Value */
00466 #define LL_MDMA_BLK_RPT_DEST_ADDR_DECREMENT   MDMA_CBNDTR_BRDUM                 /*!< Destination address pointer is decremented after each block transfer by Destination Update Value */
00467 /**
00468   * @}
00469   */
00470 
00471 /** @defgroup MDMA_LL_EC_SRC_BLK_RPT_ADDR_UPDATE_MODE Source Block Repeat address Update Mode
00472   * @{
00473   */
00474 #define LL_MDMA_BLK_RPT_SRC_ADDR_INCREMENT   0x00000000U                        /*!< Source address pointer is incremented after each block transfer by Source Update Value */
00475 #define LL_MDMA_BLK_RPT_SRC_ADDR_DECREMENT   MDMA_CBNDTR_BRSUM                  /*!< Source address pointer is decremented after each block transfer by Source Update Value */
00476 /**
00477   * @}
00478   */
00479 
00480 /** @defgroup MDMA_LL_EC_DEST_BUS Destination BUS Selection
00481   * @{
00482   */
00483 #define  LL_MDMA_DEST_BUS_SYSTEM_AXI    0x00000000U                             /*!< System/AXI bus is used as destination */
00484 #define  LL_MDMA_DEST_BUS_AHB_TCM       MDMA_CTBR_DBUS                          /*!< AHB bus/TCM is used as destination    */
00485 /**
00486   * @}
00487   */
00488 
00489 /** @defgroup MDMA_LL_EC_SRC_BUS Source BUS Selection
00490   * @{
00491   */
00492 #define LL_MDMA_SRC_BUS_SYSTEM_AXI     0x00000000U                             /*!< System/AXI bus is used as source */
00493 #define LL_MDMA_SRC_BUS_AHB_TCM        MDMA_CTBR_SBUS                          /*!< AHB bus/TCM is used as source    */
00494 /**
00495   * @}
00496   */
00497 
00498 /** @defgroup MDMA_LL_EC_HW_TRIGGER_SELCTION HW Trigger Selection
00499   * @{
00500   */
00501 #define LL_MDMA_REQ_DMA1_STREAM0_TC          0x00000000U    /*!< MDMA HW Trigger (request) is DMA1 Stream 0 Transfer Complete Flag   */
00502 #define LL_MDMA_REQ_DMA1_STREAM1_TC          0x00000001U    /*!< MDMA HW Trigger (request) is DMA1 Stream 1 Transfer Complete Flag   */
00503 #define LL_MDMA_REQ_DMA1_STREAM2_TC          0x00000002U    /*!< MDMA HW Trigger (request) is DMA1 Stream 2 Transfer Complete Flag   */
00504 #define LL_MDMA_REQ_DMA1_STREAM3_TC          0x00000003U    /*!< MDMA HW Trigger (request) is DMA1 Stream 3 Transfer Complete Flag   */
00505 #define LL_MDMA_REQ_DMA1_STREAM4_TC          0x00000004U    /*!< MDMA HW Trigger (request) is DMA1 Stream 4 Transfer Complete Flag   */
00506 #define LL_MDMA_REQ_DMA1_STREAM5_TC          0x00000005U    /*!< MDMA HW Trigger (request) is DMA1 Stream 5 Transfer Complete Flag   */
00507 #define LL_MDMA_REQ_DMA1_STREAM6_TC          0x00000006U    /*!< MDMA HW Trigger (request) is DMA1 Stream 6 Transfer Complete Flag   */
00508 #define LL_MDMA_REQ_DMA1_STREAM7_TC          0x00000007U    /*!< MDMA HW Trigger (request) is DMA1 Stream 7 Transfer Complete Flag   */
00509 #define LL_MDMA_REQ_DMA2_STREAM0_TC          0x00000008U    /*!< MDMA HW Trigger (request) is DMA2 Stream 0 Transfer Complete Flag   */
00510 #define LL_MDMA_REQ_DMA2_STREAM1_TC          0x00000009U    /*!< MDMA HW Trigger (request) is DMA2 Stream 1 Transfer Complete Flag   */
00511 #define LL_MDMA_REQ_DMA2_STREAM2_TC          0x0000000AU    /*!< MDMA HW Trigger (request) is DMA2 Stream 2 Transfer Complete Flag   */
00512 #define LL_MDMA_REQ_DMA2_STREAM3_TC          0x0000000BU    /*!< MDMA HW Trigger (request) is DMA2 Stream 3 Transfer Complete Flag   */
00513 #define LL_MDMA_REQ_DMA2_STREAM4_TC          0x0000000CU    /*!< MDMA HW Trigger (request) is DMA2 Stream 4 Transfer Complete Flag   */
00514 #define LL_MDMA_REQ_DMA2_STREAM5_TC          0x0000000DU    /*!< MDMA HW Trigger (request) is DMA2 Stream 5 Transfer Complete Flag   */
00515 #define LL_MDMA_REQ_DMA2_STREAM6_TC          0x0000000EU    /*!< MDMA HW Trigger (request) is DMA2 Stream 6 Transfer Complete Flag   */
00516 #define LL_MDMA_REQ_DMA2_STREAM7_TC          0x0000000FU    /*!< MDMA HW Trigger (request) is DMA2 Stream 7 Transfer Complete Flag   */
00517 #if defined (LTDC)
00518 #define LL_MDMA_REQ_LTDC_LINE_IT             0x00000010U    /*!< MDMA HW Trigger (request) is LTDC Line interrupt Flag               */
00519 #endif /* LTDC */
00520 #if defined (JPEG)
00521 #define LL_MDMA_REQ_JPEG_INFIFO_TH           0x00000011U    /*!< MDMA HW Trigger (request) is JPEG Input FIFO threshold Flag         */
00522 #define LL_MDMA_REQ_JPEG_INFIFO_NF           0x00000012U    /*!< MDMA HW Trigger (request) is JPEG Input FIFO not full Flag          */
00523 #define LL_MDMA_REQ_JPEG_OUTFIFO_TH          0x00000013U    /*!< MDMA HW Trigger (request) is JPEG Output FIFO threshold Flag        */
00524 #define LL_MDMA_REQ_JPEG_OUTFIFO_NE          0x00000014U    /*!< MDMA HW Trigger (request) is JPEG Output FIFO not empty Flag        */
00525 #define LL_MDMA_REQ_JPEG_END_CONVERSION      0x00000015U    /*!< MDMA HW Trigger (request) is JPEG End of conversion Flag            */
00526 #endif /* JPEG */
00527 #if defined (QUADSPI)
00528 #define LL_MDMA_REQ_QUADSPI_FIFO_TH          0x00000016U    /*!< MDMA HW Trigger (request) is QSPI FIFO threshold Flag               */
00529 #define LL_MDMA_REQ_QUADSPI_TC               0x00000017U    /*!< MDMA HW Trigger (request) is QSPI Transfer complete Flag            */
00530 #endif /* QUADSPI */
00531 #if defined (OCTOSPI1)
00532 #define LL_MDMA_REQ_OCTOSPI1_FIFO_TH         0x00000016U    /*!< MDMA HW Trigger (request) is OCTOSPI1 FIFO threshold Flag           */
00533 #define LL_MDMA_REQ_OCTOSPI1_TC              0x00000017U    /*!< MDMA HW Trigger (request) is OCTOSPI1 Transfer complete Flag        */
00534 #endif /* OCTOSPI1 */
00535 #define LL_MDMA_REQ_DMA2D_CLUT_TC            0x00000018U    /*!< MDMA HW Trigger (request) is DMA2D CLUT Transfer Complete Flag      */
00536 #define LL_MDMA_REQ_DMA2D_TC                 0x00000019U    /*!< MDMA HW Trigger (request) is DMA2D Transfer Complete Flag           */
00537 #define LL_MDMA_REQ_DMA2D_TW                 0x0000001AU    /*!< MDMA HW Trigger (request) is DMA2D Transfer Watermark Flag          */
00538 #if defined (DSI)
00539 #define LL_MDMA_REQ_DSI_TEARING_EFFECT       0x0000001BU    /*!< MDMA HW Trigger (request) is DSI Tearing Effect Flag                */
00540 #define LL_MDMA_REQ_DSI_END_REFRESH          0x0000001CU    /*!< MDMA HW Trigger (request) is DSI End of refresh  Flag               */
00541 #endif /* DSI */
00542 #define LL_MDMA_REQ_SDMMC1_END_DATA          0x0000001DU    /*!< MDMA HW Trigger (request) is SDMMC1 End of Data Flag                */
00543 #define LL_MDMA_REQ_SDMMC1_DMA_ENDBUFFER     0x0000001EU    /*!< MDMA HW Trigger (request) is SDMMC1 Internal DMA buffer End Flag : This trigger is available starting from STM32H7 Rev.B devices */
00544 #define LL_MDMA_REQ_SDMMC1_COMMAND_END       0x0000001FU    /*!< MDMA HW Trigger (request) is SDMMC1 Command End Flag : This trigger is available starting from STM32H7 Rev.B devices */
00545 #if defined (OCTOSPI2)
00546 #define LL_MDMA_REQ_OCTOSPI2_FIFO_TH         0x00000020U    /*!< MDMA HW Trigger (request) is OCTOSPI2 FIFO threshold Flag           */
00547 #define LL_MDMA_REQ_OCTOSPI2_TC              0x00000021U    /*!< MDMA HW Trigger (request) is OCTOSPI2 Transfer complete Flag        */
00548 #endif /* OCTOSPI2 */
00549 /**
00550   * @}
00551   */
00552 
00553 /** @defgroup MDMA_LL_EC_XFER_ERROR_DIRECTION Transfer Error Direction
00554   * @{
00555   */
00556 #define LL_MDMA_READ_ERROR                       0x00000000U                /*!< Last transfer error on the channel was a related to a read access    */
00557 #define LL_MDMA_WRITE_ERROR                      MDMA_CESR_TED              /*!< Last transfer error on the channel was a related to a write access   */
00558 /**
00559   * @}
00560   */
00561 
00562 /**
00563   * @}
00564   */
00565 
00566 /* Exported macro ------------------------------------------------------------*/
00567 /** @defgroup MDMA_LL_Exported_Macros MDMA Exported Macros
00568   * @{
00569   */
00570 
00571 /** @defgroup MDMA_LL_EM_WRITE_READ Common Write and read registers macros
00572   * @{
00573   */
00574 /**
00575   * @brief  Write a value in MDMA register
00576   * @param  __INSTANCE__ MDMA Instance
00577   * @param  __REG__ Register to be written
00578   * @param  __VALUE__ Value to be written in the register
00579   * @retval None
00580   */
00581 #define LL_MDMA_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG((__INSTANCE__)->__REG__, (__VALUE__))
00582 
00583 /**
00584   * @brief  Read a value in MDMA register
00585   * @param  __INSTANCE__ MDMA Instance
00586   * @param  __REG__ Register to be read
00587   * @retval Register value
00588   */
00589 #define LL_MDMA_ReadReg(__INSTANCE__, __REG__) READ_REG((__INSTANCE__)->__REG__)
00590 /**
00591   * @}
00592   */
00593 
00594 /** @defgroup MDMA_LL_EM_CONVERT_DMAxCHANNELy Convert MDMAxChannely
00595   * @{
00596   */
00597 /**
00598   * @brief  Convert MDMAx_Channely into MDMAx
00599   * @param  __CHANNEL_INSTANCE__ MDMAx_Channely
00600   * @retval MDMAx
00601   */
00602 #define LL_MDMA_GET_INSTANCE(__CHANNEL_INSTANCE__) (MDMA)
00603 
00604 /**
00605   * @brief  Convert MDMAx_Channely into LL_MDMA_CHANNEL_y
00606   * @param  __CHANNEL_INSTANCE__ MDMAx_Channely
00607   * @retval LL_MDMA_CHANNEL_y
00608   */
00609 #define LL_MDMA_GET_CHANNEL(__CHANNEL_INSTANCE__)   \
00610 (((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel0 )) ? LL_MDMA_CHANNEL_0  : \
00611  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel1 )) ? LL_MDMA_CHANNEL_1  : \
00612  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel2 )) ? LL_MDMA_CHANNEL_2  : \
00613  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel3 )) ? LL_MDMA_CHANNEL_3  : \
00614  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel4 )) ? LL_MDMA_CHANNEL_4  : \
00615  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel5 )) ? LL_MDMA_CHANNEL_5  : \
00616  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel6 )) ? LL_MDMA_CHANNEL_6  : \
00617  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel7 )) ? LL_MDMA_CHANNEL_7  : \
00618  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel8 )) ? LL_MDMA_CHANNEL_8  : \
00619  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel9 )) ? LL_MDMA_CHANNEL_9  : \
00620  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel10)) ? LL_MDMA_CHANNEL_10 : \
00621  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel11)) ? LL_MDMA_CHANNEL_11 : \
00622  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel12)) ? LL_MDMA_CHANNEL_12 : \
00623  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel13)) ? LL_MDMA_CHANNEL_13 : \
00624  ((uint32_t)(__CHANNEL_INSTANCE__) == ((uint32_t)MDMA_Channel14)) ? LL_MDMA_CHANNEL_14 : \
00625  LL_MDMA_CHANNEL_15)
00626 
00627 /**
00628   * @brief  Convert MDMA Instance MDMAx and LL_MDMA_CHANNEL_y into MDMAx_Channely
00629   * @param  __MDMA_INSTANCE__ MDMAx
00630   * @param  __CHANNEL__ LL_MDMA_CHANNEL_y
00631   * @retval MDMAx_Channely
00632   */
00633 #define LL_MDMA_GET_CHANNEL_INSTANCE(__MDMA_INSTANCE__, __CHANNEL__)   \
00634 (((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_0 )) ? MDMA_Channel0  : \
00635  ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_1 )) ? MDMA_Channel1  : \
00636  ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_2 )) ? MDMA_Channel2  : \
00637  ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_3 )) ? MDMA_Channel3  : \
00638  ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_4 )) ? MDMA_Channel4  : \
00639  ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_5 )) ? MDMA_Channel5  : \
00640  ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_6 )) ? MDMA_Channel6  : \
00641  ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_7 )) ? MDMA_Channel7  : \
00642  ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_8 )) ? MDMA_Channel8  : \
00643  ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_9 )) ? MDMA_Channel9  : \
00644  ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_10)) ? MDMA_Channel10 : \
00645  ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_11)) ? MDMA_Channel11 : \
00646  ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_12)) ? MDMA_Channel12 : \
00647  ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_13)) ? MDMA_Channel13 : \
00648  ((uint32_t)(__CHANNEL__) == ((uint32_t)LL_MDMA_CHANNEL_14)) ? MDMA_Channel14 : \
00649  MDMA_Channel15)
00650 
00651 /**
00652   * @}
00653   */
00654 
00655 /**
00656   * @}
00657   */
00658 
00659 
00660 /* Exported functions --------------------------------------------------------*/
00661  /** @defgroup MDMA_LL_Exported_Functions MDMA Exported Functions
00662   * @{
00663   */
00664 
00665 /** @defgroup MDMA_LL_EF_Configuration Configuration
00666   * @{
00667   */
00668 /**
00669   * @brief Enable MDMA channel.
00670   * @rmtoll CCR          EN            LL_MDMA_EnableChannel
00671   * @param  MDMAx MDMAx Instance
00672   * @param  Channel This parameter can be one of the following values:
00673   *         @arg @ref LL_MDMA_CHANNEL_0
00674   *         @arg @ref LL_MDMA_CHANNEL_1
00675   *         @arg @ref LL_MDMA_CHANNEL_2
00676   *         @arg @ref LL_MDMA_CHANNEL_3
00677   *         @arg @ref LL_MDMA_CHANNEL_4
00678   *         @arg @ref LL_MDMA_CHANNEL_5
00679   *         @arg @ref LL_MDMA_CHANNEL_6
00680   *         @arg @ref LL_MDMA_CHANNEL_7
00681   *         @arg @ref LL_MDMA_CHANNEL_8
00682   *         @arg @ref LL_MDMA_CHANNEL_9
00683   *         @arg @ref LL_MDMA_CHANNEL_10
00684   *         @arg @ref LL_MDMA_CHANNEL_11
00685   *         @arg @ref LL_MDMA_CHANNEL_12
00686   *         @arg @ref LL_MDMA_CHANNEL_13
00687   *         @arg @ref LL_MDMA_CHANNEL_14
00688   *         @arg @ref LL_MDMA_CHANNEL_15
00689   * @retval None
00690   */
00691 __STATIC_INLINE void LL_MDMA_EnableChannel(MDMA_TypeDef *MDMAx, uint32_t Channel)
00692 {
00693   uint32_t mdma_base_addr = (uint32_t)MDMAx;
00694 
00695   SET_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_EN);
00696 }
00697 
00698 /**
00699   * @brief Disable MDMA channel.
00700   * @rmtoll CCR          EN            LL_MDMA_DisableChannel
00701   * @param  MDMAx MDMAx Instance
00702   * @param  Channel This parameter can be one of the following values:
00703   *         @arg @ref LL_MDMA_CHANNEL_0
00704   *         @arg @ref LL_MDMA_CHANNEL_1
00705   *         @arg @ref LL_MDMA_CHANNEL_2
00706   *         @arg @ref LL_MDMA_CHANNEL_3
00707   *         @arg @ref LL_MDMA_CHANNEL_4
00708   *         @arg @ref LL_MDMA_CHANNEL_5
00709   *         @arg @ref LL_MDMA_CHANNEL_6
00710   *         @arg @ref LL_MDMA_CHANNEL_7
00711   *         @arg @ref LL_MDMA_CHANNEL_8
00712   *         @arg @ref LL_MDMA_CHANNEL_9
00713   *         @arg @ref LL_MDMA_CHANNEL_10
00714   *         @arg @ref LL_MDMA_CHANNEL_11
00715   *         @arg @ref LL_MDMA_CHANNEL_12
00716   *         @arg @ref LL_MDMA_CHANNEL_13
00717   *         @arg @ref LL_MDMA_CHANNEL_14
00718   *         @arg @ref LL_MDMA_CHANNEL_15
00719   * @retval None
00720   */
00721 __STATIC_INLINE void LL_MDMA_DisableChannel(MDMA_TypeDef *MDMAx, uint32_t Channel)
00722 {
00723   uint32_t mdma_base_addr = (uint32_t)MDMAx;
00724 
00725   CLEAR_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_EN);
00726 }
00727 
00728 /**
00729   * @brief Check if MDMA channel is enabled or disabled.
00730   * @rmtoll CCR          EN            LL_MDMA_IsEnabledChannel
00731   * @param  MDMAx MDMAx Instance
00732   * @param  Channel This parameter can be one of the following values:
00733   *         @arg @ref LL_MDMA_CHANNEL_0
00734   *         @arg @ref LL_MDMA_CHANNEL_1
00735   *         @arg @ref LL_MDMA_CHANNEL_2
00736   *         @arg @ref LL_MDMA_CHANNEL_3
00737   *         @arg @ref LL_MDMA_CHANNEL_4
00738   *         @arg @ref LL_MDMA_CHANNEL_5
00739   *         @arg @ref LL_MDMA_CHANNEL_6
00740   *         @arg @ref LL_MDMA_CHANNEL_7
00741   *         @arg @ref LL_MDMA_CHANNEL_8
00742   *         @arg @ref LL_MDMA_CHANNEL_9
00743   *         @arg @ref LL_MDMA_CHANNEL_10
00744   *         @arg @ref LL_MDMA_CHANNEL_11
00745   *         @arg @ref LL_MDMA_CHANNEL_12
00746   *         @arg @ref LL_MDMA_CHANNEL_13
00747   *         @arg @ref LL_MDMA_CHANNEL_14
00748   *         @arg @ref LL_MDMA_CHANNEL_15
00749   * @retval State of bit (1 or 0).
00750   */
00751 __STATIC_INLINE uint32_t LL_MDMA_IsEnabledChannel(MDMA_TypeDef *MDMAx, uint32_t Channel)
00752 {
00753   uint32_t mdma_base_addr = (uint32_t)MDMAx;
00754 
00755   return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_EN) == (MDMA_CCR_EN)) ? 1UL : 0UL);
00756 }
00757 
00758 /**
00759   * @brief Generate a SW transfer request on the MDMA channel.
00760   * @rmtoll CCR          SWRQ            LL_MDMA_GenerateSWRequest
00761   * @param  MDMAx MDMAx Instance
00762   * @param  Channel This parameter can be one of the following values:
00763   *         @arg @ref LL_MDMA_CHANNEL_0
00764   *         @arg @ref LL_MDMA_CHANNEL_1
00765   *         @arg @ref LL_MDMA_CHANNEL_2
00766   *         @arg @ref LL_MDMA_CHANNEL_3
00767   *         @arg @ref LL_MDMA_CHANNEL_4
00768   *         @arg @ref LL_MDMA_CHANNEL_5
00769   *         @arg @ref LL_MDMA_CHANNEL_6
00770   *         @arg @ref LL_MDMA_CHANNEL_7
00771   *         @arg @ref LL_MDMA_CHANNEL_8
00772   *         @arg @ref LL_MDMA_CHANNEL_9
00773   *         @arg @ref LL_MDMA_CHANNEL_10
00774   *         @arg @ref LL_MDMA_CHANNEL_11
00775   *         @arg @ref LL_MDMA_CHANNEL_12
00776   *         @arg @ref LL_MDMA_CHANNEL_13
00777   *         @arg @ref LL_MDMA_CHANNEL_14
00778   *         @arg @ref LL_MDMA_CHANNEL_15
00779   * @retval None
00780   */
00781 __STATIC_INLINE void LL_MDMA_GenerateSWRequest(MDMA_TypeDef *MDMAx, uint32_t Channel)
00782 {
00783   uint32_t mdma_base_addr = (uint32_t)MDMAx;
00784 
00785   SET_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_SWRQ);
00786 }
00787 
00788 /**
00789   * @brief Configure Transfer endianness parameters : Word, Half word and Bytes Endianness.
00790   * @rmtoll CCR          WEX            LL_MDMA_ConfigXferEndianness\n
00791   * @rmtoll CCR          HEX            LL_MDMA_ConfigXferEndianness\n
00792   * @rmtoll CCR          BEX            LL_MDMA_ConfigXferEndianness
00793   * @param  MDMAx MDMAx Instance
00794   * @param  Channel This parameter can be one of the following values:
00795   *         @arg @ref LL_MDMA_CHANNEL_0
00796   *         @arg @ref LL_MDMA_CHANNEL_1
00797   *         @arg @ref LL_MDMA_CHANNEL_2
00798   *         @arg @ref LL_MDMA_CHANNEL_3
00799   *         @arg @ref LL_MDMA_CHANNEL_4
00800   *         @arg @ref LL_MDMA_CHANNEL_5
00801   *         @arg @ref LL_MDMA_CHANNEL_6
00802   *         @arg @ref LL_MDMA_CHANNEL_7
00803   *         @arg @ref LL_MDMA_CHANNEL_8
00804   *         @arg @ref LL_MDMA_CHANNEL_9
00805   *         @arg @ref LL_MDMA_CHANNEL_10
00806   *         @arg @ref LL_MDMA_CHANNEL_11
00807   *         @arg @ref LL_MDMA_CHANNEL_12
00808   *         @arg @ref LL_MDMA_CHANNEL_13
00809   *         @arg @ref LL_MDMA_CHANNEL_14
00810   *         @arg @ref LL_MDMA_CHANNEL_15
00811   * @param  Configuration This parameter must be a combination of all the following values:
00812   *         @arg @ref LL_MDMA_WORD_ENDIANNESS_PRESERVE or @ref LL_MDMA_WORD_ENDIANNESS_EXCHANGE
00813   *         @arg @ref LL_MDMA_HALFWORD_ENDIANNESS_PRESERVE or @ref LL_MDMA_HALFWORD_ENDIANNESS_EXCHANGE
00814   *         @arg @ref LL_MDMA_BYTE_ENDIANNESS_PRESERVE or @ref LL_MDMA_BYTE_ENDIANNESS_EXCHANGE
00815   * @retval None
00816   */
00817 __STATIC_INLINE void LL_MDMA_ConfigXferEndianness(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Configuration)
00818 {
00819   uint32_t mdma_base_addr = (uint32_t)MDMAx;
00820 
00821   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR,
00822              MDMA_CCR_WEX | MDMA_CCR_HEX | MDMA_CCR_BEX, Configuration);
00823 }
00824 
00825 /**
00826   * @brief Set Words Endianness.
00827   * @rmtoll CCR          WEX            LL_MDMA_SetWordEndianness
00828   * @param  MDMAx MDMAx Instance
00829   * @param  Channel This parameter can be one of the following values:
00830   *         @arg @ref LL_MDMA_CHANNEL_0
00831   *         @arg @ref LL_MDMA_CHANNEL_1
00832   *         @arg @ref LL_MDMA_CHANNEL_2
00833   *         @arg @ref LL_MDMA_CHANNEL_3
00834   *         @arg @ref LL_MDMA_CHANNEL_4
00835   *         @arg @ref LL_MDMA_CHANNEL_5
00836   *         @arg @ref LL_MDMA_CHANNEL_6
00837   *         @arg @ref LL_MDMA_CHANNEL_7
00838   *         @arg @ref LL_MDMA_CHANNEL_8
00839   *         @arg @ref LL_MDMA_CHANNEL_9
00840   *         @arg @ref LL_MDMA_CHANNEL_10
00841   *         @arg @ref LL_MDMA_CHANNEL_11
00842   *         @arg @ref LL_MDMA_CHANNEL_12
00843   *         @arg @ref LL_MDMA_CHANNEL_13
00844   *         @arg @ref LL_MDMA_CHANNEL_14
00845   *         @arg @ref LL_MDMA_CHANNEL_15
00846   * @param  Endianness This parameter can be one of the following values:
00847   *         @arg @ref LL_MDMA_WORD_ENDIANNESS_PRESERVE
00848   *         @arg @ref LL_MDMA_WORD_ENDIANNESS_EXCHANGE
00849   * @retval None
00850   */
00851 __STATIC_INLINE void LL_MDMA_SetWordEndianness(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Endianness)
00852 {
00853   uint32_t mdma_base_addr = (uint32_t)MDMAx;
00854 
00855   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_WEX, Endianness);
00856 }
00857 
00858 /**
00859   * @brief Get Words Endianness.
00860   * @rmtoll CCR          WEX            LL_MDMA_GetWordEndianness
00861   * @param  MDMAx MDMAx Instance
00862   * @param  Channel This parameter can be one of the following values:
00863   *         @arg @ref LL_MDMA_CHANNEL_0
00864   *         @arg @ref LL_MDMA_CHANNEL_1
00865   *         @arg @ref LL_MDMA_CHANNEL_2
00866   *         @arg @ref LL_MDMA_CHANNEL_3
00867   *         @arg @ref LL_MDMA_CHANNEL_4
00868   *         @arg @ref LL_MDMA_CHANNEL_5
00869   *         @arg @ref LL_MDMA_CHANNEL_6
00870   *         @arg @ref LL_MDMA_CHANNEL_7
00871   *         @arg @ref LL_MDMA_CHANNEL_8
00872   *         @arg @ref LL_MDMA_CHANNEL_9
00873   *         @arg @ref LL_MDMA_CHANNEL_10
00874   *         @arg @ref LL_MDMA_CHANNEL_11
00875   *         @arg @ref LL_MDMA_CHANNEL_12
00876   *         @arg @ref LL_MDMA_CHANNEL_13
00877   *         @arg @ref LL_MDMA_CHANNEL_14
00878   *         @arg @ref LL_MDMA_CHANNEL_15
00879   * @retval Returned value can be one of the following values:
00880   *         @arg @ref LL_MDMA_WORD_ENDIANNESS_PRESERVE
00881   *         @arg @ref LL_MDMA_WORD_ENDIANNESS_EXCHANGE
00882   * @retval None
00883   */
00884 __STATIC_INLINE uint32_t LL_MDMA_GetWordEndianness(MDMA_TypeDef *MDMAx, uint32_t Channel)
00885 {
00886   uint32_t mdma_base_addr = (uint32_t)MDMAx;
00887 
00888   return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_WEX));
00889 }
00890 
00891 /**
00892   * @brief Set Half Words Endianness.
00893   * @rmtoll CCR          HEX            LL_MDMA_SetHalfWordEndianness
00894   * @param  MDMAx MDMAx Instance
00895   * @param  Channel This parameter can be one of the following values:
00896   *         @arg @ref LL_MDMA_CHANNEL_0
00897   *         @arg @ref LL_MDMA_CHANNEL_1
00898   *         @arg @ref LL_MDMA_CHANNEL_2
00899   *         @arg @ref LL_MDMA_CHANNEL_3
00900   *         @arg @ref LL_MDMA_CHANNEL_4
00901   *         @arg @ref LL_MDMA_CHANNEL_5
00902   *         @arg @ref LL_MDMA_CHANNEL_6
00903   *         @arg @ref LL_MDMA_CHANNEL_7
00904   *         @arg @ref LL_MDMA_CHANNEL_8
00905   *         @arg @ref LL_MDMA_CHANNEL_9
00906   *         @arg @ref LL_MDMA_CHANNEL_10
00907   *         @arg @ref LL_MDMA_CHANNEL_11
00908   *         @arg @ref LL_MDMA_CHANNEL_12
00909   *         @arg @ref LL_MDMA_CHANNEL_13
00910   *         @arg @ref LL_MDMA_CHANNEL_14
00911   *         @arg @ref LL_MDMA_CHANNEL_15
00912   * @param  Endianness This parameter can be one of the following values:
00913   *         @arg @ref LL_MDMA_HALFWORD_ENDIANNESS_PRESERVE
00914   *         @arg @ref LL_MDMA_HALFWORD_ENDIANNESS_EXCHANGE
00915   * @retval None
00916   */
00917 __STATIC_INLINE void LL_MDMA_SetHalfWordEndianness(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Endianness)
00918 {
00919   uint32_t mdma_base_addr = (uint32_t)MDMAx;
00920 
00921   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_HEX, Endianness);
00922 }
00923 
00924 /**
00925   * @brief Get Half Words Endianness.
00926   * @rmtoll CCR          HEX            LL_MDMA_GetHalfWordEndianness
00927   * @param  MDMAx MDMAx Instance
00928   * @param  Channel This parameter can be one of the following values:
00929   *         @arg @ref LL_MDMA_CHANNEL_0
00930   *         @arg @ref LL_MDMA_CHANNEL_1
00931   *         @arg @ref LL_MDMA_CHANNEL_2
00932   *         @arg @ref LL_MDMA_CHANNEL_3
00933   *         @arg @ref LL_MDMA_CHANNEL_4
00934   *         @arg @ref LL_MDMA_CHANNEL_5
00935   *         @arg @ref LL_MDMA_CHANNEL_6
00936   *         @arg @ref LL_MDMA_CHANNEL_7
00937   *         @arg @ref LL_MDMA_CHANNEL_8
00938   *         @arg @ref LL_MDMA_CHANNEL_9
00939   *         @arg @ref LL_MDMA_CHANNEL_10
00940   *         @arg @ref LL_MDMA_CHANNEL_11
00941   *         @arg @ref LL_MDMA_CHANNEL_12
00942   *         @arg @ref LL_MDMA_CHANNEL_13
00943   *         @arg @ref LL_MDMA_CHANNEL_14
00944   *         @arg @ref LL_MDMA_CHANNEL_15
00945   * @retval Returned value can be one of the following values:
00946   *         @arg @ref LL_MDMA_HALFWORD_ENDIANNESS_PRESERVE
00947   *         @arg @ref LL_MDMA_HALFWORD_ENDIANNESS_EXCHANGE
00948   * @retval None
00949   */
00950 __STATIC_INLINE uint32_t LL_MDMA_GetHalfWordEndianness(MDMA_TypeDef *MDMAx, uint32_t Channel)
00951 {
00952   uint32_t mdma_base_addr = (uint32_t)MDMAx;
00953 
00954   return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_HEX));
00955 }
00956 
00957 /**
00958   * @brief Set Bytes Endianness.
00959   * @rmtoll CCR          BEX            LL_MDMA_SetByteEndianness
00960   * @param  MDMAx MDMAx Instance
00961   * @param  Channel This parameter can be one of the following values:
00962   *         @arg @ref LL_MDMA_CHANNEL_0
00963   *         @arg @ref LL_MDMA_CHANNEL_1
00964   *         @arg @ref LL_MDMA_CHANNEL_2
00965   *         @arg @ref LL_MDMA_CHANNEL_3
00966   *         @arg @ref LL_MDMA_CHANNEL_4
00967   *         @arg @ref LL_MDMA_CHANNEL_5
00968   *         @arg @ref LL_MDMA_CHANNEL_6
00969   *         @arg @ref LL_MDMA_CHANNEL_7
00970   *         @arg @ref LL_MDMA_CHANNEL_8
00971   *         @arg @ref LL_MDMA_CHANNEL_9
00972   *         @arg @ref LL_MDMA_CHANNEL_10
00973   *         @arg @ref LL_MDMA_CHANNEL_11
00974   *         @arg @ref LL_MDMA_CHANNEL_12
00975   *         @arg @ref LL_MDMA_CHANNEL_13
00976   *         @arg @ref LL_MDMA_CHANNEL_14
00977   *         @arg @ref LL_MDMA_CHANNEL_15
00978   * @param  Endianness This parameter can be one of the following values:
00979   *         @arg @ref LL_MDMA_BYTE_ENDIANNESS_PRESERVE
00980   *         @arg @ref LL_MDMA_BYTE_ENDIANNESS_EXCHANGE
00981   * @retval None
00982   */
00983 __STATIC_INLINE void LL_MDMA_SetByteEndianness(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Endianness)
00984 {
00985   uint32_t mdma_base_addr = (uint32_t)MDMAx;
00986 
00987   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_BEX, Endianness);
00988 }
00989 
00990 /**
00991   * @brief Get Bytes Endianness.
00992   * @rmtoll CCR          BEX            LL_MDMA_GetByteEndianness
00993   * @param  MDMAx MDMAx Instance
00994   * @param  Channel This parameter can be one of the following values:
00995   *         @arg @ref LL_MDMA_CHANNEL_0
00996   *         @arg @ref LL_MDMA_CHANNEL_1
00997   *         @arg @ref LL_MDMA_CHANNEL_2
00998   *         @arg @ref LL_MDMA_CHANNEL_3
00999   *         @arg @ref LL_MDMA_CHANNEL_4
01000   *         @arg @ref LL_MDMA_CHANNEL_5
01001   *         @arg @ref LL_MDMA_CHANNEL_6
01002   *         @arg @ref LL_MDMA_CHANNEL_7
01003   *         @arg @ref LL_MDMA_CHANNEL_8
01004   *         @arg @ref LL_MDMA_CHANNEL_9
01005   *         @arg @ref LL_MDMA_CHANNEL_10
01006   *         @arg @ref LL_MDMA_CHANNEL_11
01007   *         @arg @ref LL_MDMA_CHANNEL_12
01008   *         @arg @ref LL_MDMA_CHANNEL_13
01009   *         @arg @ref LL_MDMA_CHANNEL_14
01010   *         @arg @ref LL_MDMA_CHANNEL_15
01011   * @retval Returned value can be one of the following values:
01012   *         @arg @ref LL_MDMA_BYTE_ENDIANNESS_PRESERVE
01013   *         @arg @ref LL_MDMA_BYTE_ENDIANNESS_EXCHANGE
01014   * @retval None
01015   */
01016 __STATIC_INLINE uint32_t LL_MDMA_GetByteEndianness(MDMA_TypeDef *MDMAx, uint32_t Channel)
01017 {
01018   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01019 
01020   return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_BEX));
01021 }
01022 
01023 /**
01024   * @brief Set Channel priority level.
01025   * @rmtoll CCR          PL            LL_MDMA_SetChannelPriorityLevel
01026   * @param  MDMAx MDMAx Instance
01027   * @param  Channel This parameter can be one of the following values:
01028   *         @arg @ref LL_MDMA_CHANNEL_0
01029   *         @arg @ref LL_MDMA_CHANNEL_1
01030   *         @arg @ref LL_MDMA_CHANNEL_2
01031   *         @arg @ref LL_MDMA_CHANNEL_3
01032   *         @arg @ref LL_MDMA_CHANNEL_4
01033   *         @arg @ref LL_MDMA_CHANNEL_5
01034   *         @arg @ref LL_MDMA_CHANNEL_6
01035   *         @arg @ref LL_MDMA_CHANNEL_7
01036   *         @arg @ref LL_MDMA_CHANNEL_8
01037   *         @arg @ref LL_MDMA_CHANNEL_9
01038   *         @arg @ref LL_MDMA_CHANNEL_10
01039   *         @arg @ref LL_MDMA_CHANNEL_11
01040   *         @arg @ref LL_MDMA_CHANNEL_12
01041   *         @arg @ref LL_MDMA_CHANNEL_13
01042   *         @arg @ref LL_MDMA_CHANNEL_14
01043   *         @arg @ref LL_MDMA_CHANNEL_15
01044   * @param  Priority This parameter can be one of the following values:
01045   *         @arg @ref LL_MDMA_PRIORITY_LOW
01046   *         @arg @ref LL_MDMA_PRIORITY_MEDIUM
01047   *         @arg @ref LL_MDMA_PRIORITY_HIGH
01048   *         @arg @ref LL_MDMA_PRIORITY_VERYHIGH
01049   * @retval None
01050   */
01051 __STATIC_INLINE void LL_MDMA_SetChannelPriorityLevel(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Priority)
01052 {
01053   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01054 
01055   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_PL, Priority);
01056 }
01057 
01058 /**
01059   * @brief Get Channel priority level.
01060   * @rmtoll CCR          PL            LL_MDMA_GetChannelPriorityLevel
01061   * @param  MDMAx MDMAx Instance
01062   * @param  Channel This parameter can be one of the following values:
01063   *         @arg @ref LL_MDMA_CHANNEL_0
01064   *         @arg @ref LL_MDMA_CHANNEL_1
01065   *         @arg @ref LL_MDMA_CHANNEL_2
01066   *         @arg @ref LL_MDMA_CHANNEL_3
01067   *         @arg @ref LL_MDMA_CHANNEL_4
01068   *         @arg @ref LL_MDMA_CHANNEL_5
01069   *         @arg @ref LL_MDMA_CHANNEL_6
01070   *         @arg @ref LL_MDMA_CHANNEL_7
01071   *         @arg @ref LL_MDMA_CHANNEL_8
01072   *         @arg @ref LL_MDMA_CHANNEL_9
01073   *         @arg @ref LL_MDMA_CHANNEL_10
01074   *         @arg @ref LL_MDMA_CHANNEL_11
01075   *         @arg @ref LL_MDMA_CHANNEL_12
01076   *         @arg @ref LL_MDMA_CHANNEL_13
01077   *         @arg @ref LL_MDMA_CHANNEL_14
01078   *         @arg @ref LL_MDMA_CHANNEL_15
01079   * @retval Returned value can be one of the following values:
01080   *         @arg @ref LL_MDMA_PRIORITY_LOW
01081   *         @arg @ref LL_MDMA_PRIORITY_MEDIUM
01082   *         @arg @ref LL_MDMA_PRIORITY_HIGH
01083   *         @arg @ref LL_MDMA_PRIORITY_VERYHIGH
01084   * @retval None
01085   */
01086 __STATIC_INLINE uint32_t LL_MDMA_GetChannelPriorityLevel(MDMA_TypeDef *MDMAx, uint32_t Channel)
01087 {
01088   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01089 
01090   return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR, MDMA_CCR_PL));
01091 }
01092 
01093 /**
01094   * @brief Configure MDMA transfer parameters.
01095   * @rmtoll CTCR          BWM            LL_MDMA_ConfigTransfer\n
01096   * @rmtoll CTCR          SWRM           LL_MDMA_ConfigTransfer\n
01097   * @rmtoll CTCR          TRGM           LL_MDMA_ConfigTransfer\n
01098   * @rmtoll CTCR          PAM            LL_MDMA_ConfigTransfer\n
01099   * @rmtoll CTCR          PKE            LL_MDMA_ConfigTransfer\n
01100   * @rmtoll CTCR          TLEN           LL_MDMA_ConfigTransfer\n
01101   * @rmtoll CTCR          DBURST         LL_MDMA_ConfigTransfer\n
01102   * @rmtoll CTCR          SBURST         LL_MDMA_ConfigTransfer\n
01103   * @rmtoll CTCR          DINCOS         LL_MDMA_ConfigTransfer\n
01104   * @rmtoll CTCR          SINCOS         LL_MDMA_ConfigTransfer\n
01105   * @rmtoll CTCR          DSIZE          LL_MDMA_ConfigTransfer\n
01106   * @rmtoll CTCR          SSIZE          LL_MDMA_ConfigTransfer\n
01107   * @rmtoll CTCR          DINC           LL_MDMA_ConfigTransfer\n
01108   * @rmtoll CTCR          SINC           LL_MDMA_ConfigTransfer
01109   * @param  MDMAx MDMAx Instance
01110   * @param  Channel This parameter can be one of the following values:
01111   *         @arg @ref LL_MDMA_CHANNEL_0
01112   *         @arg @ref LL_MDMA_CHANNEL_1
01113   *         @arg @ref LL_MDMA_CHANNEL_2
01114   *         @arg @ref LL_MDMA_CHANNEL_3
01115   *         @arg @ref LL_MDMA_CHANNEL_4
01116   *         @arg @ref LL_MDMA_CHANNEL_5
01117   *         @arg @ref LL_MDMA_CHANNEL_6
01118   *         @arg @ref LL_MDMA_CHANNEL_7
01119   *         @arg @ref LL_MDMA_CHANNEL_8
01120   *         @arg @ref LL_MDMA_CHANNEL_9
01121   *         @arg @ref LL_MDMA_CHANNEL_10
01122   *         @arg @ref LL_MDMA_CHANNEL_11
01123   *         @arg @ref LL_MDMA_CHANNEL_12
01124   *         @arg @ref LL_MDMA_CHANNEL_13
01125   *         @arg @ref LL_MDMA_CHANNEL_14
01126   *         @arg @ref LL_MDMA_CHANNEL_15
01127   * @param  Configuration This parameter must be a combination of all the following values:
01128   *         @arg @ref LL_MDMA_BUFF_WRITE_DISABLE or @ref LL_MDMA_BUFF_WRITE_ENABLE
01129   *         @arg @ref LL_MDMA_REQUEST_MODE_HW or @ref LL_MDMA_REQUEST_MODE_SW
01130   *         @arg @ref LL_MDMA_BUFFER_TRANSFER or @ref LL_MDMA_BLOCK_TRANSFER or @ref LL_MDMA_REPEAT_BLOCK_TRANSFER or @ref LL_MDMA_FULL_TRANSFER
01131   *         @arg @ref LL_MDMA_DATAALIGN_RIGHT or @ref LL_MDMA_DATAALIGN_RIGHT_SIGNED or @ref LL_MDMA_DATAALIGN_LEFT
01132   *         @arg @ref LL_MDMA_PACK_DISABLE or @ref LL_MDMA_PACK_ENABLE
01133   *         @arg @ref LL_MDMA_DEST_BURST_SINGLE or @ref LL_MDMA_DEST_BURST_2BEATS or @ref LL_MDMA_DEST_BURST_4BEATS or @ref LL_MDMA_DEST_BURST_8BEATS
01134   *              or @ref LL_MDMA_DEST_BURST_16BEATS or @ref LL_MDMA_DEST_BURST_32BEATS or @ref LL_MDMA_DEST_BURST_64BEATS or @ref LL_MDMA_DEST_BURST_128BEATS
01135   *         @arg @ref LL_MDMA_SRC_BURST_SINGLE or @ref LL_MDMA_SRC_BURST_2BEATS or @ref LL_MDMA_SRC_BURST_4BEATS or @ref LL_MDMA_SRC_BURST_8BEATS
01136   *              or @ref LL_MDMA_SRC_BURST_16BEATS or @ref LL_MDMA_SRC_BURST_32BEATS or @ref LL_MDMA_SRC_BURST_64BEATS or @ref LL_MDMA_SRC_BURST_128BEATS
01137   *         @arg @ref LL_MDMA_DEST_INC_OFFSET_BYTE or @ref LL_MDMA_DEST_INC_OFFSET_HALFWORD or @ref LL_MDMA_DEST_INC_OFFSET_WORD or @ref LL_MDMA_DEST_INC_OFFSET_DOUBLEWORD
01138   *         @arg @ref LL_MDMA_SRC_INC_OFFSET_BYTE or @ref LL_MDMA_SRC_INC_OFFSET_HALFWORD or @ref LL_MDMA_SRC_INC_OFFSET_WORD or @ref LL_MDMA_SRC_INC_OFFSET_DOUBLEWORD
01139   *         @arg @ref LL_MDMA_DEST_DATA_SIZE_BYTE or @ref LL_MDMA_DEST_DATA_SIZE_HALFWORD or @ref LL_MDMA_DEST_DATA_SIZE_WORD or @ref LL_MDMA_DEST_DATA_SIZE_DOUBLEWORD
01140   *         @arg @ref LL_MDMA_SRC_DATA_SIZE_BYTE or @ref LL_MDMA_SRC_DATA_SIZE_HALFWORD or @ref LL_MDMA_SRC_DATA_SIZE_WORD or @ref LL_MDMA_SRC_DATA_SIZE_DOUBLEWORD
01141   *         @arg @ref LL_MDMA_DEST_FIXED or @ref LL_MDMA_DEST_INCREMENT or @ref LL_MDMA_DEST_DECREMENT
01142   *         @arg @ref LL_MDMA_SRC_FIXED or @ref LL_MDMA_SRC_INCREMENT or @ref LL_MDMA_SRC_DECREMENT
01143   * @param  BufferXferLength This parameter can be a value Between 0 to 0x0000007F
01144   * @retval None
01145   */
01146 __STATIC_INLINE void LL_MDMA_ConfigTransfer(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Configuration, uint32_t BufferXferLength)
01147 {
01148   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01149 
01150   WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR,
01151   Configuration | ((BufferXferLength << MDMA_CTCR_TLEN_Pos) & MDMA_CTCR_TLEN_Msk));
01152 }
01153 
01154 /**
01155   * @brief Enable Bufferable Write Mode.
01156   * @rmtoll CTCR          BWM            LL_MDMA_EnableBufferableWrMode
01157   * @param  MDMAx MDMAx Instance
01158   * @param  Channel This parameter can be one of the following values:
01159   *         @arg @ref LL_MDMA_CHANNEL_0
01160   *         @arg @ref LL_MDMA_CHANNEL_1
01161   *         @arg @ref LL_MDMA_CHANNEL_2
01162   *         @arg @ref LL_MDMA_CHANNEL_3
01163   *         @arg @ref LL_MDMA_CHANNEL_4
01164   *         @arg @ref LL_MDMA_CHANNEL_5
01165   *         @arg @ref LL_MDMA_CHANNEL_6
01166   *         @arg @ref LL_MDMA_CHANNEL_7
01167   *         @arg @ref LL_MDMA_CHANNEL_8
01168   *         @arg @ref LL_MDMA_CHANNEL_9
01169   *         @arg @ref LL_MDMA_CHANNEL_10
01170   *         @arg @ref LL_MDMA_CHANNEL_11
01171   *         @arg @ref LL_MDMA_CHANNEL_12
01172   *         @arg @ref LL_MDMA_CHANNEL_13
01173   *         @arg @ref LL_MDMA_CHANNEL_14
01174   *         @arg @ref LL_MDMA_CHANNEL_15
01175   * @retval None
01176   */
01177 __STATIC_INLINE void LL_MDMA_EnableBufferableWrMode(MDMA_TypeDef *MDMAx, uint32_t Channel)
01178 {
01179   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01180 
01181   SET_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_BWM);
01182 }
01183 
01184 /**
01185   * @brief Disable Bufferable Write Mode.
01186   * @rmtoll CTCR          BWM            LL_MDMA_DisableBufferableWrMode
01187   * @param  MDMAx MDMAx Instance
01188   * @param  Channel This parameter can be one of the following values:
01189   *         @arg @ref LL_MDMA_CHANNEL_0
01190   *         @arg @ref LL_MDMA_CHANNEL_1
01191   *         @arg @ref LL_MDMA_CHANNEL_2
01192   *         @arg @ref LL_MDMA_CHANNEL_3
01193   *         @arg @ref LL_MDMA_CHANNEL_4
01194   *         @arg @ref LL_MDMA_CHANNEL_5
01195   *         @arg @ref LL_MDMA_CHANNEL_6
01196   *         @arg @ref LL_MDMA_CHANNEL_7
01197   *         @arg @ref LL_MDMA_CHANNEL_8
01198   *         @arg @ref LL_MDMA_CHANNEL_9
01199   *         @arg @ref LL_MDMA_CHANNEL_10
01200   *         @arg @ref LL_MDMA_CHANNEL_11
01201   *         @arg @ref LL_MDMA_CHANNEL_12
01202   *         @arg @ref LL_MDMA_CHANNEL_13
01203   *         @arg @ref LL_MDMA_CHANNEL_14
01204   *         @arg @ref LL_MDMA_CHANNEL_15
01205   * @retval None
01206   */
01207 __STATIC_INLINE void LL_MDMA_DisableBufferableWrMode(MDMA_TypeDef *MDMAx, uint32_t Channel)
01208 {
01209   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01210 
01211   CLEAR_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_BWM);
01212 }
01213 
01214 /**
01215   * @brief Check if Bufferable Write Mode is enabled or disabled.
01216   * @rmtoll CTCR          BWM            LL_MDMA_IsEnabledBufferableWrMode
01217   * @param  MDMAx MDMAx Instance
01218   * @param  Channel This parameter can be one of the following values:
01219   *         @arg @ref LL_MDMA_CHANNEL_0
01220   *         @arg @ref LL_MDMA_CHANNEL_1
01221   *         @arg @ref LL_MDMA_CHANNEL_2
01222   *         @arg @ref LL_MDMA_CHANNEL_3
01223   *         @arg @ref LL_MDMA_CHANNEL_4
01224   *         @arg @ref LL_MDMA_CHANNEL_5
01225   *         @arg @ref LL_MDMA_CHANNEL_6
01226   *         @arg @ref LL_MDMA_CHANNEL_7
01227   *         @arg @ref LL_MDMA_CHANNEL_8
01228   *         @arg @ref LL_MDMA_CHANNEL_9
01229   *         @arg @ref LL_MDMA_CHANNEL_10
01230   *         @arg @ref LL_MDMA_CHANNEL_11
01231   *         @arg @ref LL_MDMA_CHANNEL_12
01232   *         @arg @ref LL_MDMA_CHANNEL_13
01233   *         @arg @ref LL_MDMA_CHANNEL_14
01234   *         @arg @ref LL_MDMA_CHANNEL_15
01235   * @retval State of bit (1 or 0).
01236   */
01237 __STATIC_INLINE uint32_t LL_MDMA_IsEnabledBufferableWrMode(MDMA_TypeDef *MDMAx, uint32_t Channel)
01238 {
01239   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01240 
01241   return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_BWM) == (MDMA_CTCR_BWM)) ? 1UL : 0UL);
01242 }
01243 
01244 /**
01245   * @brief Set Request Mode.
01246   * @rmtoll CTCR          SWRM            LL_MDMA_SetRequestMode
01247   * @param  MDMAx MDMAx Instance
01248   * @param  Channel This parameter can be one of the following values:
01249   *         @arg @ref LL_MDMA_CHANNEL_0
01250   *         @arg @ref LL_MDMA_CHANNEL_1
01251   *         @arg @ref LL_MDMA_CHANNEL_2
01252   *         @arg @ref LL_MDMA_CHANNEL_3
01253   *         @arg @ref LL_MDMA_CHANNEL_4
01254   *         @arg @ref LL_MDMA_CHANNEL_5
01255   *         @arg @ref LL_MDMA_CHANNEL_6
01256   *         @arg @ref LL_MDMA_CHANNEL_7
01257   *         @arg @ref LL_MDMA_CHANNEL_8
01258   *         @arg @ref LL_MDMA_CHANNEL_9
01259   *         @arg @ref LL_MDMA_CHANNEL_10
01260   *         @arg @ref LL_MDMA_CHANNEL_11
01261   *         @arg @ref LL_MDMA_CHANNEL_12
01262   *         @arg @ref LL_MDMA_CHANNEL_13
01263   *         @arg @ref LL_MDMA_CHANNEL_14
01264   *         @arg @ref LL_MDMA_CHANNEL_15
01265   * @param  RequestMode This parameter can be one of the following values:
01266   *         @arg @ref LL_MDMA_REQUEST_MODE_HW
01267   *         @arg @ref LL_MDMA_REQUEST_MODE_SW
01268   * @retval None
01269   */
01270 __STATIC_INLINE void LL_MDMA_SetRequestMode(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t RequestMode)
01271 {
01272   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01273 
01274   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SWRM, RequestMode);
01275 }
01276 
01277 /**
01278   * @brief Get Request Mode.
01279   * @rmtoll CTCR          SWRM            LL_MDMA_GetRequestMode
01280   * @param  MDMAx MDMAx Instance
01281   * @param  Channel This parameter can be one of the following values:
01282   *         @arg @ref LL_MDMA_CHANNEL_0
01283   *         @arg @ref LL_MDMA_CHANNEL_1
01284   *         @arg @ref LL_MDMA_CHANNEL_2
01285   *         @arg @ref LL_MDMA_CHANNEL_3
01286   *         @arg @ref LL_MDMA_CHANNEL_4
01287   *         @arg @ref LL_MDMA_CHANNEL_5
01288   *         @arg @ref LL_MDMA_CHANNEL_6
01289   *         @arg @ref LL_MDMA_CHANNEL_7
01290   *         @arg @ref LL_MDMA_CHANNEL_8
01291   *         @arg @ref LL_MDMA_CHANNEL_9
01292   *         @arg @ref LL_MDMA_CHANNEL_10
01293   *         @arg @ref LL_MDMA_CHANNEL_11
01294   *         @arg @ref LL_MDMA_CHANNEL_12
01295   *         @arg @ref LL_MDMA_CHANNEL_13
01296   *         @arg @ref LL_MDMA_CHANNEL_14
01297   *         @arg @ref LL_MDMA_CHANNEL_15
01298   * @retval Returned value can be one of the following values:
01299   *         @arg @ref LL_MDMA_REQUEST_MODE_HW
01300   *         @arg @ref LL_MDMA_REQUEST_MODE_SW
01301   * @retval None
01302   */
01303 __STATIC_INLINE uint32_t LL_MDMA_GetRequestMode(MDMA_TypeDef *MDMAx, uint32_t Channel)
01304 {
01305   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01306 
01307   return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SWRM));
01308 }
01309 
01310 /**
01311   * @brief Set Trigger Mode.
01312   * @rmtoll CTCR          TRGM            LL_MDMA_SetTriggerMode
01313   * @param  MDMAx MDMAx Instance
01314   * @param  Channel This parameter can be one of the following values:
01315   *         @arg @ref LL_MDMA_CHANNEL_0
01316   *         @arg @ref LL_MDMA_CHANNEL_1
01317   *         @arg @ref LL_MDMA_CHANNEL_2
01318   *         @arg @ref LL_MDMA_CHANNEL_3
01319   *         @arg @ref LL_MDMA_CHANNEL_4
01320   *         @arg @ref LL_MDMA_CHANNEL_5
01321   *         @arg @ref LL_MDMA_CHANNEL_6
01322   *         @arg @ref LL_MDMA_CHANNEL_7
01323   *         @arg @ref LL_MDMA_CHANNEL_8
01324   *         @arg @ref LL_MDMA_CHANNEL_9
01325   *         @arg @ref LL_MDMA_CHANNEL_10
01326   *         @arg @ref LL_MDMA_CHANNEL_11
01327   *         @arg @ref LL_MDMA_CHANNEL_12
01328   *         @arg @ref LL_MDMA_CHANNEL_13
01329   *         @arg @ref LL_MDMA_CHANNEL_14
01330   *         @arg @ref LL_MDMA_CHANNEL_15
01331   * @param  TriggerMode This parameter can be one of the following values:
01332   *         @arg @ref LL_MDMA_BUFFER_TRANSFER
01333   *         @arg @ref LL_MDMA_BLOCK_TRANSFER
01334   *         @arg @ref LL_MDMA_REPEAT_BLOCK_TRANSFER
01335   *         @arg @ref LL_MDMA_FULL_TRANSFER
01336   * @retval None
01337   */
01338 __STATIC_INLINE void LL_MDMA_SetTriggerMode(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t TriggerMode)
01339 {
01340   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01341 
01342   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_TRGM, TriggerMode);
01343 }
01344 
01345 /**
01346   * @brief Get Trigger Mode.
01347   * @rmtoll CTCR          TRGM            LL_MDMA_GetTriggerMode
01348   * @param  MDMAx MDMAx Instance
01349   * @param  Channel This parameter can be one of the following values:
01350   *         @arg @ref LL_MDMA_CHANNEL_0
01351   *         @arg @ref LL_MDMA_CHANNEL_1
01352   *         @arg @ref LL_MDMA_CHANNEL_2
01353   *         @arg @ref LL_MDMA_CHANNEL_3
01354   *         @arg @ref LL_MDMA_CHANNEL_4
01355   *         @arg @ref LL_MDMA_CHANNEL_5
01356   *         @arg @ref LL_MDMA_CHANNEL_6
01357   *         @arg @ref LL_MDMA_CHANNEL_7
01358   *         @arg @ref LL_MDMA_CHANNEL_8
01359   *         @arg @ref LL_MDMA_CHANNEL_9
01360   *         @arg @ref LL_MDMA_CHANNEL_10
01361   *         @arg @ref LL_MDMA_CHANNEL_11
01362   *         @arg @ref LL_MDMA_CHANNEL_12
01363   *         @arg @ref LL_MDMA_CHANNEL_13
01364   *         @arg @ref LL_MDMA_CHANNEL_14
01365   *         @arg @ref LL_MDMA_CHANNEL_15
01366   * @retval Returned value can be one of the following values:
01367   *         @arg @ref LL_MDMA_BUFFER_TRANSFER
01368   *         @arg @ref LL_MDMA_BLOCK_TRANSFER
01369   *         @arg @ref LL_MDMA_REPEAT_BLOCK_TRANSFER
01370   *         @arg @ref LL_MDMA_FULL_TRANSFER
01371   * @retval None
01372   */
01373 __STATIC_INLINE uint32_t LL_MDMA_GetTriggerMode(MDMA_TypeDef *MDMAx, uint32_t Channel)
01374 {
01375   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01376 
01377   return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_TRGM));
01378 }
01379 
01380 /**
01381   * @brief Set Padding Alignment.
01382   * @rmtoll CTCR          PAM            LL_MDMA_SetPaddingAlignment
01383   * @param  MDMAx MDMAx Instance
01384   * @param  Channel This parameter can be one of the following values:
01385   *         @arg @ref LL_MDMA_CHANNEL_0
01386   *         @arg @ref LL_MDMA_CHANNEL_1
01387   *         @arg @ref LL_MDMA_CHANNEL_2
01388   *         @arg @ref LL_MDMA_CHANNEL_3
01389   *         @arg @ref LL_MDMA_CHANNEL_4
01390   *         @arg @ref LL_MDMA_CHANNEL_5
01391   *         @arg @ref LL_MDMA_CHANNEL_6
01392   *         @arg @ref LL_MDMA_CHANNEL_7
01393   *         @arg @ref LL_MDMA_CHANNEL_8
01394   *         @arg @ref LL_MDMA_CHANNEL_9
01395   *         @arg @ref LL_MDMA_CHANNEL_10
01396   *         @arg @ref LL_MDMA_CHANNEL_11
01397   *         @arg @ref LL_MDMA_CHANNEL_12
01398   *         @arg @ref LL_MDMA_CHANNEL_13
01399   *         @arg @ref LL_MDMA_CHANNEL_14
01400   *         @arg @ref LL_MDMA_CHANNEL_15
01401   * @param  PaddingAlignment This parameter can be one of the following values:
01402   *         @arg @ref LL_MDMA_DATAALIGN_RIGHT
01403   *         @arg @ref LL_MDMA_DATAALIGN_RIGHT_SIGNED
01404   *         @arg @ref LL_MDMA_DATAALIGN_LEFT
01405   * @retval None
01406   */
01407 __STATIC_INLINE void LL_MDMA_SetPaddingAlignment(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t PaddingAlignment)
01408 {
01409   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01410 
01411   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_PAM, PaddingAlignment);
01412 }
01413 
01414 /**
01415   * @brief Get Padding Alignment.
01416   * @rmtoll CTCR          PAM            LL_MDMA_GetPaddingAlignment
01417   * @param  MDMAx MDMAx Instance
01418   * @param  Channel This parameter can be one of the following values:
01419   *         @arg @ref LL_MDMA_CHANNEL_0
01420   *         @arg @ref LL_MDMA_CHANNEL_1
01421   *         @arg @ref LL_MDMA_CHANNEL_2
01422   *         @arg @ref LL_MDMA_CHANNEL_3
01423   *         @arg @ref LL_MDMA_CHANNEL_4
01424   *         @arg @ref LL_MDMA_CHANNEL_5
01425   *         @arg @ref LL_MDMA_CHANNEL_6
01426   *         @arg @ref LL_MDMA_CHANNEL_7
01427   *         @arg @ref LL_MDMA_CHANNEL_8
01428   *         @arg @ref LL_MDMA_CHANNEL_9
01429   *         @arg @ref LL_MDMA_CHANNEL_10
01430   *         @arg @ref LL_MDMA_CHANNEL_11
01431   *         @arg @ref LL_MDMA_CHANNEL_12
01432   *         @arg @ref LL_MDMA_CHANNEL_13
01433   *         @arg @ref LL_MDMA_CHANNEL_14
01434   *         @arg @ref LL_MDMA_CHANNEL_15
01435   * @retval Returned value can be one of the following values:
01436   *         @arg @ref LL_MDMA_DATAALIGN_RIGHT
01437   *         @arg @ref LL_MDMA_DATAALIGN_RIGHT_SIGNED
01438   *         @arg @ref LL_MDMA_DATAALIGN_LEFT
01439   * @retval None
01440   */
01441 __STATIC_INLINE uint32_t LL_MDMA_GetPaddingAlignment(MDMA_TypeDef *MDMAx, uint32_t Channel)
01442 {
01443   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01444 
01445   return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_PAM));
01446 }
01447 
01448 
01449 /**
01450   * @brief Enable Packing.
01451   * @rmtoll CTCR          PKE            LL_MDMA_EnablePacking
01452   * @param  MDMAx MDMAx Instance
01453   * @param  Channel This parameter can be one of the following values:
01454   *         @arg @ref LL_MDMA_CHANNEL_0
01455   *         @arg @ref LL_MDMA_CHANNEL_1
01456   *         @arg @ref LL_MDMA_CHANNEL_2
01457   *         @arg @ref LL_MDMA_CHANNEL_3
01458   *         @arg @ref LL_MDMA_CHANNEL_4
01459   *         @arg @ref LL_MDMA_CHANNEL_5
01460   *         @arg @ref LL_MDMA_CHANNEL_6
01461   *         @arg @ref LL_MDMA_CHANNEL_7
01462   *         @arg @ref LL_MDMA_CHANNEL_8
01463   *         @arg @ref LL_MDMA_CHANNEL_9
01464   *         @arg @ref LL_MDMA_CHANNEL_10
01465   *         @arg @ref LL_MDMA_CHANNEL_11
01466   *         @arg @ref LL_MDMA_CHANNEL_12
01467   *         @arg @ref LL_MDMA_CHANNEL_13
01468   *         @arg @ref LL_MDMA_CHANNEL_14
01469   *         @arg @ref LL_MDMA_CHANNEL_15
01470   * @retval None
01471   */
01472 __STATIC_INLINE void LL_MDMA_EnablePacking(MDMA_TypeDef *MDMAx, uint32_t Channel)
01473 {
01474   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01475 
01476   SET_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_PKE);
01477 }
01478 
01479 /**
01480   * @brief Disable Packing.
01481   * @rmtoll CTCR          PKE            LL_MDMA_DisablePacking
01482   * @param  MDMAx MDMAx Instance
01483   * @param  Channel This parameter can be one of the following values:
01484   *         @arg @ref LL_MDMA_CHANNEL_0
01485   *         @arg @ref LL_MDMA_CHANNEL_1
01486   *         @arg @ref LL_MDMA_CHANNEL_2
01487   *         @arg @ref LL_MDMA_CHANNEL_3
01488   *         @arg @ref LL_MDMA_CHANNEL_4
01489   *         @arg @ref LL_MDMA_CHANNEL_5
01490   *         @arg @ref LL_MDMA_CHANNEL_6
01491   *         @arg @ref LL_MDMA_CHANNEL_7
01492   *         @arg @ref LL_MDMA_CHANNEL_8
01493   *         @arg @ref LL_MDMA_CHANNEL_9
01494   *         @arg @ref LL_MDMA_CHANNEL_10
01495   *         @arg @ref LL_MDMA_CHANNEL_11
01496   *         @arg @ref LL_MDMA_CHANNEL_12
01497   *         @arg @ref LL_MDMA_CHANNEL_13
01498   *         @arg @ref LL_MDMA_CHANNEL_14
01499   *         @arg @ref LL_MDMA_CHANNEL_15
01500   * @retval None
01501   */
01502 __STATIC_INLINE void LL_MDMA_DisablePacking(MDMA_TypeDef *MDMAx, uint32_t Channel)
01503 {
01504   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01505 
01506   CLEAR_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_PKE);
01507 }
01508 
01509 /**
01510   * @brief Check if packing is enabled or disabled.
01511   * @rmtoll CTCR          PKE            LL_MDMA_IsEnabledPacking
01512   * @param  MDMAx MDMAx Instance
01513   * @param  Channel This parameter can be one of the following values:
01514   *         @arg @ref LL_MDMA_CHANNEL_0
01515   *         @arg @ref LL_MDMA_CHANNEL_1
01516   *         @arg @ref LL_MDMA_CHANNEL_2
01517   *         @arg @ref LL_MDMA_CHANNEL_3
01518   *         @arg @ref LL_MDMA_CHANNEL_4
01519   *         @arg @ref LL_MDMA_CHANNEL_5
01520   *         @arg @ref LL_MDMA_CHANNEL_6
01521   *         @arg @ref LL_MDMA_CHANNEL_7
01522   *         @arg @ref LL_MDMA_CHANNEL_8
01523   *         @arg @ref LL_MDMA_CHANNEL_9
01524   *         @arg @ref LL_MDMA_CHANNEL_10
01525   *         @arg @ref LL_MDMA_CHANNEL_11
01526   *         @arg @ref LL_MDMA_CHANNEL_12
01527   *         @arg @ref LL_MDMA_CHANNEL_13
01528   *         @arg @ref LL_MDMA_CHANNEL_14
01529   *         @arg @ref LL_MDMA_CHANNEL_15
01530   * @retval State of bit (1 or 0).
01531   */
01532 __STATIC_INLINE uint32_t LL_MDMA_IsEnabledPacking(MDMA_TypeDef *MDMAx, uint32_t Channel)
01533 {
01534   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01535 
01536   return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_PKE) == (MDMA_CTCR_PKE)) ? 1UL : 0UL);
01537 }
01538 
01539 /**
01540   * @brief Set Buffer Transfer Length.
01541   * @rmtoll CTCR          TLEN            LL_MDMA_SetBufferTransferLength
01542   * @param  MDMAx MDMAx Instance
01543   * @param  Channel This parameter can be one of the following values:
01544   *         @arg @ref LL_MDMA_CHANNEL_0
01545   *         @arg @ref LL_MDMA_CHANNEL_1
01546   *         @arg @ref LL_MDMA_CHANNEL_2
01547   *         @arg @ref LL_MDMA_CHANNEL_3
01548   *         @arg @ref LL_MDMA_CHANNEL_4
01549   *         @arg @ref LL_MDMA_CHANNEL_5
01550   *         @arg @ref LL_MDMA_CHANNEL_6
01551   *         @arg @ref LL_MDMA_CHANNEL_7
01552   *         @arg @ref LL_MDMA_CHANNEL_8
01553   *         @arg @ref LL_MDMA_CHANNEL_9
01554   *         @arg @ref LL_MDMA_CHANNEL_10
01555   *         @arg @ref LL_MDMA_CHANNEL_11
01556   *         @arg @ref LL_MDMA_CHANNEL_12
01557   *         @arg @ref LL_MDMA_CHANNEL_13
01558   *         @arg @ref LL_MDMA_CHANNEL_14
01559   *         @arg @ref LL_MDMA_CHANNEL_15
01560   * @param  Length Between 0 to 0x0000007F
01561   * @retval None
01562   */
01563 __STATIC_INLINE void LL_MDMA_SetBufferTransferLength(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Length)
01564 {
01565   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01566 
01567   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_TLEN,
01568               (Length << MDMA_CTCR_TLEN_Pos) & MDMA_CTCR_TLEN_Msk);
01569 }
01570 
01571 /**
01572   * @brief Get Buffer Transfer Length.
01573   * @rmtoll CTCR          TLEN            LL_MDMA_GetBufferTransferLength
01574   * @param  MDMAx MDMAx Instance
01575   * @param  Channel This parameter can be one of the following values:
01576   *         @arg @ref LL_MDMA_CHANNEL_0
01577   *         @arg @ref LL_MDMA_CHANNEL_1
01578   *         @arg @ref LL_MDMA_CHANNEL_2
01579   *         @arg @ref LL_MDMA_CHANNEL_3
01580   *         @arg @ref LL_MDMA_CHANNEL_4
01581   *         @arg @ref LL_MDMA_CHANNEL_5
01582   *         @arg @ref LL_MDMA_CHANNEL_6
01583   *         @arg @ref LL_MDMA_CHANNEL_7
01584   *         @arg @ref LL_MDMA_CHANNEL_8
01585   *         @arg @ref LL_MDMA_CHANNEL_9
01586   *         @arg @ref LL_MDMA_CHANNEL_10
01587   *         @arg @ref LL_MDMA_CHANNEL_11
01588   *         @arg @ref LL_MDMA_CHANNEL_12
01589   *         @arg @ref LL_MDMA_CHANNEL_13
01590   *         @arg @ref LL_MDMA_CHANNEL_14
01591   *         @arg @ref LL_MDMA_CHANNEL_15
01592   * @retval Between 0 to 0x0000007F
01593   * @retval None
01594   */
01595 __STATIC_INLINE uint32_t LL_MDMA_GetBufferTransferLength(MDMA_TypeDef *MDMAx, uint32_t Channel)
01596 {
01597   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01598 
01599   return(READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_TLEN) >> MDMA_CTCR_TLEN_Pos);
01600 }
01601 
01602 /**
01603   * @brief Set Destination burst transfer.
01604   * @rmtoll CTCR          DBURST            LL_MDMA_SetDestinationBurstSize
01605   * @param  MDMAx MDMAx Instance
01606   * @param  Channel This parameter can be one of the following values:
01607   *         @arg @ref LL_MDMA_CHANNEL_0
01608   *         @arg @ref LL_MDMA_CHANNEL_1
01609   *         @arg @ref LL_MDMA_CHANNEL_2
01610   *         @arg @ref LL_MDMA_CHANNEL_3
01611   *         @arg @ref LL_MDMA_CHANNEL_4
01612   *         @arg @ref LL_MDMA_CHANNEL_5
01613   *         @arg @ref LL_MDMA_CHANNEL_6
01614   *         @arg @ref LL_MDMA_CHANNEL_7
01615   *         @arg @ref LL_MDMA_CHANNEL_8
01616   *         @arg @ref LL_MDMA_CHANNEL_9
01617   *         @arg @ref LL_MDMA_CHANNEL_10
01618   *         @arg @ref LL_MDMA_CHANNEL_11
01619   *         @arg @ref LL_MDMA_CHANNEL_12
01620   *         @arg @ref LL_MDMA_CHANNEL_13
01621   *         @arg @ref LL_MDMA_CHANNEL_14
01622   *         @arg @ref LL_MDMA_CHANNEL_15
01623   * @param  Dburst This parameter can be one of the following values:
01624   *         @arg @ref LL_MDMA_DEST_BURST_SINGLE
01625   *         @arg @ref LL_MDMA_DEST_BURST_2BEATS
01626   *         @arg @ref LL_MDMA_DEST_BURST_4BEATS
01627   *         @arg @ref LL_MDMA_DEST_BURST_8BEATS
01628   *         @arg @ref LL_MDMA_DEST_BURST_16BEATS
01629   *         @arg @ref LL_MDMA_DEST_BURST_32BEATS
01630   *         @arg @ref LL_MDMA_DEST_BURST_64BEATS
01631   *         @arg @ref LL_MDMA_DEST_BURST_128BEATS
01632   * @retval None
01633   */
01634 __STATIC_INLINE void LL_MDMA_SetDestinationBurstSize(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Dburst)
01635 {
01636   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01637 
01638   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_DBURST, Dburst);
01639 }
01640 
01641 /**
01642   * @brief Get Destination burst transfer.
01643   * @rmtoll CTCR          DBURST            LL_MDMA_GetDestinationBurstSize
01644   * @param  MDMAx MDMAx Instance
01645   * @param  Channel This parameter can be one of the following values:
01646   *         @arg @ref LL_MDMA_CHANNEL_0
01647   *         @arg @ref LL_MDMA_CHANNEL_1
01648   *         @arg @ref LL_MDMA_CHANNEL_2
01649   *         @arg @ref LL_MDMA_CHANNEL_3
01650   *         @arg @ref LL_MDMA_CHANNEL_4
01651   *         @arg @ref LL_MDMA_CHANNEL_5
01652   *         @arg @ref LL_MDMA_CHANNEL_6
01653   *         @arg @ref LL_MDMA_CHANNEL_7
01654   *         @arg @ref LL_MDMA_CHANNEL_8
01655   *         @arg @ref LL_MDMA_CHANNEL_9
01656   *         @arg @ref LL_MDMA_CHANNEL_10
01657   *         @arg @ref LL_MDMA_CHANNEL_11
01658   *         @arg @ref LL_MDMA_CHANNEL_12
01659   *         @arg @ref LL_MDMA_CHANNEL_13
01660   *         @arg @ref LL_MDMA_CHANNEL_14
01661   *         @arg @ref LL_MDMA_CHANNEL_15
01662   * @retval Returned value can be one of the following values:
01663   *         @arg @ref LL_MDMA_DEST_BURST_SINGLE
01664   *         @arg @ref LL_MDMA_DEST_BURST_2BEATS
01665   *         @arg @ref LL_MDMA_DEST_BURST_4BEATS
01666   *         @arg @ref LL_MDMA_DEST_BURST_8BEATS
01667   *         @arg @ref LL_MDMA_DEST_BURST_16BEATS
01668   *         @arg @ref LL_MDMA_DEST_BURST_32BEATS
01669   *         @arg @ref LL_MDMA_DEST_BURST_64BEATS
01670   *         @arg @ref LL_MDMA_DEST_BURST_128BEATS
01671   * @retval None
01672   */
01673 __STATIC_INLINE uint32_t LL_MDMA_GetDestinationBurstSize(MDMA_TypeDef *MDMAx, uint32_t Channel)
01674 {
01675   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01676 
01677   return(READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_DBURST));
01678 }
01679 
01680 /**
01681   * @brief Set Source burst transfer.
01682   * @rmtoll CTCR          SBURST            LL_MDMA_SetSourceBurstSize
01683   * @param  MDMAx MDMAx Instance
01684   * @param  Channel This parameter can be one of the following values:
01685   *         @arg @ref LL_MDMA_CHANNEL_0
01686   *         @arg @ref LL_MDMA_CHANNEL_1
01687   *         @arg @ref LL_MDMA_CHANNEL_2
01688   *         @arg @ref LL_MDMA_CHANNEL_3
01689   *         @arg @ref LL_MDMA_CHANNEL_4
01690   *         @arg @ref LL_MDMA_CHANNEL_5
01691   *         @arg @ref LL_MDMA_CHANNEL_6
01692   *         @arg @ref LL_MDMA_CHANNEL_7
01693   *         @arg @ref LL_MDMA_CHANNEL_8
01694   *         @arg @ref LL_MDMA_CHANNEL_9
01695   *         @arg @ref LL_MDMA_CHANNEL_10
01696   *         @arg @ref LL_MDMA_CHANNEL_11
01697   *         @arg @ref LL_MDMA_CHANNEL_12
01698   *         @arg @ref LL_MDMA_CHANNEL_13
01699   *         @arg @ref LL_MDMA_CHANNEL_14
01700   *         @arg @ref LL_MDMA_CHANNEL_15
01701   * @param  Sburst This parameter can be one of the following values:
01702   *         @arg @ref LL_MDMA_SRC_BURST_SINGLE
01703   *         @arg @ref LL_MDMA_SRC_BURST_2BEATS
01704   *         @arg @ref LL_MDMA_SRC_BURST_4BEATS
01705   *         @arg @ref LL_MDMA_SRC_BURST_8BEATS
01706   *         @arg @ref LL_MDMA_SRC_BURST_16BEATS
01707   *         @arg @ref LL_MDMA_SRC_BURST_32BEATS
01708   *         @arg @ref LL_MDMA_SRC_BURST_64BEATS
01709   *         @arg @ref LL_MDMA_SRC_BURST_128BEATS
01710   * @retval None
01711   */
01712 __STATIC_INLINE void LL_MDMA_SetSourceBurstSize(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Sburst)
01713 {
01714   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01715 
01716   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SBURST, Sburst);
01717 }
01718 
01719 /**
01720   * @brief Get Source burst transfer.
01721   * @rmtoll CTCR          SBURST            LL_MDMA_GetSourceBurstSize
01722   * @param  MDMAx MDMAx Instance
01723   * @param  Channel This parameter can be one of the following values:
01724   *         @arg @ref LL_MDMA_CHANNEL_0
01725   *         @arg @ref LL_MDMA_CHANNEL_1
01726   *         @arg @ref LL_MDMA_CHANNEL_2
01727   *         @arg @ref LL_MDMA_CHANNEL_3
01728   *         @arg @ref LL_MDMA_CHANNEL_4
01729   *         @arg @ref LL_MDMA_CHANNEL_5
01730   *         @arg @ref LL_MDMA_CHANNEL_6
01731   *         @arg @ref LL_MDMA_CHANNEL_7
01732   *         @arg @ref LL_MDMA_CHANNEL_8
01733   *         @arg @ref LL_MDMA_CHANNEL_9
01734   *         @arg @ref LL_MDMA_CHANNEL_10
01735   *         @arg @ref LL_MDMA_CHANNEL_11
01736   *         @arg @ref LL_MDMA_CHANNEL_12
01737   *         @arg @ref LL_MDMA_CHANNEL_13
01738   *         @arg @ref LL_MDMA_CHANNEL_14
01739   *         @arg @ref LL_MDMA_CHANNEL_15
01740   * @retval Returned value can be one of the following values:
01741   *         @arg @ref LL_MDMA_SRC_BURST_SINGLE
01742   *         @arg @ref LL_MDMA_SRC_BURST_2BEATS
01743   *         @arg @ref LL_MDMA_SRC_BURST_4BEATS
01744   *         @arg @ref LL_MDMA_SRC_BURST_8BEATS
01745   *         @arg @ref LL_MDMA_SRC_BURST_16BEATS
01746   *         @arg @ref LL_MDMA_SRC_BURST_32BEATS
01747   *         @arg @ref LL_MDMA_SRC_BURST_64BEATS
01748   *         @arg @ref LL_MDMA_SRC_BURST_128BEATS
01749   * @retval None
01750   */
01751 __STATIC_INLINE uint32_t LL_MDMA_GetSourceBurstSize(MDMA_TypeDef *MDMAx, uint32_t Channel)
01752 {
01753   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01754 
01755   return(READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SBURST));
01756 }
01757 
01758 /**
01759   * @brief Set Destination Increment Offset Size.
01760   * @rmtoll CTCR          DINCOS            LL_MDMA_SetDestinationIncSize
01761   * @param  MDMAx MDMAx Instance
01762   * @param  Channel This parameter can be one of the following values:
01763   *         @arg @ref LL_MDMA_CHANNEL_0
01764   *         @arg @ref LL_MDMA_CHANNEL_1
01765   *         @arg @ref LL_MDMA_CHANNEL_2
01766   *         @arg @ref LL_MDMA_CHANNEL_3
01767   *         @arg @ref LL_MDMA_CHANNEL_4
01768   *         @arg @ref LL_MDMA_CHANNEL_5
01769   *         @arg @ref LL_MDMA_CHANNEL_6
01770   *         @arg @ref LL_MDMA_CHANNEL_7
01771   *         @arg @ref LL_MDMA_CHANNEL_8
01772   *         @arg @ref LL_MDMA_CHANNEL_9
01773   *         @arg @ref LL_MDMA_CHANNEL_10
01774   *         @arg @ref LL_MDMA_CHANNEL_11
01775   *         @arg @ref LL_MDMA_CHANNEL_12
01776   *         @arg @ref LL_MDMA_CHANNEL_13
01777   *         @arg @ref LL_MDMA_CHANNEL_14
01778   *         @arg @ref LL_MDMA_CHANNEL_15
01779   * @param  IncSize This parameter can be one of the following values:
01780   *         @arg @ref LL_MDMA_DEST_INC_OFFSET_BYTE
01781   *         @arg @ref LL_MDMA_DEST_INC_OFFSET_HALFWORD
01782   *         @arg @ref LL_MDMA_DEST_INC_OFFSET_WORD
01783   *         @arg @ref LL_MDMA_DEST_INC_OFFSET_DOUBLEWORD
01784   * @retval None
01785   */
01786 __STATIC_INLINE void LL_MDMA_SetDestinationIncSize(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t IncSize)
01787 {
01788   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01789 
01790   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_DINCOS, IncSize);
01791 }
01792 
01793 /**
01794   * @brief Get Destination Increment Offset Size.
01795   * @rmtoll CTCR          DINCOS            LL_MDMA_GetDestinationIncSize
01796   * @param  MDMAx MDMAx Instance
01797   * @param  Channel This parameter can be one of the following values:
01798   *         @arg @ref LL_MDMA_CHANNEL_0
01799   *         @arg @ref LL_MDMA_CHANNEL_1
01800   *         @arg @ref LL_MDMA_CHANNEL_2
01801   *         @arg @ref LL_MDMA_CHANNEL_3
01802   *         @arg @ref LL_MDMA_CHANNEL_4
01803   *         @arg @ref LL_MDMA_CHANNEL_5
01804   *         @arg @ref LL_MDMA_CHANNEL_6
01805   *         @arg @ref LL_MDMA_CHANNEL_7
01806   *         @arg @ref LL_MDMA_CHANNEL_8
01807   *         @arg @ref LL_MDMA_CHANNEL_9
01808   *         @arg @ref LL_MDMA_CHANNEL_10
01809   *         @arg @ref LL_MDMA_CHANNEL_11
01810   *         @arg @ref LL_MDMA_CHANNEL_12
01811   *         @arg @ref LL_MDMA_CHANNEL_13
01812   *         @arg @ref LL_MDMA_CHANNEL_14
01813   *         @arg @ref LL_MDMA_CHANNEL_15
01814   * @retval Returned value can be one of the following values:
01815   *         @arg @ref LL_MDMA_DEST_INC_OFFSET_BYTE
01816   *         @arg @ref LL_MDMA_DEST_INC_OFFSET_HALFWORD
01817   *         @arg @ref LL_MDMA_DEST_INC_OFFSET_WORD
01818   *         @arg @ref LL_MDMA_DEST_INC_OFFSET_DOUBLEWORD
01819   * @retval None
01820   */
01821 __STATIC_INLINE uint32_t LL_MDMA_GetDestinationIncSize(MDMA_TypeDef *MDMAx, uint32_t Channel)
01822 {
01823   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01824 
01825   return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_DINCOS));
01826 }
01827 
01828 /**
01829   * @brief Set Source Increment Offset Size.
01830   * @rmtoll CTCR          SINCOS            LL_MDMA_SetSourceIncSize
01831   * @param  MDMAx MDMAx Instance
01832   * @param  Channel This parameter can be one of the following values:
01833   *         @arg @ref LL_MDMA_CHANNEL_0
01834   *         @arg @ref LL_MDMA_CHANNEL_1
01835   *         @arg @ref LL_MDMA_CHANNEL_2
01836   *         @arg @ref LL_MDMA_CHANNEL_3
01837   *         @arg @ref LL_MDMA_CHANNEL_4
01838   *         @arg @ref LL_MDMA_CHANNEL_5
01839   *         @arg @ref LL_MDMA_CHANNEL_6
01840   *         @arg @ref LL_MDMA_CHANNEL_7
01841   *         @arg @ref LL_MDMA_CHANNEL_8
01842   *         @arg @ref LL_MDMA_CHANNEL_9
01843   *         @arg @ref LL_MDMA_CHANNEL_10
01844   *         @arg @ref LL_MDMA_CHANNEL_11
01845   *         @arg @ref LL_MDMA_CHANNEL_12
01846   *         @arg @ref LL_MDMA_CHANNEL_13
01847   *         @arg @ref LL_MDMA_CHANNEL_14
01848   *         @arg @ref LL_MDMA_CHANNEL_15
01849   * @param  IncSize This parameter can be one of the following values:
01850   *         @arg @ref LL_MDMA_SRC_INC_OFFSET_BYTE
01851   *         @arg @ref LL_MDMA_SRC_INC_OFFSET_HALFWORD
01852   *         @arg @ref LL_MDMA_SRC_INC_OFFSET_WORD
01853   *         @arg @ref LL_MDMA_SRC_INC_OFFSET_DOUBLEWORD
01854   * @retval None
01855   */
01856 __STATIC_INLINE void LL_MDMA_SetSourceIncSize(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t IncSize)
01857 {
01858   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01859 
01860   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SINCOS, IncSize);
01861 }
01862 
01863 /**
01864   * @brief Get Source Increment Offset Size.
01865   * @rmtoll CTCR          SINCOS            LL_MDMA_GetSourceIncSize
01866   * @param  MDMAx MDMAx Instance
01867   * @param  Channel This parameter can be one of the following values:
01868   *         @arg @ref LL_MDMA_CHANNEL_0
01869   *         @arg @ref LL_MDMA_CHANNEL_1
01870   *         @arg @ref LL_MDMA_CHANNEL_2
01871   *         @arg @ref LL_MDMA_CHANNEL_3
01872   *         @arg @ref LL_MDMA_CHANNEL_4
01873   *         @arg @ref LL_MDMA_CHANNEL_5
01874   *         @arg @ref LL_MDMA_CHANNEL_6
01875   *         @arg @ref LL_MDMA_CHANNEL_7
01876   *         @arg @ref LL_MDMA_CHANNEL_8
01877   *         @arg @ref LL_MDMA_CHANNEL_9
01878   *         @arg @ref LL_MDMA_CHANNEL_10
01879   *         @arg @ref LL_MDMA_CHANNEL_11
01880   *         @arg @ref LL_MDMA_CHANNEL_12
01881   *         @arg @ref LL_MDMA_CHANNEL_13
01882   *         @arg @ref LL_MDMA_CHANNEL_14
01883   *         @arg @ref LL_MDMA_CHANNEL_15
01884   * @retval Returned value can be one of the following values:
01885   *         @arg @ref LL_MDMA_SRC_INC_OFFSET_BYTE
01886   *         @arg @ref LL_MDMA_SRC_INC_OFFSET_HALFWORD
01887   *         @arg @ref LL_MDMA_SRC_INC_OFFSET_WORD
01888   *         @arg @ref LL_MDMA_SRC_INC_OFFSET_DOUBLEWORD
01889   * @retval None
01890   */
01891 __STATIC_INLINE uint32_t LL_MDMA_GetSourceIncSize(MDMA_TypeDef *MDMAx, uint32_t Channel)
01892 {
01893   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01894 
01895   return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SINCOS));
01896 }
01897 
01898 /**
01899   * @brief Set Destination Data Size.
01900   * @rmtoll CTCR          DSIZE            LL_MDMA_SetDestinationDataSize
01901   * @param  MDMAx MDMAx Instance
01902   * @param  Channel This parameter can be one of the following values:
01903   *         @arg @ref LL_MDMA_CHANNEL_0
01904   *         @arg @ref LL_MDMA_CHANNEL_1
01905   *         @arg @ref LL_MDMA_CHANNEL_2
01906   *         @arg @ref LL_MDMA_CHANNEL_3
01907   *         @arg @ref LL_MDMA_CHANNEL_4
01908   *         @arg @ref LL_MDMA_CHANNEL_5
01909   *         @arg @ref LL_MDMA_CHANNEL_6
01910   *         @arg @ref LL_MDMA_CHANNEL_7
01911   *         @arg @ref LL_MDMA_CHANNEL_8
01912   *         @arg @ref LL_MDMA_CHANNEL_9
01913   *         @arg @ref LL_MDMA_CHANNEL_10
01914   *         @arg @ref LL_MDMA_CHANNEL_11
01915   *         @arg @ref LL_MDMA_CHANNEL_12
01916   *         @arg @ref LL_MDMA_CHANNEL_13
01917   *         @arg @ref LL_MDMA_CHANNEL_14
01918   *         @arg @ref LL_MDMA_CHANNEL_15
01919   * @param  DestDataSize This parameter can be one of the following values:
01920   *         @arg @ref LL_MDMA_DEST_DATA_SIZE_BYTE
01921   *         @arg @ref LL_MDMA_DEST_DATA_SIZE_HALFWORD
01922   *         @arg @ref LL_MDMA_DEST_DATA_SIZE_WORD
01923   *         @arg @ref LL_MDMA_DEST_DATA_SIZE_DOUBLEWORD
01924   * @retval None
01925   */
01926 __STATIC_INLINE void LL_MDMA_SetDestinationDataSize(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t DestDataSize)
01927 {
01928   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01929 
01930   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_DSIZE, DestDataSize);
01931 }
01932 
01933 /**
01934   * @brief Get Destination Data Size.
01935   * @rmtoll CTCR          DSIZE            LL_MDMA_GetDestinationDataSize
01936   * @param  MDMAx MDMAx Instance
01937   * @param  Channel This parameter can be one of the following values:
01938   *         @arg @ref LL_MDMA_CHANNEL_0
01939   *         @arg @ref LL_MDMA_CHANNEL_1
01940   *         @arg @ref LL_MDMA_CHANNEL_2
01941   *         @arg @ref LL_MDMA_CHANNEL_3
01942   *         @arg @ref LL_MDMA_CHANNEL_4
01943   *         @arg @ref LL_MDMA_CHANNEL_5
01944   *         @arg @ref LL_MDMA_CHANNEL_6
01945   *         @arg @ref LL_MDMA_CHANNEL_7
01946   *         @arg @ref LL_MDMA_CHANNEL_8
01947   *         @arg @ref LL_MDMA_CHANNEL_9
01948   *         @arg @ref LL_MDMA_CHANNEL_10
01949   *         @arg @ref LL_MDMA_CHANNEL_11
01950   *         @arg @ref LL_MDMA_CHANNEL_12
01951   *         @arg @ref LL_MDMA_CHANNEL_13
01952   *         @arg @ref LL_MDMA_CHANNEL_14
01953   *         @arg @ref LL_MDMA_CHANNEL_15
01954   * @retval Returned value can be one of the following values:
01955   *         @arg @ref LL_MDMA_DEST_DATA_SIZE_BYTE
01956   *         @arg @ref LL_MDMA_DEST_DATA_SIZE_HALFWORD
01957   *         @arg @ref LL_MDMA_DEST_DATA_SIZE_WORD
01958   *         @arg @ref LL_MDMA_DEST_DATA_SIZE_DOUBLEWORD
01959   * @retval None
01960   */
01961 __STATIC_INLINE uint32_t LL_MDMA_GetDestinationDataSize(MDMA_TypeDef *MDMAx, uint32_t Channel)
01962 {
01963   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01964 
01965   return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_DSIZE));
01966 }
01967 
01968 /**
01969   * @brief Set Source Data Size.
01970   * @rmtoll CTCR          SSIZE            LL_MDMA_SetSourceDataSize
01971   * @param  MDMAx MDMAx Instance
01972   * @param  Channel This parameter can be one of the following values:
01973   *         @arg @ref LL_MDMA_CHANNEL_0
01974   *         @arg @ref LL_MDMA_CHANNEL_1
01975   *         @arg @ref LL_MDMA_CHANNEL_2
01976   *         @arg @ref LL_MDMA_CHANNEL_3
01977   *         @arg @ref LL_MDMA_CHANNEL_4
01978   *         @arg @ref LL_MDMA_CHANNEL_5
01979   *         @arg @ref LL_MDMA_CHANNEL_6
01980   *         @arg @ref LL_MDMA_CHANNEL_7
01981   *         @arg @ref LL_MDMA_CHANNEL_8
01982   *         @arg @ref LL_MDMA_CHANNEL_9
01983   *         @arg @ref LL_MDMA_CHANNEL_10
01984   *         @arg @ref LL_MDMA_CHANNEL_11
01985   *         @arg @ref LL_MDMA_CHANNEL_12
01986   *         @arg @ref LL_MDMA_CHANNEL_13
01987   *         @arg @ref LL_MDMA_CHANNEL_14
01988   *         @arg @ref LL_MDMA_CHANNEL_15
01989   * @param  SrcDataSize This parameter can be one of the following values:
01990   *         @arg @ref LL_MDMA_SRC_DATA_SIZE_BYTE
01991   *         @arg @ref LL_MDMA_SRC_DATA_SIZE_HALFWORD
01992   *         @arg @ref LL_MDMA_SRC_DATA_SIZE_WORD
01993   *         @arg @ref LL_MDMA_SRC_DATA_SIZE_DOUBLEWORD
01994   * @retval None
01995   */
01996 __STATIC_INLINE void LL_MDMA_SetSourceDataSize(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t SrcDataSize)
01997 {
01998   uint32_t mdma_base_addr = (uint32_t)MDMAx;
01999 
02000   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SSIZE, SrcDataSize);
02001 }
02002 
02003 /**
02004   * @brief Get Source Data Size.
02005   * @rmtoll CTCR          SSIZE            LL_MDMA_GetSourceDataSize
02006   * @param  MDMAx MDMAx Instance
02007   * @param  Channel This parameter can be one of the following values:
02008   *         @arg @ref LL_MDMA_CHANNEL_0
02009   *         @arg @ref LL_MDMA_CHANNEL_1
02010   *         @arg @ref LL_MDMA_CHANNEL_2
02011   *         @arg @ref LL_MDMA_CHANNEL_3
02012   *         @arg @ref LL_MDMA_CHANNEL_4
02013   *         @arg @ref LL_MDMA_CHANNEL_5
02014   *         @arg @ref LL_MDMA_CHANNEL_6
02015   *         @arg @ref LL_MDMA_CHANNEL_7
02016   *         @arg @ref LL_MDMA_CHANNEL_8
02017   *         @arg @ref LL_MDMA_CHANNEL_9
02018   *         @arg @ref LL_MDMA_CHANNEL_10
02019   *         @arg @ref LL_MDMA_CHANNEL_11
02020   *         @arg @ref LL_MDMA_CHANNEL_12
02021   *         @arg @ref LL_MDMA_CHANNEL_13
02022   *         @arg @ref LL_MDMA_CHANNEL_14
02023   *         @arg @ref LL_MDMA_CHANNEL_15
02024   * @retval Returned value can be one of the following values:
02025   *         @arg @ref LL_MDMA_SRC_DATA_SIZE_BYTE
02026   *         @arg @ref LL_MDMA_SRC_DATA_SIZE_HALFWORD
02027   *         @arg @ref LL_MDMA_SRC_DATA_SIZE_WORD
02028   *         @arg @ref LL_MDMA_SRC_DATA_SIZE_DOUBLEWORD
02029   * @retval None
02030   */
02031 __STATIC_INLINE uint32_t LL_MDMA_GetSourceDataSize(MDMA_TypeDef *MDMAx, uint32_t Channel)
02032 {
02033   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02034 
02035   return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SSIZE));
02036 }
02037 
02038 /**
02039   * @brief Set Destination Increment Mode.
02040   * @rmtoll CTCR          DINC            LL_MDMA_SetDestinationIncMode
02041   * @param  MDMAx MDMAx Instance
02042   * @param  Channel This parameter can be one of the following values:
02043   *         @arg @ref LL_MDMA_CHANNEL_0
02044   *         @arg @ref LL_MDMA_CHANNEL_1
02045   *         @arg @ref LL_MDMA_CHANNEL_2
02046   *         @arg @ref LL_MDMA_CHANNEL_3
02047   *         @arg @ref LL_MDMA_CHANNEL_4
02048   *         @arg @ref LL_MDMA_CHANNEL_5
02049   *         @arg @ref LL_MDMA_CHANNEL_6
02050   *         @arg @ref LL_MDMA_CHANNEL_7
02051   *         @arg @ref LL_MDMA_CHANNEL_8
02052   *         @arg @ref LL_MDMA_CHANNEL_9
02053   *         @arg @ref LL_MDMA_CHANNEL_10
02054   *         @arg @ref LL_MDMA_CHANNEL_11
02055   *         @arg @ref LL_MDMA_CHANNEL_12
02056   *         @arg @ref LL_MDMA_CHANNEL_13
02057   *         @arg @ref LL_MDMA_CHANNEL_14
02058   *         @arg @ref LL_MDMA_CHANNEL_15
02059   * @param  DestIncMode This parameter can be one of the following values:
02060   *         @arg @ref LL_MDMA_DEST_FIXED
02061   *         @arg @ref LL_MDMA_DEST_INCREMENT
02062   *         @arg @ref LL_MDMA_DEST_DECREMENT
02063   * @retval None
02064   */
02065 __STATIC_INLINE void LL_MDMA_SetDestinationIncMode(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t DestIncMode)
02066 {
02067   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02068 
02069   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_DINC, DestIncMode);
02070 }
02071 
02072 /**
02073   * @brief Get Destination Increment Mode.
02074   * @rmtoll CTCR          DINC            LL_MDMA_GetDestinationIncMode
02075   * @param  MDMAx MDMAx Instance
02076   * @param  Channel This parameter can be one of the following values:
02077   *         @arg @ref LL_MDMA_CHANNEL_0
02078   *         @arg @ref LL_MDMA_CHANNEL_1
02079   *         @arg @ref LL_MDMA_CHANNEL_2
02080   *         @arg @ref LL_MDMA_CHANNEL_3
02081   *         @arg @ref LL_MDMA_CHANNEL_4
02082   *         @arg @ref LL_MDMA_CHANNEL_5
02083   *         @arg @ref LL_MDMA_CHANNEL_6
02084   *         @arg @ref LL_MDMA_CHANNEL_7
02085   *         @arg @ref LL_MDMA_CHANNEL_8
02086   *         @arg @ref LL_MDMA_CHANNEL_9
02087   *         @arg @ref LL_MDMA_CHANNEL_10
02088   *         @arg @ref LL_MDMA_CHANNEL_11
02089   *         @arg @ref LL_MDMA_CHANNEL_12
02090   *         @arg @ref LL_MDMA_CHANNEL_13
02091   *         @arg @ref LL_MDMA_CHANNEL_14
02092   *         @arg @ref LL_MDMA_CHANNEL_15
02093   * @retval Returned value can be one of the following values:
02094   *         @arg @ref LL_MDMA_DEST_FIXED
02095   *         @arg @ref LL_MDMA_DEST_INCREMENT
02096   *         @arg @ref LL_MDMA_DEST_DECREMENT
02097   * @retval None
02098   */
02099 __STATIC_INLINE uint32_t LL_MDMA_GetDestinationIncMode(MDMA_TypeDef *MDMAx, uint32_t Channel)
02100 {
02101   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02102 
02103   return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_DINC));
02104 }
02105 
02106 /**
02107   * @brief Set Source Increment Mode.
02108   * @rmtoll CTCR          SINC            LL_MDMA_SetSourceIncMode
02109   * @param  MDMAx MDMAx Instance
02110   * @param  Channel This parameter can be one of the following values:
02111   *         @arg @ref LL_MDMA_CHANNEL_0
02112   *         @arg @ref LL_MDMA_CHANNEL_1
02113   *         @arg @ref LL_MDMA_CHANNEL_2
02114   *         @arg @ref LL_MDMA_CHANNEL_3
02115   *         @arg @ref LL_MDMA_CHANNEL_4
02116   *         @arg @ref LL_MDMA_CHANNEL_5
02117   *         @arg @ref LL_MDMA_CHANNEL_6
02118   *         @arg @ref LL_MDMA_CHANNEL_7
02119   *         @arg @ref LL_MDMA_CHANNEL_8
02120   *         @arg @ref LL_MDMA_CHANNEL_9
02121   *         @arg @ref LL_MDMA_CHANNEL_10
02122   *         @arg @ref LL_MDMA_CHANNEL_11
02123   *         @arg @ref LL_MDMA_CHANNEL_12
02124   *         @arg @ref LL_MDMA_CHANNEL_13
02125   *         @arg @ref LL_MDMA_CHANNEL_14
02126   *         @arg @ref LL_MDMA_CHANNEL_15
02127   * @param  SrcIncMode This parameter can be one of the following values:
02128   *         @arg @ref LL_MDMA_SRC_FIXED
02129   *         @arg @ref LL_MDMA_SRC_INCREMENT
02130   *         @arg @ref LL_MDMA_SRC_DECREMENT
02131   * @retval None
02132   */
02133 __STATIC_INLINE void LL_MDMA_SetSourceIncMode(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t SrcIncMode)
02134 {
02135   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02136 
02137   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SINC, SrcIncMode);
02138 }
02139 
02140 /**
02141   * @brief Get Source Increment Mode.
02142   * @rmtoll CTCR          SINC            LL_MDMA_GetSourceIncMode
02143   * @param  MDMAx MDMAx Instance
02144   * @param  Channel This parameter can be one of the following values:
02145   *         @arg @ref LL_MDMA_CHANNEL_0
02146   *         @arg @ref LL_MDMA_CHANNEL_1
02147   *         @arg @ref LL_MDMA_CHANNEL_2
02148   *         @arg @ref LL_MDMA_CHANNEL_3
02149   *         @arg @ref LL_MDMA_CHANNEL_4
02150   *         @arg @ref LL_MDMA_CHANNEL_5
02151   *         @arg @ref LL_MDMA_CHANNEL_6
02152   *         @arg @ref LL_MDMA_CHANNEL_7
02153   *         @arg @ref LL_MDMA_CHANNEL_8
02154   *         @arg @ref LL_MDMA_CHANNEL_9
02155   *         @arg @ref LL_MDMA_CHANNEL_10
02156   *         @arg @ref LL_MDMA_CHANNEL_11
02157   *         @arg @ref LL_MDMA_CHANNEL_12
02158   *         @arg @ref LL_MDMA_CHANNEL_13
02159   *         @arg @ref LL_MDMA_CHANNEL_14
02160   *         @arg @ref LL_MDMA_CHANNEL_15
02161   * @retval Returned value can be one of the following values:
02162   *         @arg @ref LL_MDMA_SRC_FIXED
02163   *         @arg @ref LL_MDMA_SRC_INCREMENT
02164   *         @arg @ref LL_MDMA_SRC_DECREMENT
02165   * @retval None
02166   */
02167 __STATIC_INLINE uint32_t LL_MDMA_GetSourceIncMode(MDMA_TypeDef *MDMAx, uint32_t Channel)
02168 {
02169   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02170 
02171   return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTCR, MDMA_CTCR_SINC));
02172 }
02173 
02174 /**
02175   * @brief Configure MDMA Block number of data and repeat Count.
02176   * @rmtoll CBNDTR        BRC            LL_MDMA_ConfigBlkCounters\n
02177   * @rmtoll CBNDTR        BNDT           LL_MDMA_ConfigBlkCounters
02178   * @param  MDMAx MDMAx Instance
02179   * @param  Channel This parameter can be one of the following values:
02180   *         @arg @ref LL_MDMA_CHANNEL_0
02181   *         @arg @ref LL_MDMA_CHANNEL_1
02182   *         @arg @ref LL_MDMA_CHANNEL_2
02183   *         @arg @ref LL_MDMA_CHANNEL_3
02184   *         @arg @ref LL_MDMA_CHANNEL_4
02185   *         @arg @ref LL_MDMA_CHANNEL_5
02186   *         @arg @ref LL_MDMA_CHANNEL_6
02187   *         @arg @ref LL_MDMA_CHANNEL_7
02188   *         @arg @ref LL_MDMA_CHANNEL_8
02189   *         @arg @ref LL_MDMA_CHANNEL_9
02190   *         @arg @ref LL_MDMA_CHANNEL_10
02191   *         @arg @ref LL_MDMA_CHANNEL_11
02192   *         @arg @ref LL_MDMA_CHANNEL_12
02193   *         @arg @ref LL_MDMA_CHANNEL_13
02194   *         @arg @ref LL_MDMA_CHANNEL_14
02195   *         @arg @ref LL_MDMA_CHANNEL_15
02196   * @param  BlockRepeatCount Between 0 to 0x00000FFF
02197   * @param  BlkDataLength Between 0 to 0x00010000
02198   * @retval None
02199   */
02200 __STATIC_INLINE void LL_MDMA_ConfigBlkCounters(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t BlockRepeatCount, uint32_t BlkDataLength)
02201 {
02202   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02203 
02204   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR,
02205                MDMA_CBNDTR_BRC | MDMA_CBNDTR_BNDT,
02206               ((BlockRepeatCount << MDMA_CBNDTR_BRC_Pos) & MDMA_CBNDTR_BRC_Msk) | (BlkDataLength & MDMA_CBNDTR_BNDT_Msk));
02207 }
02208 
02209 /**
02210   * @brief Set Block Number of data bytes to transfer.
02211   * @rmtoll CBNDTR          BNDT            LL_MDMA_SetBlkDataLength
02212   * @param  MDMAx MDMAx Instance
02213   * @param  Channel This parameter can be one of the following values:
02214   *         @arg @ref LL_MDMA_CHANNEL_0
02215   *         @arg @ref LL_MDMA_CHANNEL_1
02216   *         @arg @ref LL_MDMA_CHANNEL_2
02217   *         @arg @ref LL_MDMA_CHANNEL_3
02218   *         @arg @ref LL_MDMA_CHANNEL_4
02219   *         @arg @ref LL_MDMA_CHANNEL_5
02220   *         @arg @ref LL_MDMA_CHANNEL_6
02221   *         @arg @ref LL_MDMA_CHANNEL_7
02222   *         @arg @ref LL_MDMA_CHANNEL_8
02223   *         @arg @ref LL_MDMA_CHANNEL_9
02224   *         @arg @ref LL_MDMA_CHANNEL_10
02225   *         @arg @ref LL_MDMA_CHANNEL_11
02226   *         @arg @ref LL_MDMA_CHANNEL_12
02227   *         @arg @ref LL_MDMA_CHANNEL_13
02228   *         @arg @ref LL_MDMA_CHANNEL_14
02229   *         @arg @ref LL_MDMA_CHANNEL_15
02230   * @param  BlkDataLength Between 0 to 0x00010000
02231   * @retval None
02232   */
02233 __STATIC_INLINE void LL_MDMA_SetBlkDataLength(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t BlkDataLength)
02234 {
02235   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02236 
02237   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, MDMA_CBNDTR_BNDT, (BlkDataLength & MDMA_CBNDTR_BNDT_Msk));
02238 }
02239 
02240 /**
02241   * @brief Get Block Number of data bytes to transfer.
02242   * @rmtoll CBNDTR          BNDT            LL_MDMA_GetBlkDataLength
02243   * @param  MDMAx MDMAx Instance
02244   * @param  Channel This parameter can be one of the following values:
02245   *         @arg @ref LL_MDMA_CHANNEL_0
02246   *         @arg @ref LL_MDMA_CHANNEL_1
02247   *         @arg @ref LL_MDMA_CHANNEL_2
02248   *         @arg @ref LL_MDMA_CHANNEL_3
02249   *         @arg @ref LL_MDMA_CHANNEL_4
02250   *         @arg @ref LL_MDMA_CHANNEL_5
02251   *         @arg @ref LL_MDMA_CHANNEL_6
02252   *         @arg @ref LL_MDMA_CHANNEL_7
02253   *         @arg @ref LL_MDMA_CHANNEL_8
02254   *         @arg @ref LL_MDMA_CHANNEL_9
02255   *         @arg @ref LL_MDMA_CHANNEL_10
02256   *         @arg @ref LL_MDMA_CHANNEL_11
02257   *         @arg @ref LL_MDMA_CHANNEL_12
02258   *         @arg @ref LL_MDMA_CHANNEL_13
02259   *         @arg @ref LL_MDMA_CHANNEL_14
02260   *         @arg @ref LL_MDMA_CHANNEL_15
02261   * @retval Between 0 to 0x00010000
02262   * @retval None
02263   */
02264 __STATIC_INLINE uint32_t LL_MDMA_GetBlkDataLength(MDMA_TypeDef *MDMAx, uint32_t Channel)
02265 {
02266   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02267 
02268   return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, MDMA_CBNDTR_BNDT));
02269 }
02270 
02271 /**
02272   * @brief Set Block Repeat Count.
02273   * @rmtoll CBNDTR          BRC            LL_MDMA_SetBlkRepeatCount
02274   * @param  MDMAx MDMAx Instance
02275   * @param  Channel This parameter can be one of the following values:
02276   *         @arg @ref LL_MDMA_CHANNEL_0
02277   *         @arg @ref LL_MDMA_CHANNEL_1
02278   *         @arg @ref LL_MDMA_CHANNEL_2
02279   *         @arg @ref LL_MDMA_CHANNEL_3
02280   *         @arg @ref LL_MDMA_CHANNEL_4
02281   *         @arg @ref LL_MDMA_CHANNEL_5
02282   *         @arg @ref LL_MDMA_CHANNEL_6
02283   *         @arg @ref LL_MDMA_CHANNEL_7
02284   *         @arg @ref LL_MDMA_CHANNEL_8
02285   *         @arg @ref LL_MDMA_CHANNEL_9
02286   *         @arg @ref LL_MDMA_CHANNEL_10
02287   *         @arg @ref LL_MDMA_CHANNEL_11
02288   *         @arg @ref LL_MDMA_CHANNEL_12
02289   *         @arg @ref LL_MDMA_CHANNEL_13
02290   *         @arg @ref LL_MDMA_CHANNEL_14
02291   *         @arg @ref LL_MDMA_CHANNEL_15
02292   * @param  BlockRepeatCount Between 0 to 0x00000FFF
02293   * @retval None
02294   */
02295 __STATIC_INLINE void LL_MDMA_SetBlkRepeatCount(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t BlockRepeatCount)
02296 {
02297   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02298 
02299   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, MDMA_CBNDTR_BRC,
02300               (BlockRepeatCount << MDMA_CBNDTR_BRC_Pos) & MDMA_CBNDTR_BRC_Msk);
02301 }
02302 
02303 /**
02304   * @brief Get Block Repeat Count.
02305   * @rmtoll CBNDTR          BRC            LL_MDMA_GetBlkRepeatCount
02306   * @param  MDMAx MDMAx Instance
02307   * @param  Channel This parameter can be one of the following values:
02308   *         @arg @ref LL_MDMA_CHANNEL_0
02309   *         @arg @ref LL_MDMA_CHANNEL_1
02310   *         @arg @ref LL_MDMA_CHANNEL_2
02311   *         @arg @ref LL_MDMA_CHANNEL_3
02312   *         @arg @ref LL_MDMA_CHANNEL_4
02313   *         @arg @ref LL_MDMA_CHANNEL_5
02314   *         @arg @ref LL_MDMA_CHANNEL_6
02315   *         @arg @ref LL_MDMA_CHANNEL_7
02316   *         @arg @ref LL_MDMA_CHANNEL_8
02317   *         @arg @ref LL_MDMA_CHANNEL_9
02318   *         @arg @ref LL_MDMA_CHANNEL_10
02319   *         @arg @ref LL_MDMA_CHANNEL_11
02320   *         @arg @ref LL_MDMA_CHANNEL_12
02321   *         @arg @ref LL_MDMA_CHANNEL_13
02322   *         @arg @ref LL_MDMA_CHANNEL_14
02323   *         @arg @ref LL_MDMA_CHANNEL_15
02324   * @retval Between 0 to 0x00000FFF
02325   * @retval None
02326   */
02327 __STATIC_INLINE uint32_t LL_MDMA_GetBlkRepeatCount(MDMA_TypeDef *MDMAx, uint32_t Channel)
02328 {
02329   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02330 
02331   return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, MDMA_CBNDTR_BRC) >> MDMA_CBNDTR_BRC_Pos);
02332 }
02333 
02334 /**
02335   * @brief Configure MDMA block repeat address update mode.
02336   * @rmtoll CBNDTR        BRDUM            LL_MDMA_ConfigBlkRepeatAddrUpdate\n
02337   * @rmtoll CBNDTR        BRSUM            LL_MDMA_ConfigBlkRepeatAddrUpdate
02338   * @param  MDMAx MDMAx Instance
02339   * @param  Channel This parameter can be one of the following values:
02340   *         @arg @ref LL_MDMA_CHANNEL_0
02341   *         @arg @ref LL_MDMA_CHANNEL_1
02342   *         @arg @ref LL_MDMA_CHANNEL_2
02343   *         @arg @ref LL_MDMA_CHANNEL_3
02344   *         @arg @ref LL_MDMA_CHANNEL_4
02345   *         @arg @ref LL_MDMA_CHANNEL_5
02346   *         @arg @ref LL_MDMA_CHANNEL_6
02347   *         @arg @ref LL_MDMA_CHANNEL_7
02348   *         @arg @ref LL_MDMA_CHANNEL_8
02349   *         @arg @ref LL_MDMA_CHANNEL_9
02350   *         @arg @ref LL_MDMA_CHANNEL_10
02351   *         @arg @ref LL_MDMA_CHANNEL_11
02352   *         @arg @ref LL_MDMA_CHANNEL_12
02353   *         @arg @ref LL_MDMA_CHANNEL_13
02354   *         @arg @ref LL_MDMA_CHANNEL_14
02355   *         @arg @ref LL_MDMA_CHANNEL_15
02356   * @param  Configuration This parameter must be a combination of all the following values:
02357   *         @arg @ref LL_MDMA_BLK_RPT_DEST_ADDR_INCREMENT or @ref LL_MDMA_BLK_RPT_DEST_ADDR_DECREMENT
02358   *         @arg @ref LL_MDMA_BLK_RPT_SRC_ADDR_INCREMENT or @ref LL_MDMA_BLK_RPT_SRC_ADDR_DECREMENT
02359   * @retval None
02360   */
02361 __STATIC_INLINE void LL_MDMA_ConfigBlkRepeatAddrUpdate(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Configuration)
02362 {
02363   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02364 
02365   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR,
02366                MDMA_CBNDTR_BRDUM | MDMA_CBNDTR_BRSUM,
02367                Configuration);
02368 }
02369 
02370 /**
02371   * @brief Set Block Repeat Destination address Update Mode.
02372   * @rmtoll CBNDTR          BRDUM            LL_MDMA_SetBlkRepeatDestAddrUpdate
02373   * @param  MDMAx MDMAx Instance
02374   * @param  Channel This parameter can be one of the following values:
02375   *         @arg @ref LL_MDMA_CHANNEL_0
02376   *         @arg @ref LL_MDMA_CHANNEL_1
02377   *         @arg @ref LL_MDMA_CHANNEL_2
02378   *         @arg @ref LL_MDMA_CHANNEL_3
02379   *         @arg @ref LL_MDMA_CHANNEL_4
02380   *         @arg @ref LL_MDMA_CHANNEL_5
02381   *         @arg @ref LL_MDMA_CHANNEL_6
02382   *         @arg @ref LL_MDMA_CHANNEL_7
02383   *         @arg @ref LL_MDMA_CHANNEL_8
02384   *         @arg @ref LL_MDMA_CHANNEL_9
02385   *         @arg @ref LL_MDMA_CHANNEL_10
02386   *         @arg @ref LL_MDMA_CHANNEL_11
02387   *         @arg @ref LL_MDMA_CHANNEL_12
02388   *         @arg @ref LL_MDMA_CHANNEL_13
02389   *         @arg @ref LL_MDMA_CHANNEL_14
02390   *         @arg @ref LL_MDMA_CHANNEL_15
02391   * @param  DestAdrUpdateMode This parameter can be one of the following values:
02392   *         @arg @ref LL_MDMA_BLK_RPT_DEST_ADDR_INCREMENT
02393   *         @arg @ref LL_MDMA_BLK_RPT_DEST_ADDR_DECREMENT
02394   * @retval None
02395   */
02396 __STATIC_INLINE void LL_MDMA_SetBlkRepeatDestAddrUpdate(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t DestAdrUpdateMode)
02397 {
02398   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02399 
02400   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, MDMA_CBNDTR_BRDUM, DestAdrUpdateMode);
02401 }
02402 
02403 /**
02404   * @brief Get Block Repeat Destination address Update Mode.
02405   * @rmtoll CBNDTR          BRDUM            LL_MDMA_GetBlkRepeatDestAddrUpdate
02406   * @param  MDMAx MDMAx Instance
02407   * @param  Channel This parameter can be one of the following values:
02408   *         @arg @ref LL_MDMA_CHANNEL_0
02409   *         @arg @ref LL_MDMA_CHANNEL_1
02410   *         @arg @ref LL_MDMA_CHANNEL_2
02411   *         @arg @ref LL_MDMA_CHANNEL_3
02412   *         @arg @ref LL_MDMA_CHANNEL_4
02413   *         @arg @ref LL_MDMA_CHANNEL_5
02414   *         @arg @ref LL_MDMA_CHANNEL_6
02415   *         @arg @ref LL_MDMA_CHANNEL_7
02416   *         @arg @ref LL_MDMA_CHANNEL_8
02417   *         @arg @ref LL_MDMA_CHANNEL_9
02418   *         @arg @ref LL_MDMA_CHANNEL_10
02419   *         @arg @ref LL_MDMA_CHANNEL_11
02420   *         @arg @ref LL_MDMA_CHANNEL_12
02421   *         @arg @ref LL_MDMA_CHANNEL_13
02422   *         @arg @ref LL_MDMA_CHANNEL_14
02423   *         @arg @ref LL_MDMA_CHANNEL_15
02424   * @retval Returned value can be one of the following values:
02425   *         @arg @ref LL_MDMA_BLK_RPT_DEST_ADDR_INCREMENT
02426   *         @arg @ref LL_MDMA_BLK_RPT_DEST_ADDR_DECREMENT
02427   * @retval None
02428   */
02429 __STATIC_INLINE uint32_t LL_MDMA_GetBlkRepeatDestAddrUpdate(MDMA_TypeDef *MDMAx, uint32_t Channel)
02430 {
02431   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02432 
02433   return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, MDMA_CBNDTR_BRDUM));
02434 }
02435 
02436 /**
02437   * @brief Set Block Repeat Source address Update Mode.
02438   * @rmtoll CBNDTR          BRSUM            LL_MDMA_SetBlkRepeatSrcAddrUpdate
02439   * @param  MDMAx MDMAx Instance
02440   * @param  Channel This parameter can be one of the following values:
02441   *         @arg @ref LL_MDMA_CHANNEL_0
02442   *         @arg @ref LL_MDMA_CHANNEL_1
02443   *         @arg @ref LL_MDMA_CHANNEL_2
02444   *         @arg @ref LL_MDMA_CHANNEL_3
02445   *         @arg @ref LL_MDMA_CHANNEL_4
02446   *         @arg @ref LL_MDMA_CHANNEL_5
02447   *         @arg @ref LL_MDMA_CHANNEL_6
02448   *         @arg @ref LL_MDMA_CHANNEL_7
02449   *         @arg @ref LL_MDMA_CHANNEL_8
02450   *         @arg @ref LL_MDMA_CHANNEL_9
02451   *         @arg @ref LL_MDMA_CHANNEL_10
02452   *         @arg @ref LL_MDMA_CHANNEL_11
02453   *         @arg @ref LL_MDMA_CHANNEL_12
02454   *         @arg @ref LL_MDMA_CHANNEL_13
02455   *         @arg @ref LL_MDMA_CHANNEL_14
02456   *         @arg @ref LL_MDMA_CHANNEL_15
02457   * @param  SrcAdrUpdateMode This parameter can be one of the following values:
02458   *         @arg @ref LL_MDMA_BLK_RPT_SRC_ADDR_INCREMENT
02459   *         @arg @ref LL_MDMA_BLK_RPT_SRC_ADDR_DECREMENT
02460   * @retval None
02461   */
02462 __STATIC_INLINE void LL_MDMA_SetBlkRepeatSrcAddrUpdate(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t SrcAdrUpdateMode)
02463 {
02464   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02465 
02466   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, MDMA_CBNDTR_BRSUM, SrcAdrUpdateMode);
02467 }
02468 
02469 /**
02470   * @brief Get Block Repeat Source address Update Mode.
02471   * @rmtoll CBNDTR          BRSUM            LL_MDMA_GetBlkRepeatSrcAddrUpdate
02472   * @param  MDMAx MDMAx Instance
02473   * @param  Channel This parameter can be one of the following values:
02474   *         @arg @ref LL_MDMA_CHANNEL_0
02475   *         @arg @ref LL_MDMA_CHANNEL_1
02476   *         @arg @ref LL_MDMA_CHANNEL_2
02477   *         @arg @ref LL_MDMA_CHANNEL_3
02478   *         @arg @ref LL_MDMA_CHANNEL_4
02479   *         @arg @ref LL_MDMA_CHANNEL_5
02480   *         @arg @ref LL_MDMA_CHANNEL_6
02481   *         @arg @ref LL_MDMA_CHANNEL_7
02482   *         @arg @ref LL_MDMA_CHANNEL_8
02483   *         @arg @ref LL_MDMA_CHANNEL_9
02484   *         @arg @ref LL_MDMA_CHANNEL_10
02485   *         @arg @ref LL_MDMA_CHANNEL_11
02486   *         @arg @ref LL_MDMA_CHANNEL_12
02487   *         @arg @ref LL_MDMA_CHANNEL_13
02488   *         @arg @ref LL_MDMA_CHANNEL_14
02489   *         @arg @ref LL_MDMA_CHANNEL_15
02490   * @retval Returned value can be one of the following values:
02491   *         @arg @ref LL_MDMA_BLK_RPT_SRC_ADDR_INCREMENT
02492   *         @arg @ref LL_MDMA_BLK_RPT_SRC_ADDR_DECREMENT
02493   * @retval None
02494   */
02495 __STATIC_INLINE uint32_t LL_MDMA_GetBlkRepeatSrcAddrUpdate(MDMA_TypeDef *MDMAx, uint32_t Channel)
02496 {
02497   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02498 
02499   return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBNDTR, MDMA_CBNDTR_BRSUM));
02500 }
02501 
02502 /**
02503   * @brief  Configure the Source and Destination addresses.
02504   * @note   This API must not be called when the MDMA channel is enabled.
02505   * @rmtoll CSAR        SAR            LL_MDMA_ConfigAddresses\n
02506   * @rmtoll CDAR        DAR            LL_MDMA_ConfigAddresses
02507   * @param  MDMAx MDMAx Instance
02508   * @param  Channel This parameter can be one of the following values:
02509   *         @arg @ref LL_MDMA_CHANNEL_0
02510   *         @arg @ref LL_MDMA_CHANNEL_1
02511   *         @arg @ref LL_MDMA_CHANNEL_2
02512   *         @arg @ref LL_MDMA_CHANNEL_3
02513   *         @arg @ref LL_MDMA_CHANNEL_4
02514   *         @arg @ref LL_MDMA_CHANNEL_5
02515   *         @arg @ref LL_MDMA_CHANNEL_6
02516   *         @arg @ref LL_MDMA_CHANNEL_7
02517   *         @arg @ref LL_MDMA_CHANNEL_8
02518   *         @arg @ref LL_MDMA_CHANNEL_9
02519   *         @arg @ref LL_MDMA_CHANNEL_10
02520   *         @arg @ref LL_MDMA_CHANNEL_11
02521   *         @arg @ref LL_MDMA_CHANNEL_12
02522   *         @arg @ref LL_MDMA_CHANNEL_13
02523   *         @arg @ref LL_MDMA_CHANNEL_14
02524   *         @arg @ref LL_MDMA_CHANNEL_15
02525   * @param  SrcAddress Between Min_Data = 0 and Max_Data = 0xFFFFFFFF
02526   * @param  DstAddress Between Min_Data = 0 and Max_Data = 0xFFFFFFFF
02527   * @retval None
02528   */
02529 __STATIC_INLINE void LL_MDMA_ConfigAddresses(MDMA_TypeDef *MDMAx, uint32_t Channel,  uint32_t SrcAddress, uint32_t DstAddress)
02530 {
02531   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02532 
02533   WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CSAR, SrcAddress);
02534   WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CDAR, DstAddress);
02535 }
02536 /**
02537   * @brief Set transfer Source address.
02538   * @rmtoll CSAR          SAR            LL_MDMA_SetSourceAddress
02539   * @param  MDMAx MDMAx Instance
02540   * @param  Channel This parameter can be one of the following values:
02541   *         @arg @ref LL_MDMA_CHANNEL_0
02542   *         @arg @ref LL_MDMA_CHANNEL_1
02543   *         @arg @ref LL_MDMA_CHANNEL_2
02544   *         @arg @ref LL_MDMA_CHANNEL_3
02545   *         @arg @ref LL_MDMA_CHANNEL_4
02546   *         @arg @ref LL_MDMA_CHANNEL_5
02547   *         @arg @ref LL_MDMA_CHANNEL_6
02548   *         @arg @ref LL_MDMA_CHANNEL_7
02549   *         @arg @ref LL_MDMA_CHANNEL_8
02550   *         @arg @ref LL_MDMA_CHANNEL_9
02551   *         @arg @ref LL_MDMA_CHANNEL_10
02552   *         @arg @ref LL_MDMA_CHANNEL_11
02553   *         @arg @ref LL_MDMA_CHANNEL_12
02554   *         @arg @ref LL_MDMA_CHANNEL_13
02555   *         @arg @ref LL_MDMA_CHANNEL_14
02556   *         @arg @ref LL_MDMA_CHANNEL_15
02557   * @param  SrcAddress Between 0 to 0xFFFFFFFF
02558   * @retval None
02559   */
02560 __STATIC_INLINE void LL_MDMA_SetSourceAddress(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t SrcAddress)
02561 {
02562   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02563 
02564   WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CSAR, SrcAddress);
02565 }
02566 
02567 /**
02568   * @brief Get transfer Source address.
02569   * @rmtoll CSAR          SAR            LL_MDMA_GetSourceAddress
02570   * @param  MDMAx MDMAx Instance
02571   * @param  Channel This parameter can be one of the following values:
02572   *         @arg @ref LL_MDMA_CHANNEL_0
02573   *         @arg @ref LL_MDMA_CHANNEL_1
02574   *         @arg @ref LL_MDMA_CHANNEL_2
02575   *         @arg @ref LL_MDMA_CHANNEL_3
02576   *         @arg @ref LL_MDMA_CHANNEL_4
02577   *         @arg @ref LL_MDMA_CHANNEL_5
02578   *         @arg @ref LL_MDMA_CHANNEL_6
02579   *         @arg @ref LL_MDMA_CHANNEL_7
02580   *         @arg @ref LL_MDMA_CHANNEL_8
02581   *         @arg @ref LL_MDMA_CHANNEL_9
02582   *         @arg @ref LL_MDMA_CHANNEL_10
02583   *         @arg @ref LL_MDMA_CHANNEL_11
02584   *         @arg @ref LL_MDMA_CHANNEL_12
02585   *         @arg @ref LL_MDMA_CHANNEL_13
02586   *         @arg @ref LL_MDMA_CHANNEL_14
02587   *         @arg @ref LL_MDMA_CHANNEL_15
02588   * @retval Between 0 to 0xFFFFFFFF
02589   * @retval None
02590   */
02591 __STATIC_INLINE uint32_t LL_MDMA_GetSourceAddress(MDMA_TypeDef *MDMAx, uint32_t Channel)
02592 {
02593   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02594 
02595   return (READ_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CSAR));
02596 }
02597 
02598 /**
02599   * @brief Set transfer Destination address.
02600   * @rmtoll CDAR          DAR            LL_MDMA_SetDestinationAddress
02601   * @param  MDMAx MDMAx Instance
02602   * @param  Channel This parameter can be one of the following values:
02603   *         @arg @ref LL_MDMA_CHANNEL_0
02604   *         @arg @ref LL_MDMA_CHANNEL_1
02605   *         @arg @ref LL_MDMA_CHANNEL_2
02606   *         @arg @ref LL_MDMA_CHANNEL_3
02607   *         @arg @ref LL_MDMA_CHANNEL_4
02608   *         @arg @ref LL_MDMA_CHANNEL_5
02609   *         @arg @ref LL_MDMA_CHANNEL_6
02610   *         @arg @ref LL_MDMA_CHANNEL_7
02611   *         @arg @ref LL_MDMA_CHANNEL_8
02612   *         @arg @ref LL_MDMA_CHANNEL_9
02613   *         @arg @ref LL_MDMA_CHANNEL_10
02614   *         @arg @ref LL_MDMA_CHANNEL_11
02615   *         @arg @ref LL_MDMA_CHANNEL_12
02616   *         @arg @ref LL_MDMA_CHANNEL_13
02617   *         @arg @ref LL_MDMA_CHANNEL_14
02618   *         @arg @ref LL_MDMA_CHANNEL_15
02619   * @param  DestAddress Between 0 to 0xFFFFFFFF
02620   * @retval None
02621   */
02622 __STATIC_INLINE void LL_MDMA_SetDestinationAddress(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t DestAddress)
02623 {
02624   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02625 
02626   WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CDAR, DestAddress);
02627 }
02628 
02629 /**
02630   * @brief Get transfer Destination address.
02631   * @rmtoll CDAR          DAR            LL_MDMA_GetDestinationAddress
02632   * @param  MDMAx MDMAx Instance
02633   * @param  Channel This parameter can be one of the following values:
02634   *         @arg @ref LL_MDMA_CHANNEL_0
02635   *         @arg @ref LL_MDMA_CHANNEL_1
02636   *         @arg @ref LL_MDMA_CHANNEL_2
02637   *         @arg @ref LL_MDMA_CHANNEL_3
02638   *         @arg @ref LL_MDMA_CHANNEL_4
02639   *         @arg @ref LL_MDMA_CHANNEL_5
02640   *         @arg @ref LL_MDMA_CHANNEL_6
02641   *         @arg @ref LL_MDMA_CHANNEL_7
02642   *         @arg @ref LL_MDMA_CHANNEL_8
02643   *         @arg @ref LL_MDMA_CHANNEL_9
02644   *         @arg @ref LL_MDMA_CHANNEL_10
02645   *         @arg @ref LL_MDMA_CHANNEL_11
02646   *         @arg @ref LL_MDMA_CHANNEL_12
02647   *         @arg @ref LL_MDMA_CHANNEL_13
02648   *         @arg @ref LL_MDMA_CHANNEL_14
02649   *         @arg @ref LL_MDMA_CHANNEL_15
02650   * @retval Between 0 to 0xFFFFFFFF
02651   * @retval None
02652   */
02653 __STATIC_INLINE uint32_t LL_MDMA_GetDestinationAddress(MDMA_TypeDef *MDMAx, uint32_t Channel)
02654 {
02655   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02656 
02657   return (READ_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CDAR));
02658 }
02659 
02660 /**
02661   * @brief  Configure the Source and Destination Block repeat addresses Update value.
02662   * @note   This API must not be called when the MDMA channel is enabled.
02663   * @rmtoll CBRUR        DUV            LL_MDMA_ConfigBlkRptAddrUpdateValue\n
02664   * @rmtoll CBRUR        SUV            LL_MDMA_ConfigBlkRptAddrUpdateValue
02665   * @param  MDMAx MDMAx Instance
02666   * @param  Channel This parameter can be one of the following values:
02667   *         @arg @ref LL_MDMA_CHANNEL_0
02668   *         @arg @ref LL_MDMA_CHANNEL_1
02669   *         @arg @ref LL_MDMA_CHANNEL_2
02670   *         @arg @ref LL_MDMA_CHANNEL_3
02671   *         @arg @ref LL_MDMA_CHANNEL_4
02672   *         @arg @ref LL_MDMA_CHANNEL_5
02673   *         @arg @ref LL_MDMA_CHANNEL_6
02674   *         @arg @ref LL_MDMA_CHANNEL_7
02675   *         @arg @ref LL_MDMA_CHANNEL_8
02676   *         @arg @ref LL_MDMA_CHANNEL_9
02677   *         @arg @ref LL_MDMA_CHANNEL_10
02678   *         @arg @ref LL_MDMA_CHANNEL_11
02679   *         @arg @ref LL_MDMA_CHANNEL_12
02680   *         @arg @ref LL_MDMA_CHANNEL_13
02681   *         @arg @ref LL_MDMA_CHANNEL_14
02682   *         @arg @ref LL_MDMA_CHANNEL_15
02683   * @param  SrctAdrUpdateValue Min_Data = 0 and Max_Data = 0x0000FFFF
02684   * @param  DestAdrUpdateValue Between Min_Data = 0 and Max_Data = 0x0000FFFF
02685   * @retval None
02686   */
02687 __STATIC_INLINE void LL_MDMA_ConfigBlkRptAddrUpdateValue(MDMA_TypeDef *MDMAx, uint32_t Channel,  uint32_t SrctAdrUpdateValue, uint32_t DestAdrUpdateValue)
02688 {
02689   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02690 
02691   WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBRUR,
02692               (SrctAdrUpdateValue & MDMA_CBRUR_SUV_Msk)  | ((DestAdrUpdateValue << MDMA_CBRUR_DUV_Pos) & MDMA_CBRUR_DUV_Msk));
02693 }
02694 
02695 /**
02696   * @brief Set transfer Destination address Update Value.
02697   * @rmtoll CBRUR          DUV            LL_MDMA_SetBlkRptDestAddrUpdateValue
02698   * @param  MDMAx MDMAx Instance
02699   * @param  Channel This parameter can be one of the following values:
02700   *         @arg @ref LL_MDMA_CHANNEL_0
02701   *         @arg @ref LL_MDMA_CHANNEL_1
02702   *         @arg @ref LL_MDMA_CHANNEL_2
02703   *         @arg @ref LL_MDMA_CHANNEL_3
02704   *         @arg @ref LL_MDMA_CHANNEL_4
02705   *         @arg @ref LL_MDMA_CHANNEL_5
02706   *         @arg @ref LL_MDMA_CHANNEL_6
02707   *         @arg @ref LL_MDMA_CHANNEL_7
02708   *         @arg @ref LL_MDMA_CHANNEL_8
02709   *         @arg @ref LL_MDMA_CHANNEL_9
02710   *         @arg @ref LL_MDMA_CHANNEL_10
02711   *         @arg @ref LL_MDMA_CHANNEL_11
02712   *         @arg @ref LL_MDMA_CHANNEL_12
02713   *         @arg @ref LL_MDMA_CHANNEL_13
02714   *         @arg @ref LL_MDMA_CHANNEL_14
02715   *         @arg @ref LL_MDMA_CHANNEL_15
02716   * @param  DestAdrUpdateValue Between 0 to 0x0000FFFF
02717   * @retval None
02718   */
02719 __STATIC_INLINE void LL_MDMA_SetBlkRptDestAddrUpdateValue(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t DestAdrUpdateValue)
02720 {
02721   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02722 
02723   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBRUR, MDMA_CBRUR_DUV,
02724                ((DestAdrUpdateValue << MDMA_CBRUR_DUV_Pos) & MDMA_CBRUR_DUV_Msk));
02725 }
02726 
02727 /**
02728   * @brief Get transfer Destination address Update Value.
02729   * @rmtoll CBRUR          DUV            LL_MDMA_GetBlkRptDestAddrUpdateValue
02730   * @param  MDMAx MDMAx Instance
02731   * @param  Channel This parameter can be one of the following values:
02732   *         @arg @ref LL_MDMA_CHANNEL_0
02733   *         @arg @ref LL_MDMA_CHANNEL_1
02734   *         @arg @ref LL_MDMA_CHANNEL_2
02735   *         @arg @ref LL_MDMA_CHANNEL_3
02736   *         @arg @ref LL_MDMA_CHANNEL_4
02737   *         @arg @ref LL_MDMA_CHANNEL_5
02738   *         @arg @ref LL_MDMA_CHANNEL_6
02739   *         @arg @ref LL_MDMA_CHANNEL_7
02740   *         @arg @ref LL_MDMA_CHANNEL_8
02741   *         @arg @ref LL_MDMA_CHANNEL_9
02742   *         @arg @ref LL_MDMA_CHANNEL_10
02743   *         @arg @ref LL_MDMA_CHANNEL_11
02744   *         @arg @ref LL_MDMA_CHANNEL_12
02745   *         @arg @ref LL_MDMA_CHANNEL_13
02746   *         @arg @ref LL_MDMA_CHANNEL_14
02747   *         @arg @ref LL_MDMA_CHANNEL_15
02748   * @retval Between 0 to 0x0000FFFF
02749   * @retval None
02750   */
02751 __STATIC_INLINE uint32_t LL_MDMA_GetBlkRptDestAddrUpdateValue(MDMA_TypeDef *MDMAx, uint32_t Channel)
02752 {
02753   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02754 
02755   return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBRUR, MDMA_CBRUR_DUV) >> MDMA_CBRUR_DUV_Pos);
02756 }
02757 
02758 /**
02759   * @brief Set transfer Source address Update Value.
02760   * @rmtoll CBRUR          SUV            LL_MDMA_SetBlkRptSrcAddrUpdateValue
02761   * @param  MDMAx MDMAx Instance
02762   * @param  Channel This parameter can be one of the following values:
02763   *         @arg @ref LL_MDMA_CHANNEL_0
02764   *         @arg @ref LL_MDMA_CHANNEL_1
02765   *         @arg @ref LL_MDMA_CHANNEL_2
02766   *         @arg @ref LL_MDMA_CHANNEL_3
02767   *         @arg @ref LL_MDMA_CHANNEL_4
02768   *         @arg @ref LL_MDMA_CHANNEL_5
02769   *         @arg @ref LL_MDMA_CHANNEL_6
02770   *         @arg @ref LL_MDMA_CHANNEL_7
02771   *         @arg @ref LL_MDMA_CHANNEL_8
02772   *         @arg @ref LL_MDMA_CHANNEL_9
02773   *         @arg @ref LL_MDMA_CHANNEL_10
02774   *         @arg @ref LL_MDMA_CHANNEL_11
02775   *         @arg @ref LL_MDMA_CHANNEL_12
02776   *         @arg @ref LL_MDMA_CHANNEL_13
02777   *         @arg @ref LL_MDMA_CHANNEL_14
02778   *         @arg @ref LL_MDMA_CHANNEL_15
02779   * @param  SrcAdrUpdateValue Between 0 to 0x0000FFFF
02780   * @retval None
02781   */
02782 __STATIC_INLINE void LL_MDMA_SetBlkRptSrcAddrUpdateValue(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t SrcAdrUpdateValue)
02783 {
02784   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02785 
02786   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBRUR, MDMA_CBRUR_SUV, SrcAdrUpdateValue);
02787 }
02788 
02789 /**
02790   * @brief Get transfer Source address Update Value.
02791   * @rmtoll CBRUR          SUV            LL_MDMA_GetBlkRptSrcAddrUpdateValue
02792   * @param  MDMAx MDMAx Instance
02793   * @param  Channel This parameter can be one of the following values:
02794   *         @arg @ref LL_MDMA_CHANNEL_0
02795   *         @arg @ref LL_MDMA_CHANNEL_1
02796   *         @arg @ref LL_MDMA_CHANNEL_2
02797   *         @arg @ref LL_MDMA_CHANNEL_3
02798   *         @arg @ref LL_MDMA_CHANNEL_4
02799   *         @arg @ref LL_MDMA_CHANNEL_5
02800   *         @arg @ref LL_MDMA_CHANNEL_6
02801   *         @arg @ref LL_MDMA_CHANNEL_7
02802   *         @arg @ref LL_MDMA_CHANNEL_8
02803   *         @arg @ref LL_MDMA_CHANNEL_9
02804   *         @arg @ref LL_MDMA_CHANNEL_10
02805   *         @arg @ref LL_MDMA_CHANNEL_11
02806   *         @arg @ref LL_MDMA_CHANNEL_12
02807   *         @arg @ref LL_MDMA_CHANNEL_13
02808   *         @arg @ref LL_MDMA_CHANNEL_14
02809   *         @arg @ref LL_MDMA_CHANNEL_15
02810   * @retval Between 0 to 0x0000FFFF
02811   * @retval None
02812   */
02813 __STATIC_INLINE uint32_t LL_MDMA_GetBlkRptSrcAddrUpdateValue(MDMA_TypeDef *MDMAx, uint32_t Channel)
02814 {
02815   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02816 
02817   return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CBRUR, MDMA_CBRUR_SUV));
02818 }
02819 
02820 /**
02821   * @brief Set transfer Link Address.
02822   * @rmtoll CLAR          LAR            LL_MDMA_SetLinkAddress
02823   * @param  MDMAx MDMAx Instance
02824   * @param  Channel This parameter can be one of the following values:
02825   *         @arg @ref LL_MDMA_CHANNEL_0
02826   *         @arg @ref LL_MDMA_CHANNEL_1
02827   *         @arg @ref LL_MDMA_CHANNEL_2
02828   *         @arg @ref LL_MDMA_CHANNEL_3
02829   *         @arg @ref LL_MDMA_CHANNEL_4
02830   *         @arg @ref LL_MDMA_CHANNEL_5
02831   *         @arg @ref LL_MDMA_CHANNEL_6
02832   *         @arg @ref LL_MDMA_CHANNEL_7
02833   *         @arg @ref LL_MDMA_CHANNEL_8
02834   *         @arg @ref LL_MDMA_CHANNEL_9
02835   *         @arg @ref LL_MDMA_CHANNEL_10
02836   *         @arg @ref LL_MDMA_CHANNEL_11
02837   *         @arg @ref LL_MDMA_CHANNEL_12
02838   *         @arg @ref LL_MDMA_CHANNEL_13
02839   *         @arg @ref LL_MDMA_CHANNEL_14
02840   *         @arg @ref LL_MDMA_CHANNEL_15
02841   * @param  LinkAddress Between 0 to 0xFFFFFFFF
02842   * @retval None
02843   */
02844 __STATIC_INLINE void LL_MDMA_SetLinkAddress(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t LinkAddress)
02845 {
02846   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02847 
02848   WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CLAR, LinkAddress);
02849 }
02850 
02851 /**
02852   * @brief Get transfer Link Address.
02853   * @rmtoll CLAR          LAR            LL_MDMA_GetLinkAddress
02854   * @param  MDMAx MDMAx Instance
02855   * @param  Channel This parameter can be one of the following values:
02856   *         @arg @ref LL_MDMA_CHANNEL_0
02857   *         @arg @ref LL_MDMA_CHANNEL_1
02858   *         @arg @ref LL_MDMA_CHANNEL_2
02859   *         @arg @ref LL_MDMA_CHANNEL_3
02860   *         @arg @ref LL_MDMA_CHANNEL_4
02861   *         @arg @ref LL_MDMA_CHANNEL_5
02862   *         @arg @ref LL_MDMA_CHANNEL_6
02863   *         @arg @ref LL_MDMA_CHANNEL_7
02864   *         @arg @ref LL_MDMA_CHANNEL_8
02865   *         @arg @ref LL_MDMA_CHANNEL_9
02866   *         @arg @ref LL_MDMA_CHANNEL_10
02867   *         @arg @ref LL_MDMA_CHANNEL_11
02868   *         @arg @ref LL_MDMA_CHANNEL_12
02869   *         @arg @ref LL_MDMA_CHANNEL_13
02870   *         @arg @ref LL_MDMA_CHANNEL_14
02871   *         @arg @ref LL_MDMA_CHANNEL_15
02872   * @retval Between 0 to 0xFFFFFFFF
02873   * @retval None
02874   */
02875 __STATIC_INLINE uint32_t LL_MDMA_GetLinkAddress(MDMA_TypeDef *MDMAx, uint32_t Channel)
02876 {
02877   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02878 
02879   return (READ_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CLAR));
02880 }
02881 
02882 /**
02883   * @brief Configure MDMA source and destination bus selection.
02884   * @rmtoll CTBR        DBUS            LL_MDMA_ConfigBusSelection\n
02885   * @rmtoll CTBR        SBUS            LL_MDMA_ConfigBusSelection
02886   * @param  MDMAx MDMAx Instance
02887   * @param  Channel This parameter can be one of the following values:
02888   *         @arg @ref LL_MDMA_CHANNEL_0
02889   *         @arg @ref LL_MDMA_CHANNEL_1
02890   *         @arg @ref LL_MDMA_CHANNEL_2
02891   *         @arg @ref LL_MDMA_CHANNEL_3
02892   *         @arg @ref LL_MDMA_CHANNEL_4
02893   *         @arg @ref LL_MDMA_CHANNEL_5
02894   *         @arg @ref LL_MDMA_CHANNEL_6
02895   *         @arg @ref LL_MDMA_CHANNEL_7
02896   *         @arg @ref LL_MDMA_CHANNEL_8
02897   *         @arg @ref LL_MDMA_CHANNEL_9
02898   *         @arg @ref LL_MDMA_CHANNEL_10
02899   *         @arg @ref LL_MDMA_CHANNEL_11
02900   *         @arg @ref LL_MDMA_CHANNEL_12
02901   *         @arg @ref LL_MDMA_CHANNEL_13
02902   *         @arg @ref LL_MDMA_CHANNEL_14
02903   *         @arg @ref LL_MDMA_CHANNEL_15
02904   * @param  Configuration This parameter must be a combination of all the following values:
02905   *         @arg @ref LL_MDMA_DEST_BUS_SYSTEM_AXI or @ref LL_MDMA_DEST_BUS_AHB_TCM
02906   *         @arg @ref LL_MDMA_SRC_BUS_SYSTEM_AXI or @ref LL_MDMA_SRC_BUS_AHB_TCM
02907   * @retval None
02908   */
02909 __STATIC_INLINE void LL_MDMA_ConfigBusSelection(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t Configuration)
02910 {
02911   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02912 
02913   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTBR,
02914                MDMA_CTBR_DBUS | MDMA_CTBR_SBUS,
02915               Configuration);
02916 }
02917 
02918 /**
02919   * @brief Set Destination Bus Selection.
02920   * @rmtoll CTBR          DBUS            LL_MDMA_SetDestBusSelection
02921   * @param  MDMAx MDMAx Instance
02922   * @param  Channel This parameter can be one of the following values:
02923   *         @arg @ref LL_MDMA_CHANNEL_0
02924   *         @arg @ref LL_MDMA_CHANNEL_1
02925   *         @arg @ref LL_MDMA_CHANNEL_2
02926   *         @arg @ref LL_MDMA_CHANNEL_3
02927   *         @arg @ref LL_MDMA_CHANNEL_4
02928   *         @arg @ref LL_MDMA_CHANNEL_5
02929   *         @arg @ref LL_MDMA_CHANNEL_6
02930   *         @arg @ref LL_MDMA_CHANNEL_7
02931   *         @arg @ref LL_MDMA_CHANNEL_8
02932   *         @arg @ref LL_MDMA_CHANNEL_9
02933   *         @arg @ref LL_MDMA_CHANNEL_10
02934   *         @arg @ref LL_MDMA_CHANNEL_11
02935   *         @arg @ref LL_MDMA_CHANNEL_12
02936   *         @arg @ref LL_MDMA_CHANNEL_13
02937   *         @arg @ref LL_MDMA_CHANNEL_14
02938   *         @arg @ref LL_MDMA_CHANNEL_15
02939   * @param  DestBus This parameter can be one of the following values:
02940   *         @arg @ref LL_MDMA_DEST_BUS_SYSTEM_AXI
02941   *         @arg @ref LL_MDMA_DEST_BUS_AHB_TCM
02942   * @retval None
02943   */
02944 __STATIC_INLINE void LL_MDMA_SetDestBusSelection(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t DestBus)
02945 {
02946   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02947 
02948   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTBR, MDMA_CTBR_DBUS, DestBus);
02949 }
02950 
02951 /**
02952   * @brief Get Destination Bus Selection.
02953   * @rmtoll CTBR          DBUS            LL_MDMA_GetDestBusSelection
02954   * @param  MDMAx MDMAx Instance
02955   * @param  Channel This parameter can be one of the following values:
02956   *         @arg @ref LL_MDMA_CHANNEL_0
02957   *         @arg @ref LL_MDMA_CHANNEL_1
02958   *         @arg @ref LL_MDMA_CHANNEL_2
02959   *         @arg @ref LL_MDMA_CHANNEL_3
02960   *         @arg @ref LL_MDMA_CHANNEL_4
02961   *         @arg @ref LL_MDMA_CHANNEL_5
02962   *         @arg @ref LL_MDMA_CHANNEL_6
02963   *         @arg @ref LL_MDMA_CHANNEL_7
02964   *         @arg @ref LL_MDMA_CHANNEL_8
02965   *         @arg @ref LL_MDMA_CHANNEL_9
02966   *         @arg @ref LL_MDMA_CHANNEL_10
02967   *         @arg @ref LL_MDMA_CHANNEL_11
02968   *         @arg @ref LL_MDMA_CHANNEL_12
02969   *         @arg @ref LL_MDMA_CHANNEL_13
02970   *         @arg @ref LL_MDMA_CHANNEL_14
02971   *         @arg @ref LL_MDMA_CHANNEL_15
02972   * @retval Returned value can be one of the following values:
02973   *         @arg @ref LL_MDMA_DEST_BUS_SYSTEM_AXI
02974   *         @arg @ref LL_MDMA_DEST_BUS_AHB_TCM
02975   * @retval None
02976   */
02977 __STATIC_INLINE uint32_t LL_MDMA_GetDestBusSelection(MDMA_TypeDef *MDMAx, uint32_t Channel)
02978 {
02979   uint32_t mdma_base_addr = (uint32_t)MDMAx;
02980 
02981   return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTBR, MDMA_CTBR_DBUS));
02982 }
02983 
02984 /**
02985   * @brief Set Source Bus Selection.
02986   * @rmtoll CTBR          SBUS            LL_MDMA_SetSrcBusSelection
02987   * @param  MDMAx MDMAx Instance
02988   * @param  Channel This parameter can be one of the following values:
02989   *         @arg @ref LL_MDMA_CHANNEL_0
02990   *         @arg @ref LL_MDMA_CHANNEL_1
02991   *         @arg @ref LL_MDMA_CHANNEL_2
02992   *         @arg @ref LL_MDMA_CHANNEL_3
02993   *         @arg @ref LL_MDMA_CHANNEL_4
02994   *         @arg @ref LL_MDMA_CHANNEL_5
02995   *         @arg @ref LL_MDMA_CHANNEL_6
02996   *         @arg @ref LL_MDMA_CHANNEL_7
02997   *         @arg @ref LL_MDMA_CHANNEL_8
02998   *         @arg @ref LL_MDMA_CHANNEL_9
02999   *         @arg @ref LL_MDMA_CHANNEL_10
03000   *         @arg @ref LL_MDMA_CHANNEL_11
03001   *         @arg @ref LL_MDMA_CHANNEL_12
03002   *         @arg @ref LL_MDMA_CHANNEL_13
03003   *         @arg @ref LL_MDMA_CHANNEL_14
03004   *         @arg @ref LL_MDMA_CHANNEL_15
03005   * @param  SrcBus This parameter can be one of the following values:
03006   *         @arg @ref LL_MDMA_SRC_BUS_SYSTEM_AXI
03007   *         @arg @ref LL_MDMA_SRC_BUS_AHB_TCM
03008   * @retval None
03009   */
03010 __STATIC_INLINE void LL_MDMA_SetSrcBusSelection(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t SrcBus)
03011 {
03012   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03013 
03014   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTBR, MDMA_CTBR_SBUS, SrcBus);
03015 }
03016 
03017 /**
03018   * @brief Get Source Bus Selection.
03019   * @rmtoll CTBR          SBUS            LL_MDMA_GetSrcBusSelection
03020   * @param  MDMAx MDMAx Instance
03021   * @param  Channel This parameter can be one of the following values:
03022   *         @arg @ref LL_MDMA_CHANNEL_0
03023   *         @arg @ref LL_MDMA_CHANNEL_1
03024   *         @arg @ref LL_MDMA_CHANNEL_2
03025   *         @arg @ref LL_MDMA_CHANNEL_3
03026   *         @arg @ref LL_MDMA_CHANNEL_4
03027   *         @arg @ref LL_MDMA_CHANNEL_5
03028   *         @arg @ref LL_MDMA_CHANNEL_6
03029   *         @arg @ref LL_MDMA_CHANNEL_7
03030   *         @arg @ref LL_MDMA_CHANNEL_8
03031   *         @arg @ref LL_MDMA_CHANNEL_9
03032   *         @arg @ref LL_MDMA_CHANNEL_10
03033   *         @arg @ref LL_MDMA_CHANNEL_11
03034   *         @arg @ref LL_MDMA_CHANNEL_12
03035   *         @arg @ref LL_MDMA_CHANNEL_13
03036   *         @arg @ref LL_MDMA_CHANNEL_14
03037   *         @arg @ref LL_MDMA_CHANNEL_15
03038   * @retval Returned value can be one of the following values:
03039   *         @arg @ref LL_MDMA_SRC_BUS_SYSTEM_AXI
03040   *         @arg @ref LL_MDMA_SRC_BUS_AHB_TCM
03041   * @retval None
03042   */
03043 __STATIC_INLINE uint32_t LL_MDMA_GetSrcBusSelection(MDMA_TypeDef *MDMAx, uint32_t Channel)
03044 {
03045   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03046 
03047   return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTBR, MDMA_CTBR_SBUS));
03048 }
03049 
03050 /**
03051   * @brief Set Transfer hardware trigger (Request).
03052   * @rmtoll CTBR          TSEL            LL_MDMA_SetHWTrigger
03053   * @param  MDMAx MDMAx Instance
03054   * @param  Channel This parameter can be one of the following values:
03055   *         @arg @ref LL_MDMA_CHANNEL_0
03056   *         @arg @ref LL_MDMA_CHANNEL_1
03057   *         @arg @ref LL_MDMA_CHANNEL_2
03058   *         @arg @ref LL_MDMA_CHANNEL_3
03059   *         @arg @ref LL_MDMA_CHANNEL_4
03060   *         @arg @ref LL_MDMA_CHANNEL_5
03061   *         @arg @ref LL_MDMA_CHANNEL_6
03062   *         @arg @ref LL_MDMA_CHANNEL_7
03063   *         @arg @ref LL_MDMA_CHANNEL_8
03064   *         @arg @ref LL_MDMA_CHANNEL_9
03065   *         @arg @ref LL_MDMA_CHANNEL_10
03066   *         @arg @ref LL_MDMA_CHANNEL_11
03067   *         @arg @ref LL_MDMA_CHANNEL_12
03068   *         @arg @ref LL_MDMA_CHANNEL_13
03069   *         @arg @ref LL_MDMA_CHANNEL_14
03070   *         @arg @ref LL_MDMA_CHANNEL_15
03071   * @param  HWRequest This parameter can be one of the following values:
03072   *         @arg @ref LL_MDMA_REQ_DMA1_STREAM0_TC
03073   *         @arg @ref LL_MDMA_REQ_DMA1_STREAM1_TC
03074   *         @arg @ref LL_MDMA_REQ_DMA1_STREAM2_TC
03075   *         @arg @ref LL_MDMA_REQ_DMA1_STREAM3_TC
03076   *         @arg @ref LL_MDMA_REQ_DMA1_STREAM4_TC
03077   *         @arg @ref LL_MDMA_REQ_DMA1_STREAM5_TC
03078   *         @arg @ref LL_MDMA_REQ_DMA1_STREAM6_TC
03079   *         @arg @ref LL_MDMA_REQ_DMA1_STREAM7_TC
03080   *         @arg @ref LL_MDMA_REQ_DMA2_STREAM0_TC
03081   *         @arg @ref LL_MDMA_REQ_DMA2_STREAM1_TC
03082   *         @arg @ref LL_MDMA_REQ_DMA2_STREAM2_TC
03083   *         @arg @ref LL_MDMA_REQ_DMA2_STREAM3_TC
03084   *         @arg @ref LL_MDMA_REQ_DMA2_STREAM4_TC
03085   *         @arg @ref LL_MDMA_REQ_DMA2_STREAM5_TC
03086   *         @arg @ref LL_MDMA_REQ_DMA2_STREAM6_TC
03087   *         @arg @ref LL_MDMA_REQ_DMA2_STREAM7_TC
03088   *         @arg @ref LL_MDMA_REQ_LTDC_LINE_IT (*)
03089   *         @arg @ref LL_MDMA_REQ_JPEG_INFIFO_TH (*)
03090   *         @arg @ref LL_MDMA_REQ_JPEG_INFIFO_NF (*)
03091   *         @arg @ref LL_MDMA_REQ_JPEG_OUTFIFO_TH (*)
03092   *         @arg @ref LL_MDMA_REQ_JPEG_OUTFIFO_NE (*)
03093   *         @arg @ref LL_MDMA_REQ_JPEG_END_CONVERSION (*)
03094   *         @arg @ref LL_MDMA_REQ_QUADSPI_FIFO_TH (*)
03095   *         @arg @ref LL_MDMA_REQ_QUADSPI_TC (*)
03096   *         @arg @ref LL_MDMA_REQ_OCTOSPI1_FIFO_TH (*)
03097   *         @arg @ref LL_MDMA_REQ_OCTOSPI1_TC (*)
03098   *         @arg @ref LL_MDMA_REQ_DMA2D_CLUT_TC
03099   *         @arg @ref LL_MDMA_REQ_DMA2D_TC
03100   *         @arg @ref LL_MDMA_REQ_DMA2D_TW
03101   *         @arg @ref LL_MDMA_REQ_DSI_TEARING_EFFECT (*)
03102   *         @arg @ref LL_MDMA_REQ_DSI_END_REFRESH (*)
03103   *         @arg @ref LL_MDMA_REQ_SDMMC1_END_DATA
03104   *         @arg @ref LL_MDMA_REQ_SDMMC1_DMA_ENDBUFFER (*)
03105   *         @arg @ref LL_MDMA_REQ_SDMMC1_COMMAND_END (*)
03106   *         @arg @ref LL_MDMA_REQ_OCTOSPI2_FIFO_TH (*)
03107   *         @arg @ref LL_MDMA_REQ_OCTOSPI2_TC (*)
03108   * @note   (*) Availability depends on devices.
03109   * @retval None
03110   */
03111 __STATIC_INLINE void LL_MDMA_SetHWTrigger(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t HWRequest)
03112 {
03113   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03114 
03115   MODIFY_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTBR, MDMA_CTBR_TSEL, HWRequest);
03116 }
03117 
03118 /**
03119   * @brief Get Transfer hardware trigger (Request).
03120   * @rmtoll CTBR          TSEL            LL_MDMA_GetHWTrigger
03121   * @param  MDMAx MDMAx Instance
03122   * @param  Channel This parameter can be one of the following values:
03123   *         @arg @ref LL_MDMA_CHANNEL_0
03124   *         @arg @ref LL_MDMA_CHANNEL_1
03125   *         @arg @ref LL_MDMA_CHANNEL_2
03126   *         @arg @ref LL_MDMA_CHANNEL_3
03127   *         @arg @ref LL_MDMA_CHANNEL_4
03128   *         @arg @ref LL_MDMA_CHANNEL_5
03129   *         @arg @ref LL_MDMA_CHANNEL_6
03130   *         @arg @ref LL_MDMA_CHANNEL_7
03131   *         @arg @ref LL_MDMA_CHANNEL_8
03132   *         @arg @ref LL_MDMA_CHANNEL_9
03133   *         @arg @ref LL_MDMA_CHANNEL_10
03134   *         @arg @ref LL_MDMA_CHANNEL_11
03135   *         @arg @ref LL_MDMA_CHANNEL_12
03136   *         @arg @ref LL_MDMA_CHANNEL_13
03137   *         @arg @ref LL_MDMA_CHANNEL_14
03138   *         @arg @ref LL_MDMA_CHANNEL_15
03139   * @retval Returned value can be one of the following values:
03140   *         @arg @ref LL_MDMA_REQ_DMA1_STREAM0_TC
03141   *         @arg @ref LL_MDMA_REQ_DMA1_STREAM1_TC
03142   *         @arg @ref LL_MDMA_REQ_DMA1_STREAM2_TC
03143   *         @arg @ref LL_MDMA_REQ_DMA1_STREAM3_TC
03144   *         @arg @ref LL_MDMA_REQ_DMA1_STREAM4_TC
03145   *         @arg @ref LL_MDMA_REQ_DMA1_STREAM5_TC
03146   *         @arg @ref LL_MDMA_REQ_DMA1_STREAM6_TC
03147   *         @arg @ref LL_MDMA_REQ_DMA1_STREAM7_TC
03148   *         @arg @ref LL_MDMA_REQ_DMA2_STREAM0_TC
03149   *         @arg @ref LL_MDMA_REQ_DMA2_STREAM1_TC
03150   *         @arg @ref LL_MDMA_REQ_DMA2_STREAM2_TC
03151   *         @arg @ref LL_MDMA_REQ_DMA2_STREAM3_TC
03152   *         @arg @ref LL_MDMA_REQ_DMA2_STREAM4_TC
03153   *         @arg @ref LL_MDMA_REQ_DMA2_STREAM5_TC
03154   *         @arg @ref LL_MDMA_REQ_DMA2_STREAM6_TC
03155   *         @arg @ref LL_MDMA_REQ_DMA2_STREAM7_TC
03156   *         @arg @ref LL_MDMA_REQ_LTDC_LINE_IT (*)
03157   *         @arg @ref LL_MDMA_REQ_JPEG_INFIFO_TH (*)
03158   *         @arg @ref LL_MDMA_REQ_JPEG_INFIFO_NF (*)
03159   *         @arg @ref LL_MDMA_REQ_JPEG_OUTFIFO_TH (*)
03160   *         @arg @ref LL_MDMA_REQ_JPEG_OUTFIFO_NE (*)
03161   *         @arg @ref LL_MDMA_REQ_JPEG_END_CONVERSION (*)
03162   *         @arg @ref LL_MDMA_REQ_QUADSPI_FIFO_TH (*)
03163   *         @arg @ref LL_MDMA_REQ_QUADSPI_TC (*)
03164   *         @arg @ref LL_MDMA_REQ_OCTOSPI1_FIFO_TH (*)
03165   *         @arg @ref LL_MDMA_REQ_OCTOSPI1_TC (*)
03166   *         @arg @ref LL_MDMA_REQ_DMA2D_CLUT_TC
03167   *         @arg @ref LL_MDMA_REQ_DMA2D_TC
03168   *         @arg @ref LL_MDMA_REQ_DMA2D_TW
03169   *         @arg @ref LL_MDMA_REQ_DSI_TEARING_EFFECT (*)
03170   *         @arg @ref LL_MDMA_REQ_DSI_END_REFRESH (*)
03171   *         @arg @ref LL_MDMA_REQ_SDMMC1_END_DATA
03172   *         @arg @ref LL_MDMA_REQ_SDMMC1_DMA_ENDBUFFER (*)
03173   *         @arg @ref LL_MDMA_REQ_SDMMC1_COMMAND_END (*)
03174   *         @arg @ref LL_MDMA_REQ_OCTOSPI2_FIFO_TH (*)
03175   *         @arg @ref LL_MDMA_REQ_OCTOSPI2_TC (*)
03176   * @note   (*) Availability depends on devices.
03177   * @retval None
03178   */
03179 __STATIC_INLINE uint32_t LL_MDMA_GetHWTrigger(MDMA_TypeDef *MDMAx, uint32_t Channel)
03180 {
03181   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03182 
03183   return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CTBR, MDMA_CTBR_TSEL));
03184 }
03185 
03186 /**
03187   * @brief Set Mask Address.
03188   * @rmtoll CMAR          MAR            LL_MDMA_SetMaskAddress
03189   * @param  MDMAx MDMAx Instance
03190   * @param  Channel This parameter can be one of the following values:
03191   *         @arg @ref LL_MDMA_CHANNEL_0
03192   *         @arg @ref LL_MDMA_CHANNEL_1
03193   *         @arg @ref LL_MDMA_CHANNEL_2
03194   *         @arg @ref LL_MDMA_CHANNEL_3
03195   *         @arg @ref LL_MDMA_CHANNEL_4
03196   *         @arg @ref LL_MDMA_CHANNEL_5
03197   *         @arg @ref LL_MDMA_CHANNEL_6
03198   *         @arg @ref LL_MDMA_CHANNEL_7
03199   *         @arg @ref LL_MDMA_CHANNEL_8
03200   *         @arg @ref LL_MDMA_CHANNEL_9
03201   *         @arg @ref LL_MDMA_CHANNEL_10
03202   *         @arg @ref LL_MDMA_CHANNEL_11
03203   *         @arg @ref LL_MDMA_CHANNEL_12
03204   *         @arg @ref LL_MDMA_CHANNEL_13
03205   *         @arg @ref LL_MDMA_CHANNEL_14
03206   *         @arg @ref LL_MDMA_CHANNEL_15
03207   * @param  MaskAddress Between 0 to 0xFFFFFFFF
03208   * @retval None
03209   */
03210 __STATIC_INLINE void LL_MDMA_SetMaskAddress(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t MaskAddress)
03211 {
03212   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03213 
03214   WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CMAR, MaskAddress);
03215 }
03216 
03217 /**
03218   * @brief Get Mask Address.
03219   * @rmtoll CMAR          MAR            LL_MDMA_GetMaskAddress
03220   * @param  MDMAx MDMAx Instance
03221   * @param  Channel This parameter can be one of the following values:
03222   *         @arg @ref LL_MDMA_CHANNEL_0
03223   *         @arg @ref LL_MDMA_CHANNEL_1
03224   *         @arg @ref LL_MDMA_CHANNEL_2
03225   *         @arg @ref LL_MDMA_CHANNEL_3
03226   *         @arg @ref LL_MDMA_CHANNEL_4
03227   *         @arg @ref LL_MDMA_CHANNEL_5
03228   *         @arg @ref LL_MDMA_CHANNEL_6
03229   *         @arg @ref LL_MDMA_CHANNEL_7
03230   *         @arg @ref LL_MDMA_CHANNEL_8
03231   *         @arg @ref LL_MDMA_CHANNEL_9
03232   *         @arg @ref LL_MDMA_CHANNEL_10
03233   *         @arg @ref LL_MDMA_CHANNEL_11
03234   *         @arg @ref LL_MDMA_CHANNEL_12
03235   *         @arg @ref LL_MDMA_CHANNEL_13
03236   *         @arg @ref LL_MDMA_CHANNEL_14
03237   *         @arg @ref LL_MDMA_CHANNEL_15
03238   * @retval Between 0 to 0xFFFFFFFF
03239   * @retval None
03240   */
03241 __STATIC_INLINE uint32_t LL_MDMA_GetMaskAddress(MDMA_TypeDef *MDMAx, uint32_t Channel)
03242 {
03243   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03244 
03245   return (READ_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CMAR));
03246 }
03247 
03248 /**
03249   * @brief Set Mask Data.
03250   * @rmtoll CMDR          MDR            LL_MDMA_SetMaskData
03251   * @param  MDMAx MDMAx Instance
03252   * @param  Channel This parameter can be one of the following values:
03253   *         @arg @ref LL_MDMA_CHANNEL_0
03254   *         @arg @ref LL_MDMA_CHANNEL_1
03255   *         @arg @ref LL_MDMA_CHANNEL_2
03256   *         @arg @ref LL_MDMA_CHANNEL_3
03257   *         @arg @ref LL_MDMA_CHANNEL_4
03258   *         @arg @ref LL_MDMA_CHANNEL_5
03259   *         @arg @ref LL_MDMA_CHANNEL_6
03260   *         @arg @ref LL_MDMA_CHANNEL_7
03261   *         @arg @ref LL_MDMA_CHANNEL_8
03262   *         @arg @ref LL_MDMA_CHANNEL_9
03263   *         @arg @ref LL_MDMA_CHANNEL_10
03264   *         @arg @ref LL_MDMA_CHANNEL_11
03265   *         @arg @ref LL_MDMA_CHANNEL_12
03266   *         @arg @ref LL_MDMA_CHANNEL_13
03267   *         @arg @ref LL_MDMA_CHANNEL_14
03268   *         @arg @ref LL_MDMA_CHANNEL_15
03269   * @param  MaskData Between 0 to 0xFFFFFFFF
03270   * @retval None
03271   */
03272 __STATIC_INLINE void LL_MDMA_SetMaskData(MDMA_TypeDef *MDMAx, uint32_t Channel, uint32_t MaskData)
03273 {
03274   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03275 
03276   WRITE_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CMDR, MaskData);
03277 }
03278 
03279 /**
03280   * @brief Get Mask Data.
03281   * @rmtoll CMDR          MDR            LL_MDMA_GetMaskData
03282   * @param  MDMAx MDMAx Instance
03283   * @param  Channel This parameter can be one of the following values:
03284   *         @arg @ref LL_MDMA_CHANNEL_0
03285   *         @arg @ref LL_MDMA_CHANNEL_1
03286   *         @arg @ref LL_MDMA_CHANNEL_2
03287   *         @arg @ref LL_MDMA_CHANNEL_3
03288   *         @arg @ref LL_MDMA_CHANNEL_4
03289   *         @arg @ref LL_MDMA_CHANNEL_5
03290   *         @arg @ref LL_MDMA_CHANNEL_6
03291   *         @arg @ref LL_MDMA_CHANNEL_7
03292   *         @arg @ref LL_MDMA_CHANNEL_8
03293   *         @arg @ref LL_MDMA_CHANNEL_9
03294   *         @arg @ref LL_MDMA_CHANNEL_10
03295   *         @arg @ref LL_MDMA_CHANNEL_11
03296   *         @arg @ref LL_MDMA_CHANNEL_12
03297   *         @arg @ref LL_MDMA_CHANNEL_13
03298   *         @arg @ref LL_MDMA_CHANNEL_14
03299   *         @arg @ref LL_MDMA_CHANNEL_15
03300   * @retval Between 0 to 0xFFFFFFFF
03301   * @retval None
03302   */
03303 __STATIC_INLINE uint32_t LL_MDMA_GetMaskData(MDMA_TypeDef *MDMAx, uint32_t Channel)
03304 {
03305   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03306 
03307   return (READ_REG(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CMDR));
03308 }
03309 
03310 /**
03311   * @brief Get Transfer Error Direction.
03312   * @rmtoll CESR          TED            LL_MDMA_GetXferErrorDirection
03313   * @param  MDMAx MDMAx Instance
03314   * @param  Channel This parameter can be one of the following values:
03315   *         @arg @ref LL_MDMA_CHANNEL_0
03316   *         @arg @ref LL_MDMA_CHANNEL_1
03317   *         @arg @ref LL_MDMA_CHANNEL_2
03318   *         @arg @ref LL_MDMA_CHANNEL_3
03319   *         @arg @ref LL_MDMA_CHANNEL_4
03320   *         @arg @ref LL_MDMA_CHANNEL_5
03321   *         @arg @ref LL_MDMA_CHANNEL_6
03322   *         @arg @ref LL_MDMA_CHANNEL_7
03323   *         @arg @ref LL_MDMA_CHANNEL_8
03324   *         @arg @ref LL_MDMA_CHANNEL_9
03325   *         @arg @ref LL_MDMA_CHANNEL_10
03326   *         @arg @ref LL_MDMA_CHANNEL_11
03327   *         @arg @ref LL_MDMA_CHANNEL_12
03328   *         @arg @ref LL_MDMA_CHANNEL_13
03329   *         @arg @ref LL_MDMA_CHANNEL_14
03330   *         @arg @ref LL_MDMA_CHANNEL_15
03331   * @retval Returned value can be one of the following values:
03332   *         @arg @ref LL_MDMA_READ_ERROR
03333   *         @arg @ref LL_MDMA_WRITE_ERROR
03334   * @retval None
03335   */
03336 __STATIC_INLINE uint32_t LL_MDMA_GetXferErrorDirection(MDMA_TypeDef *MDMAx, uint32_t Channel)
03337 {
03338   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03339 
03340   return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CESR, MDMA_CESR_TED));
03341 }
03342 
03343 /**
03344   * @brief Get Transfer Error LSB Address.
03345   * @rmtoll CESR          TEA            LL_MDMA_GetXferErrorLSBAddress
03346   * @param  MDMAx MDMAx Instance
03347   * @param  Channel This parameter can be one of the following values:
03348   *         @arg @ref LL_MDMA_CHANNEL_0
03349   *         @arg @ref LL_MDMA_CHANNEL_1
03350   *         @arg @ref LL_MDMA_CHANNEL_2
03351   *         @arg @ref LL_MDMA_CHANNEL_3
03352   *         @arg @ref LL_MDMA_CHANNEL_4
03353   *         @arg @ref LL_MDMA_CHANNEL_5
03354   *         @arg @ref LL_MDMA_CHANNEL_6
03355   *         @arg @ref LL_MDMA_CHANNEL_7
03356   *         @arg @ref LL_MDMA_CHANNEL_8
03357   *         @arg @ref LL_MDMA_CHANNEL_9
03358   *         @arg @ref LL_MDMA_CHANNEL_10
03359   *         @arg @ref LL_MDMA_CHANNEL_11
03360   *         @arg @ref LL_MDMA_CHANNEL_12
03361   *         @arg @ref LL_MDMA_CHANNEL_13
03362   *         @arg @ref LL_MDMA_CHANNEL_14
03363   *         @arg @ref LL_MDMA_CHANNEL_15
03364   * @retval Between 0 to 0x0000007F
03365   * @retval None
03366   */
03367 __STATIC_INLINE uint32_t LL_MDMA_GetXferErrorLSBAddress(MDMA_TypeDef *MDMAx, uint32_t Channel)
03368 {
03369   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03370 
03371   return (READ_BIT(((MDMA_Channel_TypeDef *)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CESR, MDMA_CESR_TEA));
03372 }
03373 
03374 /**
03375   * @}
03376   */
03377 
03378 /** @defgroup MDMA_LL_EF_FLAG_Management FLAG_Management
03379   * @{
03380   */
03381 
03382 /**
03383   * @brief Get MDMA Channel x Global Interrupt flag.
03384   * @rmtoll GISR0  GIFx    LL_MDMA_IsActiveFlag_GI
03385   * @param  MDMAx MDMAx Instance
03386   * @param  Channel This parameter can be one of the following values:
03387   *         @arg @ref LL_MDMA_CHANNEL_0
03388   *         @arg @ref LL_MDMA_CHANNEL_1
03389   *         @arg @ref LL_MDMA_CHANNEL_2
03390   *         @arg @ref LL_MDMA_CHANNEL_3
03391   *         @arg @ref LL_MDMA_CHANNEL_4
03392   *         @arg @ref LL_MDMA_CHANNEL_5
03393   *         @arg @ref LL_MDMA_CHANNEL_6
03394   *         @arg @ref LL_MDMA_CHANNEL_7
03395   *         @arg @ref LL_MDMA_CHANNEL_8
03396   *         @arg @ref LL_MDMA_CHANNEL_9
03397   *         @arg @ref LL_MDMA_CHANNEL_10
03398   *         @arg @ref LL_MDMA_CHANNEL_11
03399   *         @arg @ref LL_MDMA_CHANNEL_12
03400   *         @arg @ref LL_MDMA_CHANNEL_13
03401   *         @arg @ref LL_MDMA_CHANNEL_14
03402   *         @arg @ref LL_MDMA_CHANNEL_15
03403   * @retval State of bit (1 or 0).
03404   */
03405 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_GI(MDMA_TypeDef *MDMAx, uint32_t Channel)
03406 {
03407   return ((READ_BIT(MDMAx->GISR0 ,(MDMA_GISR0_GIF0 << (Channel & 0x0000000FU)))==(MDMA_GISR0_GIF0 << (Channel & 0x0000000FU))) ? 1UL : 0UL);
03408 }
03409 
03410 /**
03411   * @brief Get MDMA Channel x Transfer Error interrupt flag.
03412   * @rmtoll CISR  TEIF    LL_MDMA_IsActiveFlag_TE
03413   * @param  MDMAx MDMAx Instance
03414   * @param  Channel This parameter can be one of the following values:
03415   *         @arg @ref LL_MDMA_CHANNEL_0
03416   *         @arg @ref LL_MDMA_CHANNEL_1
03417   *         @arg @ref LL_MDMA_CHANNEL_2
03418   *         @arg @ref LL_MDMA_CHANNEL_3
03419   *         @arg @ref LL_MDMA_CHANNEL_4
03420   *         @arg @ref LL_MDMA_CHANNEL_5
03421   *         @arg @ref LL_MDMA_CHANNEL_6
03422   *         @arg @ref LL_MDMA_CHANNEL_7
03423   *         @arg @ref LL_MDMA_CHANNEL_8
03424   *         @arg @ref LL_MDMA_CHANNEL_9
03425   *         @arg @ref LL_MDMA_CHANNEL_10
03426   *         @arg @ref LL_MDMA_CHANNEL_11
03427   *         @arg @ref LL_MDMA_CHANNEL_12
03428   *         @arg @ref LL_MDMA_CHANNEL_13
03429   *         @arg @ref LL_MDMA_CHANNEL_14
03430   *         @arg @ref LL_MDMA_CHANNEL_15
03431   * @retval State of bit (1 or 0).
03432   */
03433 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_TE(MDMA_TypeDef *MDMAx, uint32_t Channel)
03434 {
03435   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03436 
03437   return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CISR, MDMA_CISR_TEIF) == (MDMA_CISR_TEIF)) ? 1UL : 0UL);
03438 }
03439 
03440 /**
03441   * @brief Get MDMA Channel x Channel Transfer Complete interrupt flag.
03442   * @rmtoll CISR  CTCIF    LL_MDMA_IsActiveFlag_CTC
03443   * @param  MDMAx MDMAx Instance
03444   * @param  Channel This parameter can be one of the following values:
03445   *         @arg @ref LL_MDMA_CHANNEL_0
03446   *         @arg @ref LL_MDMA_CHANNEL_1
03447   *         @arg @ref LL_MDMA_CHANNEL_2
03448   *         @arg @ref LL_MDMA_CHANNEL_3
03449   *         @arg @ref LL_MDMA_CHANNEL_4
03450   *         @arg @ref LL_MDMA_CHANNEL_5
03451   *         @arg @ref LL_MDMA_CHANNEL_6
03452   *         @arg @ref LL_MDMA_CHANNEL_7
03453   *         @arg @ref LL_MDMA_CHANNEL_8
03454   *         @arg @ref LL_MDMA_CHANNEL_9
03455   *         @arg @ref LL_MDMA_CHANNEL_10
03456   *         @arg @ref LL_MDMA_CHANNEL_11
03457   *         @arg @ref LL_MDMA_CHANNEL_12
03458   *         @arg @ref LL_MDMA_CHANNEL_13
03459   *         @arg @ref LL_MDMA_CHANNEL_14
03460   *         @arg @ref LL_MDMA_CHANNEL_15
03461   * @retval State of bit (1 or 0).
03462   */
03463 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_CTC(MDMA_TypeDef *MDMAx, uint32_t Channel)
03464 {
03465   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03466 
03467   return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CISR, MDMA_CISR_CTCIF) == (MDMA_CISR_CTCIF)) ? 1UL : 0UL);
03468 }
03469 
03470 /**
03471   * @brief Get MDMA Channel x Block Repeat Transfer complete interrupt flag.
03472   * @rmtoll CISR  BRTIF    LL_MDMA_IsActiveFlag_BRT
03473   * @param  MDMAx MDMAx Instance
03474   * @param  Channel This parameter can be one of the following values:
03475   *         @arg @ref LL_MDMA_CHANNEL_0
03476   *         @arg @ref LL_MDMA_CHANNEL_1
03477   *         @arg @ref LL_MDMA_CHANNEL_2
03478   *         @arg @ref LL_MDMA_CHANNEL_3
03479   *         @arg @ref LL_MDMA_CHANNEL_4
03480   *         @arg @ref LL_MDMA_CHANNEL_5
03481   *         @arg @ref LL_MDMA_CHANNEL_6
03482   *         @arg @ref LL_MDMA_CHANNEL_7
03483   *         @arg @ref LL_MDMA_CHANNEL_8
03484   *         @arg @ref LL_MDMA_CHANNEL_9
03485   *         @arg @ref LL_MDMA_CHANNEL_10
03486   *         @arg @ref LL_MDMA_CHANNEL_11
03487   *         @arg @ref LL_MDMA_CHANNEL_12
03488   *         @arg @ref LL_MDMA_CHANNEL_13
03489   *         @arg @ref LL_MDMA_CHANNEL_14
03490   *         @arg @ref LL_MDMA_CHANNEL_15
03491   * @retval State of bit (1 or 0).
03492   */
03493 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_BRT(MDMA_TypeDef *MDMAx, uint32_t Channel)
03494 {
03495   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03496 
03497   return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CISR, MDMA_CISR_BRTIF) == (MDMA_CISR_BRTIF)) ? 1UL : 0UL);
03498 }
03499 
03500 /**
03501   * @brief Get MDMA Channel x Block Transfer complete interrupt flag.
03502   * @rmtoll CISR  BTIF    LL_MDMA_IsActiveFlag_BT
03503   * @param  MDMAx MDMAx Instance
03504   * @param  Channel This parameter can be one of the following values:
03505   *         @arg @ref LL_MDMA_CHANNEL_0
03506   *         @arg @ref LL_MDMA_CHANNEL_1
03507   *         @arg @ref LL_MDMA_CHANNEL_2
03508   *         @arg @ref LL_MDMA_CHANNEL_3
03509   *         @arg @ref LL_MDMA_CHANNEL_4
03510   *         @arg @ref LL_MDMA_CHANNEL_5
03511   *         @arg @ref LL_MDMA_CHANNEL_6
03512   *         @arg @ref LL_MDMA_CHANNEL_7
03513   *         @arg @ref LL_MDMA_CHANNEL_8
03514   *         @arg @ref LL_MDMA_CHANNEL_9
03515   *         @arg @ref LL_MDMA_CHANNEL_10
03516   *         @arg @ref LL_MDMA_CHANNEL_11
03517   *         @arg @ref LL_MDMA_CHANNEL_12
03518   *         @arg @ref LL_MDMA_CHANNEL_13
03519   *         @arg @ref LL_MDMA_CHANNEL_14
03520   *         @arg @ref LL_MDMA_CHANNEL_15
03521   * @retval State of bit (1 or 0).
03522   */
03523 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_BT(MDMA_TypeDef *MDMAx, uint32_t Channel)
03524 {
03525   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03526 
03527   return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CISR, MDMA_CISR_BTIF) == (MDMA_CISR_BTIF)) ? 1UL : 0UL);
03528 }
03529 
03530 /**
03531   * @brief Get MDMA Channel x buffer transfer complete interrupt flag.
03532   * @rmtoll CISR  TCIF    LL_MDMA_IsActiveFlag_TC
03533   * @param  MDMAx MDMAx Instance
03534   * @param  Channel This parameter can be one of the following values:
03535   *         @arg @ref LL_MDMA_CHANNEL_0
03536   *         @arg @ref LL_MDMA_CHANNEL_1
03537   *         @arg @ref LL_MDMA_CHANNEL_2
03538   *         @arg @ref LL_MDMA_CHANNEL_3
03539   *         @arg @ref LL_MDMA_CHANNEL_4
03540   *         @arg @ref LL_MDMA_CHANNEL_5
03541   *         @arg @ref LL_MDMA_CHANNEL_6
03542   *         @arg @ref LL_MDMA_CHANNEL_7
03543   *         @arg @ref LL_MDMA_CHANNEL_8
03544   *         @arg @ref LL_MDMA_CHANNEL_9
03545   *         @arg @ref LL_MDMA_CHANNEL_10
03546   *         @arg @ref LL_MDMA_CHANNEL_11
03547   *         @arg @ref LL_MDMA_CHANNEL_12
03548   *         @arg @ref LL_MDMA_CHANNEL_13
03549   *         @arg @ref LL_MDMA_CHANNEL_14
03550   *         @arg @ref LL_MDMA_CHANNEL_15
03551   * @retval State of bit (1 or 0).
03552   */
03553 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_TC(MDMA_TypeDef *MDMAx, uint32_t Channel)
03554 {
03555   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03556 
03557   return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CISR, MDMA_CISR_TCIF) == (MDMA_CISR_TCIF)) ? 1UL : 0UL);
03558 }
03559 
03560 /**
03561   * @brief Get MDMA Channel x ReQuest Active flag.
03562   * @rmtoll CISR  CRQA    LL_MDMA_IsActiveFlag_CRQA
03563   * @param  MDMAx MDMAx Instance
03564   * @param  Channel This parameter can be one of the following values:
03565   *         @arg @ref LL_MDMA_CHANNEL_0
03566   *         @arg @ref LL_MDMA_CHANNEL_1
03567   *         @arg @ref LL_MDMA_CHANNEL_2
03568   *         @arg @ref LL_MDMA_CHANNEL_3
03569   *         @arg @ref LL_MDMA_CHANNEL_4
03570   *         @arg @ref LL_MDMA_CHANNEL_5
03571   *         @arg @ref LL_MDMA_CHANNEL_6
03572   *         @arg @ref LL_MDMA_CHANNEL_7
03573   *         @arg @ref LL_MDMA_CHANNEL_8
03574   *         @arg @ref LL_MDMA_CHANNEL_9
03575   *         @arg @ref LL_MDMA_CHANNEL_10
03576   *         @arg @ref LL_MDMA_CHANNEL_11
03577   *         @arg @ref LL_MDMA_CHANNEL_12
03578   *         @arg @ref LL_MDMA_CHANNEL_13
03579   *         @arg @ref LL_MDMA_CHANNEL_14
03580   *         @arg @ref LL_MDMA_CHANNEL_15
03581   * @retval State of bit (1 or 0).
03582   */
03583 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_CRQA(MDMA_TypeDef *MDMAx, uint32_t Channel)
03584 {
03585   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03586 
03587   return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CISR, MDMA_CISR_CRQA) == (MDMA_CISR_CRQA)) ? 1UL : 0UL);
03588 }
03589 
03590 /**
03591   * @brief Get MDMA Channel x Block Size Error flag.
03592   * @rmtoll CESR  BSE    LL_MDMA_IsActiveFlag_BSE
03593   * @param  MDMAx MDMAx Instance
03594   * @param  Channel This parameter can be one of the following values:
03595   *         @arg @ref LL_MDMA_CHANNEL_0
03596   *         @arg @ref LL_MDMA_CHANNEL_1
03597   *         @arg @ref LL_MDMA_CHANNEL_2
03598   *         @arg @ref LL_MDMA_CHANNEL_3
03599   *         @arg @ref LL_MDMA_CHANNEL_4
03600   *         @arg @ref LL_MDMA_CHANNEL_5
03601   *         @arg @ref LL_MDMA_CHANNEL_6
03602   *         @arg @ref LL_MDMA_CHANNEL_7
03603   *         @arg @ref LL_MDMA_CHANNEL_8
03604   *         @arg @ref LL_MDMA_CHANNEL_9
03605   *         @arg @ref LL_MDMA_CHANNEL_10
03606   *         @arg @ref LL_MDMA_CHANNEL_11
03607   *         @arg @ref LL_MDMA_CHANNEL_12
03608   *         @arg @ref LL_MDMA_CHANNEL_13
03609   *         @arg @ref LL_MDMA_CHANNEL_14
03610   *         @arg @ref LL_MDMA_CHANNEL_15
03611   * @retval State of bit (1 or 0).
03612   */
03613 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_BSE(MDMA_TypeDef *MDMAx, uint32_t Channel)
03614 {
03615   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03616 
03617   return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CESR, MDMA_CESR_BSE) == (MDMA_CESR_BSE)) ? 1UL : 0UL);
03618 }
03619 
03620 /**
03621   * @brief Get MDMA Channel x Address/Size Error flag.
03622   * @rmtoll CESR  ASE    LL_MDMA_IsActiveFlag_ASE
03623   * @param  MDMAx MDMAx Instance
03624   * @param  Channel This parameter can be one of the following values:
03625   *         @arg @ref LL_MDMA_CHANNEL_0
03626   *         @arg @ref LL_MDMA_CHANNEL_1
03627   *         @arg @ref LL_MDMA_CHANNEL_2
03628   *         @arg @ref LL_MDMA_CHANNEL_3
03629   *         @arg @ref LL_MDMA_CHANNEL_4
03630   *         @arg @ref LL_MDMA_CHANNEL_5
03631   *         @arg @ref LL_MDMA_CHANNEL_6
03632   *         @arg @ref LL_MDMA_CHANNEL_7
03633   *         @arg @ref LL_MDMA_CHANNEL_8
03634   *         @arg @ref LL_MDMA_CHANNEL_9
03635   *         @arg @ref LL_MDMA_CHANNEL_10
03636   *         @arg @ref LL_MDMA_CHANNEL_11
03637   *         @arg @ref LL_MDMA_CHANNEL_12
03638   *         @arg @ref LL_MDMA_CHANNEL_13
03639   *         @arg @ref LL_MDMA_CHANNEL_14
03640   *         @arg @ref LL_MDMA_CHANNEL_15
03641   * @retval State of bit (1 or 0).
03642   */
03643 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_ASE(MDMA_TypeDef *MDMAx, uint32_t Channel)
03644 {
03645   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03646 
03647   return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CESR, MDMA_CESR_ASE) == (MDMA_CESR_ASE)) ? 1UL : 0UL);
03648 }
03649 
03650 /**
03651   * @brief Get MDMA Channel x Transfer Error Mask Data flag.
03652   * @rmtoll CESR  TEMD    LL_MDMA_IsActiveFlag_TEMD
03653   * @param  MDMAx MDMAx Instance
03654   * @param  Channel This parameter can be one of the following values:
03655   *         @arg @ref LL_MDMA_CHANNEL_0
03656   *         @arg @ref LL_MDMA_CHANNEL_1
03657   *         @arg @ref LL_MDMA_CHANNEL_2
03658   *         @arg @ref LL_MDMA_CHANNEL_3
03659   *         @arg @ref LL_MDMA_CHANNEL_4
03660   *         @arg @ref LL_MDMA_CHANNEL_5
03661   *         @arg @ref LL_MDMA_CHANNEL_6
03662   *         @arg @ref LL_MDMA_CHANNEL_7
03663   *         @arg @ref LL_MDMA_CHANNEL_8
03664   *         @arg @ref LL_MDMA_CHANNEL_9
03665   *         @arg @ref LL_MDMA_CHANNEL_10
03666   *         @arg @ref LL_MDMA_CHANNEL_11
03667   *         @arg @ref LL_MDMA_CHANNEL_12
03668   *         @arg @ref LL_MDMA_CHANNEL_13
03669   *         @arg @ref LL_MDMA_CHANNEL_14
03670   *         @arg @ref LL_MDMA_CHANNEL_15
03671   * @retval State of bit (1 or 0).
03672   */
03673 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_TEMD(MDMA_TypeDef *MDMAx, uint32_t Channel)
03674 {
03675   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03676 
03677   return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CESR, MDMA_CESR_TEMD) == (MDMA_CESR_TEMD)) ? 1UL : 0UL);
03678 }
03679 
03680 /**
03681   * @brief Get MDMA Channel x Transfer Error Link Data flag.
03682   * @rmtoll CESR  TELD    LL_MDMA_IsActiveFlag_TELD
03683   * @param  MDMAx MDMAx Instance
03684   * @param  Channel This parameter can be one of the following values:
03685   *         @arg @ref LL_MDMA_CHANNEL_0
03686   *         @arg @ref LL_MDMA_CHANNEL_1
03687   *         @arg @ref LL_MDMA_CHANNEL_2
03688   *         @arg @ref LL_MDMA_CHANNEL_3
03689   *         @arg @ref LL_MDMA_CHANNEL_4
03690   *         @arg @ref LL_MDMA_CHANNEL_5
03691   *         @arg @ref LL_MDMA_CHANNEL_6
03692   *         @arg @ref LL_MDMA_CHANNEL_7
03693   *         @arg @ref LL_MDMA_CHANNEL_8
03694   *         @arg @ref LL_MDMA_CHANNEL_9
03695   *         @arg @ref LL_MDMA_CHANNEL_10
03696   *         @arg @ref LL_MDMA_CHANNEL_11
03697   *         @arg @ref LL_MDMA_CHANNEL_12
03698   *         @arg @ref LL_MDMA_CHANNEL_13
03699   *         @arg @ref LL_MDMA_CHANNEL_14
03700   *         @arg @ref LL_MDMA_CHANNEL_15
03701   * @retval State of bit (1 or 0).
03702   */
03703 __STATIC_INLINE uint32_t LL_MDMA_IsActiveFlag_TELD(MDMA_TypeDef *MDMAx, uint32_t Channel)
03704 {
03705   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03706 
03707   return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CESR, MDMA_CESR_TELD) == (MDMA_CESR_TELD)) ? 1UL : 0UL);
03708 }
03709 
03710 /**
03711   * @brief Clear MDMA Channel x Transfer Error interrupt flag.
03712   * @rmtoll CIFCR  CTEIF    LL_MDMA_ClearFlag_TE
03713   * @param  MDMAx MDMAx Instance
03714   * @param  Channel This parameter can be one of the following values:
03715   *         @arg @ref LL_MDMA_CHANNEL_0
03716   *         @arg @ref LL_MDMA_CHANNEL_1
03717   *         @arg @ref LL_MDMA_CHANNEL_2
03718   *         @arg @ref LL_MDMA_CHANNEL_3
03719   *         @arg @ref LL_MDMA_CHANNEL_4
03720   *         @arg @ref LL_MDMA_CHANNEL_5
03721   *         @arg @ref LL_MDMA_CHANNEL_6
03722   *         @arg @ref LL_MDMA_CHANNEL_7
03723   *         @arg @ref LL_MDMA_CHANNEL_8
03724   *         @arg @ref LL_MDMA_CHANNEL_9
03725   *         @arg @ref LL_MDMA_CHANNEL_10
03726   *         @arg @ref LL_MDMA_CHANNEL_11
03727   *         @arg @ref LL_MDMA_CHANNEL_12
03728   *         @arg @ref LL_MDMA_CHANNEL_13
03729   *         @arg @ref LL_MDMA_CHANNEL_14
03730   *         @arg @ref LL_MDMA_CHANNEL_15
03731   * @retval None
03732   */
03733 __STATIC_INLINE void LL_MDMA_ClearFlag_TE(MDMA_TypeDef *MDMAx, uint32_t Channel)
03734 {
03735   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03736 
03737   WRITE_REG(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CIFCR ,MDMA_CIFCR_CTEIF);
03738 }
03739 
03740 /**
03741   * @brief Clear MDMA Channel x Channel Transfer Complete interrupt flag.
03742   * @rmtoll CIFCR  CCTCIF    LL_MDMA_ClearFlag_CTC
03743   * @param  MDMAx MDMAx Instance
03744   * @param  Channel This parameter can be one of the following values:
03745   *         @arg @ref LL_MDMA_CHANNEL_0
03746   *         @arg @ref LL_MDMA_CHANNEL_1
03747   *         @arg @ref LL_MDMA_CHANNEL_2
03748   *         @arg @ref LL_MDMA_CHANNEL_3
03749   *         @arg @ref LL_MDMA_CHANNEL_4
03750   *         @arg @ref LL_MDMA_CHANNEL_5
03751   *         @arg @ref LL_MDMA_CHANNEL_6
03752   *         @arg @ref LL_MDMA_CHANNEL_7
03753   *         @arg @ref LL_MDMA_CHANNEL_8
03754   *         @arg @ref LL_MDMA_CHANNEL_9
03755   *         @arg @ref LL_MDMA_CHANNEL_10
03756   *         @arg @ref LL_MDMA_CHANNEL_11
03757   *         @arg @ref LL_MDMA_CHANNEL_12
03758   *         @arg @ref LL_MDMA_CHANNEL_13
03759   *         @arg @ref LL_MDMA_CHANNEL_14
03760   *         @arg @ref LL_MDMA_CHANNEL_15
03761   * @retval None
03762   */
03763 __STATIC_INLINE void LL_MDMA_ClearFlag_CTC(MDMA_TypeDef *MDMAx, uint32_t Channel)
03764 {
03765   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03766 
03767   WRITE_REG(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CIFCR ,MDMA_CIFCR_CCTCIF);
03768 }
03769 
03770 /**
03771   * @brief Clear MDMA Channel x Block Repeat Transfer complete interrupt flag.
03772   * @rmtoll CIFCR  CBRTIF    LL_MDMA_ClearFlag_BRT
03773   * @param  MDMAx MDMAx Instance
03774   * @param  Channel This parameter can be one of the following values:
03775   *         @arg @ref LL_MDMA_CHANNEL_0
03776   *         @arg @ref LL_MDMA_CHANNEL_1
03777   *         @arg @ref LL_MDMA_CHANNEL_2
03778   *         @arg @ref LL_MDMA_CHANNEL_3
03779   *         @arg @ref LL_MDMA_CHANNEL_4
03780   *         @arg @ref LL_MDMA_CHANNEL_5
03781   *         @arg @ref LL_MDMA_CHANNEL_6
03782   *         @arg @ref LL_MDMA_CHANNEL_7
03783   *         @arg @ref LL_MDMA_CHANNEL_8
03784   *         @arg @ref LL_MDMA_CHANNEL_9
03785   *         @arg @ref LL_MDMA_CHANNEL_10
03786   *         @arg @ref LL_MDMA_CHANNEL_11
03787   *         @arg @ref LL_MDMA_CHANNEL_12
03788   *         @arg @ref LL_MDMA_CHANNEL_13
03789   *         @arg @ref LL_MDMA_CHANNEL_14
03790   *         @arg @ref LL_MDMA_CHANNEL_15
03791   * @retval None
03792   */
03793 __STATIC_INLINE void LL_MDMA_ClearFlag_BRT(MDMA_TypeDef *MDMAx, uint32_t Channel)
03794 {
03795   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03796 
03797   WRITE_REG(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CIFCR ,MDMA_CIFCR_CBRTIF);
03798 }
03799 
03800 /**
03801   * @brief Clear MDMA Channel x Block Transfer complete interrupt flag.
03802   * @rmtoll CIFCR  CBTIF    LL_MDMA_ClearFlag_BT
03803   * @param  MDMAx MDMAx Instance
03804   * @param  Channel This parameter can be one of the following values:
03805   *         @arg @ref LL_MDMA_CHANNEL_0
03806   *         @arg @ref LL_MDMA_CHANNEL_1
03807   *         @arg @ref LL_MDMA_CHANNEL_2
03808   *         @arg @ref LL_MDMA_CHANNEL_3
03809   *         @arg @ref LL_MDMA_CHANNEL_4
03810   *         @arg @ref LL_MDMA_CHANNEL_5
03811   *         @arg @ref LL_MDMA_CHANNEL_6
03812   *         @arg @ref LL_MDMA_CHANNEL_7
03813   *         @arg @ref LL_MDMA_CHANNEL_8
03814   *         @arg @ref LL_MDMA_CHANNEL_9
03815   *         @arg @ref LL_MDMA_CHANNEL_10
03816   *         @arg @ref LL_MDMA_CHANNEL_11
03817   *         @arg @ref LL_MDMA_CHANNEL_12
03818   *         @arg @ref LL_MDMA_CHANNEL_13
03819   *         @arg @ref LL_MDMA_CHANNEL_14
03820   *         @arg @ref LL_MDMA_CHANNEL_15
03821   * @retval None
03822   */
03823 __STATIC_INLINE void LL_MDMA_ClearFlag_BT(MDMA_TypeDef *MDMAx, uint32_t Channel)
03824 {
03825   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03826 
03827   WRITE_REG(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CIFCR ,MDMA_CIFCR_CBTIF);
03828 }
03829 
03830 /**
03831   * @brief Clear MDMA Channel x buffer transfer Complete Interrupt Flag.
03832   * @rmtoll CIFCR  CLTCIF    LL_MDMA_ClearFlag_TC
03833   * @param  MDMAx MDMAx Instance
03834   * @param  Channel This parameter can be one of the following values:
03835   *         @arg @ref LL_MDMA_CHANNEL_0
03836   *         @arg @ref LL_MDMA_CHANNEL_1
03837   *         @arg @ref LL_MDMA_CHANNEL_2
03838   *         @arg @ref LL_MDMA_CHANNEL_3
03839   *         @arg @ref LL_MDMA_CHANNEL_4
03840   *         @arg @ref LL_MDMA_CHANNEL_5
03841   *         @arg @ref LL_MDMA_CHANNEL_6
03842   *         @arg @ref LL_MDMA_CHANNEL_7
03843   *         @arg @ref LL_MDMA_CHANNEL_8
03844   *         @arg @ref LL_MDMA_CHANNEL_9
03845   *         @arg @ref LL_MDMA_CHANNEL_10
03846   *         @arg @ref LL_MDMA_CHANNEL_11
03847   *         @arg @ref LL_MDMA_CHANNEL_12
03848   *         @arg @ref LL_MDMA_CHANNEL_13
03849   *         @arg @ref LL_MDMA_CHANNEL_14
03850   *         @arg @ref LL_MDMA_CHANNEL_15
03851   * @retval None
03852   */
03853 __STATIC_INLINE void LL_MDMA_ClearFlag_TC(MDMA_TypeDef *MDMAx, uint32_t Channel)
03854 {
03855   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03856 
03857   WRITE_REG(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CIFCR ,MDMA_CIFCR_CLTCIF);
03858 }
03859 
03860 /**
03861   * @}
03862   */
03863 
03864 /** @defgroup MDMA_LL_EF_IT_Management IT_Management
03865   * @{
03866   */
03867 
03868 /**
03869   * @brief Enable MDMA Channel x Transfer Error interrupt.
03870   * @rmtoll CCR  TEIE    LL_MDMA_EnableIT_TE
03871   * @param  MDMAx MDMAx Instance
03872   * @param  Channel This parameter can be one of the following values:
03873   *         @arg @ref LL_MDMA_CHANNEL_0
03874   *         @arg @ref LL_MDMA_CHANNEL_1
03875   *         @arg @ref LL_MDMA_CHANNEL_2
03876   *         @arg @ref LL_MDMA_CHANNEL_3
03877   *         @arg @ref LL_MDMA_CHANNEL_4
03878   *         @arg @ref LL_MDMA_CHANNEL_5
03879   *         @arg @ref LL_MDMA_CHANNEL_6
03880   *         @arg @ref LL_MDMA_CHANNEL_7
03881   *         @arg @ref LL_MDMA_CHANNEL_8
03882   *         @arg @ref LL_MDMA_CHANNEL_9
03883   *         @arg @ref LL_MDMA_CHANNEL_10
03884   *         @arg @ref LL_MDMA_CHANNEL_11
03885   *         @arg @ref LL_MDMA_CHANNEL_12
03886   *         @arg @ref LL_MDMA_CHANNEL_13
03887   *         @arg @ref LL_MDMA_CHANNEL_14
03888   *         @arg @ref LL_MDMA_CHANNEL_15
03889   * @retval None
03890   */
03891 __STATIC_INLINE void LL_MDMA_EnableIT_TE(MDMA_TypeDef *MDMAx, uint32_t Channel)
03892 {
03893   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03894 
03895   SET_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_TEIE);
03896 }
03897 
03898 /**
03899   * @brief Enable MDMA Channel x Channel Transfer Complete interrupt.
03900   * @rmtoll CCR  CTCIE    LL_MDMA_EnableIT_CTC
03901   * @param  MDMAx MDMAx Instance
03902   * @param  Channel This parameter can be one of the following values:
03903   *         @arg @ref LL_MDMA_CHANNEL_0
03904   *         @arg @ref LL_MDMA_CHANNEL_1
03905   *         @arg @ref LL_MDMA_CHANNEL_2
03906   *         @arg @ref LL_MDMA_CHANNEL_3
03907   *         @arg @ref LL_MDMA_CHANNEL_4
03908   *         @arg @ref LL_MDMA_CHANNEL_5
03909   *         @arg @ref LL_MDMA_CHANNEL_6
03910   *         @arg @ref LL_MDMA_CHANNEL_7
03911   *         @arg @ref LL_MDMA_CHANNEL_8
03912   *         @arg @ref LL_MDMA_CHANNEL_9
03913   *         @arg @ref LL_MDMA_CHANNEL_10
03914   *         @arg @ref LL_MDMA_CHANNEL_11
03915   *         @arg @ref LL_MDMA_CHANNEL_12
03916   *         @arg @ref LL_MDMA_CHANNEL_13
03917   *         @arg @ref LL_MDMA_CHANNEL_14
03918   *         @arg @ref LL_MDMA_CHANNEL_15
03919   * @retval None
03920   */
03921 __STATIC_INLINE void LL_MDMA_EnableIT_CTC(MDMA_TypeDef *MDMAx, uint32_t Channel)
03922 {
03923   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03924 
03925   SET_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_CTCIE);
03926 }
03927 
03928 /**
03929   * @brief Enable MDMA Channel x Block Repeat Transfer interrupt.
03930   * @rmtoll CCR  BRTIE    LL_MDMA_EnableIT_BRT
03931   * @param  MDMAx MDMAx Instance
03932   * @param  Channel This parameter can be one of the following values:
03933   *         @arg @ref LL_MDMA_CHANNEL_0
03934   *         @arg @ref LL_MDMA_CHANNEL_1
03935   *         @arg @ref LL_MDMA_CHANNEL_2
03936   *         @arg @ref LL_MDMA_CHANNEL_3
03937   *         @arg @ref LL_MDMA_CHANNEL_4
03938   *         @arg @ref LL_MDMA_CHANNEL_5
03939   *         @arg @ref LL_MDMA_CHANNEL_6
03940   *         @arg @ref LL_MDMA_CHANNEL_7
03941   *         @arg @ref LL_MDMA_CHANNEL_8
03942   *         @arg @ref LL_MDMA_CHANNEL_9
03943   *         @arg @ref LL_MDMA_CHANNEL_10
03944   *         @arg @ref LL_MDMA_CHANNEL_11
03945   *         @arg @ref LL_MDMA_CHANNEL_12
03946   *         @arg @ref LL_MDMA_CHANNEL_13
03947   *         @arg @ref LL_MDMA_CHANNEL_14
03948   *         @arg @ref LL_MDMA_CHANNEL_15
03949   * @retval None
03950   */
03951 __STATIC_INLINE void LL_MDMA_EnableIT_BRT(MDMA_TypeDef *MDMAx, uint32_t Channel)
03952 {
03953   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03954 
03955   SET_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_BRTIE);
03956 }
03957 
03958 /**
03959   * @brief Enable MDMA Channel x Block Transfer interrupt.
03960   * @rmtoll CCR  BTIE    LL_MDMA_EnableIT_BT
03961   * @param  MDMAx MDMAx Instance
03962   * @param  Channel This parameter can be one of the following values:
03963   *         @arg @ref LL_MDMA_CHANNEL_0
03964   *         @arg @ref LL_MDMA_CHANNEL_1
03965   *         @arg @ref LL_MDMA_CHANNEL_2
03966   *         @arg @ref LL_MDMA_CHANNEL_3
03967   *         @arg @ref LL_MDMA_CHANNEL_4
03968   *         @arg @ref LL_MDMA_CHANNEL_5
03969   *         @arg @ref LL_MDMA_CHANNEL_6
03970   *         @arg @ref LL_MDMA_CHANNEL_7
03971   *         @arg @ref LL_MDMA_CHANNEL_8
03972   *         @arg @ref LL_MDMA_CHANNEL_9
03973   *         @arg @ref LL_MDMA_CHANNEL_10
03974   *         @arg @ref LL_MDMA_CHANNEL_11
03975   *         @arg @ref LL_MDMA_CHANNEL_12
03976   *         @arg @ref LL_MDMA_CHANNEL_13
03977   *         @arg @ref LL_MDMA_CHANNEL_14
03978   *         @arg @ref LL_MDMA_CHANNEL_15
03979   * @retval None
03980   */
03981 __STATIC_INLINE void LL_MDMA_EnableIT_BT(MDMA_TypeDef *MDMAx, uint32_t Channel)
03982 {
03983   uint32_t mdma_base_addr = (uint32_t)MDMAx;
03984 
03985   SET_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_BTIE);
03986 }
03987 
03988 /**
03989   * @brief Enable MDMA Channel x buffer transfer complete interrupt.
03990   * @rmtoll CCR  TCIE    LL_MDMA_EnableIT_TC
03991   * @param  MDMAx MDMAx Instance
03992   * @param  Channel This parameter can be one of the following values:
03993   *         @arg @ref LL_MDMA_CHANNEL_0
03994   *         @arg @ref LL_MDMA_CHANNEL_1
03995   *         @arg @ref LL_MDMA_CHANNEL_2
03996   *         @arg @ref LL_MDMA_CHANNEL_3
03997   *         @arg @ref LL_MDMA_CHANNEL_4
03998   *         @arg @ref LL_MDMA_CHANNEL_5
03999   *         @arg @ref LL_MDMA_CHANNEL_6
04000   *         @arg @ref LL_MDMA_CHANNEL_7
04001   *         @arg @ref LL_MDMA_CHANNEL_8
04002   *         @arg @ref LL_MDMA_CHANNEL_9
04003   *         @arg @ref LL_MDMA_CHANNEL_10
04004   *         @arg @ref LL_MDMA_CHANNEL_11
04005   *         @arg @ref LL_MDMA_CHANNEL_12
04006   *         @arg @ref LL_MDMA_CHANNEL_13
04007   *         @arg @ref LL_MDMA_CHANNEL_14
04008   *         @arg @ref LL_MDMA_CHANNEL_15
04009   * @retval None
04010   */
04011 __STATIC_INLINE void LL_MDMA_EnableIT_TC(MDMA_TypeDef *MDMAx, uint32_t Channel)
04012 {
04013   uint32_t mdma_base_addr = (uint32_t)MDMAx;
04014 
04015   SET_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_TCIE);
04016 }
04017 
04018 /**
04019   * @brief Disable MDMA Channel x Transfer Error interrupt.
04020   * @rmtoll CCR  TEIE    LL_MDMA_DisableIT_TE
04021   * @param  MDMAx MDMAx Instance
04022   * @param  Channel This parameter can be one of the following values:
04023   *         @arg @ref LL_MDMA_CHANNEL_0
04024   *         @arg @ref LL_MDMA_CHANNEL_1
04025   *         @arg @ref LL_MDMA_CHANNEL_2
04026   *         @arg @ref LL_MDMA_CHANNEL_3
04027   *         @arg @ref LL_MDMA_CHANNEL_4
04028   *         @arg @ref LL_MDMA_CHANNEL_5
04029   *         @arg @ref LL_MDMA_CHANNEL_6
04030   *         @arg @ref LL_MDMA_CHANNEL_7
04031   *         @arg @ref LL_MDMA_CHANNEL_8
04032   *         @arg @ref LL_MDMA_CHANNEL_9
04033   *         @arg @ref LL_MDMA_CHANNEL_10
04034   *         @arg @ref LL_MDMA_CHANNEL_11
04035   *         @arg @ref LL_MDMA_CHANNEL_12
04036   *         @arg @ref LL_MDMA_CHANNEL_13
04037   *         @arg @ref LL_MDMA_CHANNEL_14
04038   *         @arg @ref LL_MDMA_CHANNEL_15
04039   * @retval None
04040   */
04041 __STATIC_INLINE void LL_MDMA_DisableIT_TE(MDMA_TypeDef *MDMAx, uint32_t Channel)
04042 {
04043   uint32_t mdma_base_addr = (uint32_t)MDMAx;
04044 
04045   CLEAR_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_TEIE);
04046 }
04047 
04048 /**
04049   * @brief Disable MDMA Channel x Channel Transfer Complete interrupt.
04050   * @rmtoll CCR  CTCIE    LL_MDMA_DisableIT_CTC
04051   * @param  MDMAx MDMAx Instance
04052   * @param  Channel This parameter can be one of the following values:
04053   *         @arg @ref LL_MDMA_CHANNEL_0
04054   *         @arg @ref LL_MDMA_CHANNEL_1
04055   *         @arg @ref LL_MDMA_CHANNEL_2
04056   *         @arg @ref LL_MDMA_CHANNEL_3
04057   *         @arg @ref LL_MDMA_CHANNEL_4
04058   *         @arg @ref LL_MDMA_CHANNEL_5
04059   *         @arg @ref LL_MDMA_CHANNEL_6
04060   *         @arg @ref LL_MDMA_CHANNEL_7
04061   *         @arg @ref LL_MDMA_CHANNEL_8
04062   *         @arg @ref LL_MDMA_CHANNEL_9
04063   *         @arg @ref LL_MDMA_CHANNEL_10
04064   *         @arg @ref LL_MDMA_CHANNEL_11
04065   *         @arg @ref LL_MDMA_CHANNEL_12
04066   *         @arg @ref LL_MDMA_CHANNEL_13
04067   *         @arg @ref LL_MDMA_CHANNEL_14
04068   *         @arg @ref LL_MDMA_CHANNEL_15
04069   * @retval None
04070   */
04071 __STATIC_INLINE void LL_MDMA_DisableIT_CTC(MDMA_TypeDef *MDMAx, uint32_t Channel)
04072 {
04073   uint32_t mdma_base_addr = (uint32_t)MDMAx;
04074 
04075   CLEAR_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_CTCIE);
04076 }
04077 
04078 /**
04079   * @brief Disable MDMA Channel x Block Repeat Transfer interrupt.
04080   * @rmtoll CCR  BRTIE    LL_MDMA_DisableIT_BRT
04081   * @param  MDMAx MDMAx Instance
04082   * @param  Channel This parameter can be one of the following values:
04083   *         @arg @ref LL_MDMA_CHANNEL_0
04084   *         @arg @ref LL_MDMA_CHANNEL_1
04085   *         @arg @ref LL_MDMA_CHANNEL_2
04086   *         @arg @ref LL_MDMA_CHANNEL_3
04087   *         @arg @ref LL_MDMA_CHANNEL_4
04088   *         @arg @ref LL_MDMA_CHANNEL_5
04089   *         @arg @ref LL_MDMA_CHANNEL_6
04090   *         @arg @ref LL_MDMA_CHANNEL_7
04091   *         @arg @ref LL_MDMA_CHANNEL_8
04092   *         @arg @ref LL_MDMA_CHANNEL_9
04093   *         @arg @ref LL_MDMA_CHANNEL_10
04094   *         @arg @ref LL_MDMA_CHANNEL_11
04095   *         @arg @ref LL_MDMA_CHANNEL_12
04096   *         @arg @ref LL_MDMA_CHANNEL_13
04097   *         @arg @ref LL_MDMA_CHANNEL_14
04098   *         @arg @ref LL_MDMA_CHANNEL_15
04099   * @retval None
04100   */
04101 __STATIC_INLINE void LL_MDMA_DisableIT_BRT(MDMA_TypeDef *MDMAx, uint32_t Channel)
04102 {
04103   uint32_t mdma_base_addr = (uint32_t)MDMAx;
04104 
04105   CLEAR_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_BRTIE);
04106 }
04107 
04108 /**
04109   * @brief Disable MDMA Channel x Block Transfer interrupt.
04110   * @rmtoll CCR  BTIE    LL_MDMA_DisableIT_BT
04111   * @param  MDMAx MDMAx Instance
04112   * @param  Channel This parameter can be one of the following values:
04113   *         @arg @ref LL_MDMA_CHANNEL_0
04114   *         @arg @ref LL_MDMA_CHANNEL_1
04115   *         @arg @ref LL_MDMA_CHANNEL_2
04116   *         @arg @ref LL_MDMA_CHANNEL_3
04117   *         @arg @ref LL_MDMA_CHANNEL_4
04118   *         @arg @ref LL_MDMA_CHANNEL_5
04119   *         @arg @ref LL_MDMA_CHANNEL_6
04120   *         @arg @ref LL_MDMA_CHANNEL_7
04121   *         @arg @ref LL_MDMA_CHANNEL_8
04122   *         @arg @ref LL_MDMA_CHANNEL_9
04123   *         @arg @ref LL_MDMA_CHANNEL_10
04124   *         @arg @ref LL_MDMA_CHANNEL_11
04125   *         @arg @ref LL_MDMA_CHANNEL_12
04126   *         @arg @ref LL_MDMA_CHANNEL_13
04127   *         @arg @ref LL_MDMA_CHANNEL_14
04128   *         @arg @ref LL_MDMA_CHANNEL_15
04129   * @retval None
04130   */
04131 __STATIC_INLINE void LL_MDMA_DisableIT_BT(MDMA_TypeDef *MDMAx, uint32_t Channel)
04132 {
04133   uint32_t mdma_base_addr = (uint32_t)MDMAx;
04134 
04135   CLEAR_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_BTIE);
04136 }
04137 
04138 /**
04139   * @brief Disable MDMA Channel x buffer transfer complete interrupt.
04140   * @rmtoll CCR  TCIE    LL_MDMA_DisableIT_TC
04141   * @param  MDMAx MDMAx Instance
04142   * @param  Channel This parameter can be one of the following values:
04143   *         @arg @ref LL_MDMA_CHANNEL_0
04144   *         @arg @ref LL_MDMA_CHANNEL_1
04145   *         @arg @ref LL_MDMA_CHANNEL_2
04146   *         @arg @ref LL_MDMA_CHANNEL_3
04147   *         @arg @ref LL_MDMA_CHANNEL_4
04148   *         @arg @ref LL_MDMA_CHANNEL_5
04149   *         @arg @ref LL_MDMA_CHANNEL_6
04150   *         @arg @ref LL_MDMA_CHANNEL_7
04151   *         @arg @ref LL_MDMA_CHANNEL_8
04152   *         @arg @ref LL_MDMA_CHANNEL_9
04153   *         @arg @ref LL_MDMA_CHANNEL_10
04154   *         @arg @ref LL_MDMA_CHANNEL_11
04155   *         @arg @ref LL_MDMA_CHANNEL_12
04156   *         @arg @ref LL_MDMA_CHANNEL_13
04157   *         @arg @ref LL_MDMA_CHANNEL_14
04158   *         @arg @ref LL_MDMA_CHANNEL_15
04159   * @retval None
04160   */
04161 __STATIC_INLINE void LL_MDMA_DisableIT_TC(MDMA_TypeDef *MDMAx, uint32_t Channel)
04162 {
04163   uint32_t mdma_base_addr = (uint32_t)MDMAx;
04164 
04165   CLEAR_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_TCIE);
04166 }
04167 
04168 /**
04169   * @brief Check if MDMA Channel x Transfer Error interrupt is enabled.
04170   * @rmtoll CCR  TEIE    LL_MDMA_IsEnabledIT_TE
04171   * @param  MDMAx MDMAx Instance
04172   * @param  Channel This parameter can be one of the following values:
04173   *         @arg @ref LL_MDMA_CHANNEL_0
04174   *         @arg @ref LL_MDMA_CHANNEL_1
04175   *         @arg @ref LL_MDMA_CHANNEL_2
04176   *         @arg @ref LL_MDMA_CHANNEL_3
04177   *         @arg @ref LL_MDMA_CHANNEL_4
04178   *         @arg @ref LL_MDMA_CHANNEL_5
04179   *         @arg @ref LL_MDMA_CHANNEL_6
04180   *         @arg @ref LL_MDMA_CHANNEL_7
04181   *         @arg @ref LL_MDMA_CHANNEL_8
04182   *         @arg @ref LL_MDMA_CHANNEL_9
04183   *         @arg @ref LL_MDMA_CHANNEL_10
04184   *         @arg @ref LL_MDMA_CHANNEL_11
04185   *         @arg @ref LL_MDMA_CHANNEL_12
04186   *         @arg @ref LL_MDMA_CHANNEL_13
04187   *         @arg @ref LL_MDMA_CHANNEL_14
04188   *         @arg @ref LL_MDMA_CHANNEL_15
04189   * @retval State of bit (1 or 0).
04190   */
04191 __STATIC_INLINE uint32_t LL_MDMA_IsEnabledIT_TE(MDMA_TypeDef *MDMAx, uint32_t Channel)
04192 {
04193   uint32_t mdma_base_addr = (uint32_t)MDMAx;
04194 
04195   return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_TEIE) == MDMA_CCR_TEIE) ? 1UL : 0UL);
04196 }
04197 
04198 /**
04199   * @brief Check if MDMA Channel x Channel Transfer Complete interrupt is enabled.
04200   * @rmtoll CCR  CTCIE    LL_MDMA_IsEnabledIT_CTC
04201   * @param  MDMAx MDMAx Instance
04202   * @param  Channel This parameter can be one of the following values:
04203   *         @arg @ref LL_MDMA_CHANNEL_0
04204   *         @arg @ref LL_MDMA_CHANNEL_1
04205   *         @arg @ref LL_MDMA_CHANNEL_2
04206   *         @arg @ref LL_MDMA_CHANNEL_3
04207   *         @arg @ref LL_MDMA_CHANNEL_4
04208   *         @arg @ref LL_MDMA_CHANNEL_5
04209   *         @arg @ref LL_MDMA_CHANNEL_6
04210   *         @arg @ref LL_MDMA_CHANNEL_7
04211   *         @arg @ref LL_MDMA_CHANNEL_8
04212   *         @arg @ref LL_MDMA_CHANNEL_9
04213   *         @arg @ref LL_MDMA_CHANNEL_10
04214   *         @arg @ref LL_MDMA_CHANNEL_11
04215   *         @arg @ref LL_MDMA_CHANNEL_12
04216   *         @arg @ref LL_MDMA_CHANNEL_13
04217   *         @arg @ref LL_MDMA_CHANNEL_14
04218   *         @arg @ref LL_MDMA_CHANNEL_15
04219   * @retval State of bit (1 or 0).
04220   */
04221 __STATIC_INLINE uint32_t LL_MDMA_IsEnabledIT_CTC(MDMA_TypeDef *MDMAx, uint32_t Channel)
04222 {
04223   uint32_t mdma_base_addr = (uint32_t)MDMAx;
04224 
04225   return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_CTCIE) == MDMA_CCR_CTCIE) ? 1UL : 0UL);
04226 }
04227 
04228 /**
04229   * @brief Check if MDMA Channel x Block Repeat Transfer complete interrupt is enabled.
04230   * @rmtoll CCR  BRTIE    LL_MDMA_IsEnabledIT_BRT
04231   * @param  MDMAx MDMAx Instance
04232   * @param  Channel This parameter can be one of the following values:
04233   *         @arg @ref LL_MDMA_CHANNEL_0
04234   *         @arg @ref LL_MDMA_CHANNEL_1
04235   *         @arg @ref LL_MDMA_CHANNEL_2
04236   *         @arg @ref LL_MDMA_CHANNEL_3
04237   *         @arg @ref LL_MDMA_CHANNEL_4
04238   *         @arg @ref LL_MDMA_CHANNEL_5
04239   *         @arg @ref LL_MDMA_CHANNEL_6
04240   *         @arg @ref LL_MDMA_CHANNEL_7
04241   *         @arg @ref LL_MDMA_CHANNEL_8
04242   *         @arg @ref LL_MDMA_CHANNEL_9
04243   *         @arg @ref LL_MDMA_CHANNEL_10
04244   *         @arg @ref LL_MDMA_CHANNEL_11
04245   *         @arg @ref LL_MDMA_CHANNEL_12
04246   *         @arg @ref LL_MDMA_CHANNEL_13
04247   *         @arg @ref LL_MDMA_CHANNEL_14
04248   *         @arg @ref LL_MDMA_CHANNEL_15
04249   * @retval State of bit (1 or 0).
04250   */
04251 __STATIC_INLINE uint32_t LL_MDMA_IsEnabledIT_BRT(MDMA_TypeDef *MDMAx, uint32_t Channel)
04252 {
04253   uint32_t mdma_base_addr = (uint32_t)MDMAx;
04254 
04255   return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_BRTIE) == MDMA_CCR_BRTIE) ? 1UL : 0UL);
04256 }
04257 
04258 /**
04259   * @brief Check if MDMA Channel x Block Transfer interrupt is enabled.
04260   * @rmtoll CCR  BTIE    LL_MDMA_IsEnabledIT_BT
04261   * @param  MDMAx MDMAx Instance
04262   * @param  Channel This parameter can be one of the following values:
04263   *         @arg @ref LL_MDMA_CHANNEL_0
04264   *         @arg @ref LL_MDMA_CHANNEL_1
04265   *         @arg @ref LL_MDMA_CHANNEL_2
04266   *         @arg @ref LL_MDMA_CHANNEL_3
04267   *         @arg @ref LL_MDMA_CHANNEL_4
04268   *         @arg @ref LL_MDMA_CHANNEL_5
04269   *         @arg @ref LL_MDMA_CHANNEL_6
04270   *         @arg @ref LL_MDMA_CHANNEL_7
04271   *         @arg @ref LL_MDMA_CHANNEL_8
04272   *         @arg @ref LL_MDMA_CHANNEL_9
04273   *         @arg @ref LL_MDMA_CHANNEL_10
04274   *         @arg @ref LL_MDMA_CHANNEL_11
04275   *         @arg @ref LL_MDMA_CHANNEL_12
04276   *         @arg @ref LL_MDMA_CHANNEL_13
04277   *         @arg @ref LL_MDMA_CHANNEL_14
04278   *         @arg @ref LL_MDMA_CHANNEL_15
04279   * @retval State of bit (1 or 0).
04280   */
04281 __STATIC_INLINE uint32_t LL_MDMA_IsEnabledIT_BT(MDMA_TypeDef *MDMAx, uint32_t Channel)
04282 {
04283   uint32_t mdma_base_addr = (uint32_t)MDMAx;
04284 
04285   return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_BTIE) == MDMA_CCR_BTIE) ? 1UL : 0UL);
04286 }
04287 
04288 /**
04289   * @brief Check if MDMA Channel x buffer transfer complete interrupt is enabled.
04290   * @rmtoll CCR  TCIE    LL_MDMA_IsEnabledIT_TC
04291   * @param  MDMAx MDMAx Instance
04292   * @param  Channel This parameter can be one of the following values:
04293   *         @arg @ref LL_MDMA_CHANNEL_0
04294   *         @arg @ref LL_MDMA_CHANNEL_1
04295   *         @arg @ref LL_MDMA_CHANNEL_2
04296   *         @arg @ref LL_MDMA_CHANNEL_3
04297   *         @arg @ref LL_MDMA_CHANNEL_4
04298   *         @arg @ref LL_MDMA_CHANNEL_5
04299   *         @arg @ref LL_MDMA_CHANNEL_6
04300   *         @arg @ref LL_MDMA_CHANNEL_7
04301   *         @arg @ref LL_MDMA_CHANNEL_8
04302   *         @arg @ref LL_MDMA_CHANNEL_9
04303   *         @arg @ref LL_MDMA_CHANNEL_10
04304   *         @arg @ref LL_MDMA_CHANNEL_11
04305   *         @arg @ref LL_MDMA_CHANNEL_12
04306   *         @arg @ref LL_MDMA_CHANNEL_13
04307   *         @arg @ref LL_MDMA_CHANNEL_14
04308   *         @arg @ref LL_MDMA_CHANNEL_15
04309   * @retval State of bit (1 or 0).
04310   */
04311 __STATIC_INLINE uint32_t LL_MDMA_IsEnabledIT_TC(MDMA_TypeDef *MDMAx, uint32_t Channel)
04312 {
04313   uint32_t mdma_base_addr = (uint32_t)MDMAx;
04314 
04315   return ((READ_BIT(((MDMA_Channel_TypeDef*)(mdma_base_addr + LL_MDMA_CH_OFFSET_TAB[Channel]))->CCR ,MDMA_CCR_TCIE) == MDMA_CCR_TCIE) ? 1UL : 0UL);
04316 }
04317 
04318 /**
04319   * @}
04320   */
04321 
04322 #if defined(USE_FULL_LL_DRIVER)
04323 /** @defgroup MDMA_LL_EF_Init Initialization and de-initialization functions
04324   * @{
04325   */
04326 
04327 uint32_t LL_MDMA_Init(MDMA_TypeDef *MDMAx, uint32_t Channel, LL_MDMA_InitTypeDef *MDMA_InitStruct);
04328 uint32_t LL_MDMA_DeInit(MDMA_TypeDef *MDMAx, uint32_t Channel);
04329 void LL_MDMA_StructInit(LL_MDMA_InitTypeDef *MDMA_InitStruct);
04330 void LL_MDMA_CreateLinkNode(LL_MDMA_InitTypeDef *MDMA_InitStruct, LL_MDMA_LinkNodeTypeDef *pNode);
04331 void LL_MDMA_ConnectLinkNode(LL_MDMA_LinkNodeTypeDef *pPrevLinkNode, LL_MDMA_LinkNodeTypeDef *pNewLinkNode);
04332 void LL_MDMA_DisconnectNextLinkNode(LL_MDMA_LinkNodeTypeDef *pLinkNode);
04333 
04334 /**
04335   * @}
04336   */
04337 #endif /* USE_FULL_LL_DRIVER */
04338 
04339 /**
04340   * @}
04341   */
04342 
04343 /**
04344   * @}
04345   */
04346 
04347 #endif /* MDMA */
04348 
04349 /**
04350   * @}
04351   */
04352 
04353 #ifdef __cplusplus
04354 }
04355 #endif
04356 
04357 #endif /* STM32H7xx_LL_MDMA_H */
04358