stm32h7xx_ll_dmamux.h 115 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436
  1. /**
  2. ******************************************************************************
  3. * @file stm32h7xx_ll_dmamux.h
  4. * @author MCD Application Team
  5. * @brief Header file of DMAMUX LL module.
  6. ******************************************************************************
  7. * @attention
  8. *
  9. * Copyright (c) 2017 STMicroelectronics.
  10. * All rights reserved.
  11. *
  12. * This software is licensed under terms that can be found in the LICENSE file
  13. * in the root directory of this software component.
  14. * If no LICENSE file comes with this software, it is provided AS-IS.
  15. *
  16. ******************************************************************************
  17. */
  18. /* Define to prevent recursive inclusion -------------------------------------*/
  19. #ifndef STM32H7xx_LL_DMAMUX_H
  20. #define STM32H7xx_LL_DMAMUX_H
  21. #ifdef __cplusplus
  22. extern "C" {
  23. #endif
  24. /* Includes ------------------------------------------------------------------*/
  25. #include "stm32h7xx.h"
  26. /** @addtogroup STM32H7xx_LL_Driver
  27. * @{
  28. */
  29. #if defined (DMAMUX1) || defined (DMAMUX2)
  30. /** @defgroup DMAMUX_LL DMAMUX
  31. * @{
  32. */
  33. /* Private types -------------------------------------------------------------*/
  34. /* Private variables ---------------------------------------------------------*/
  35. /* Private constants ---------------------------------------------------------*/
  36. /** @defgroup DMAMUX_LL_Private_Constants DMAMUX Private Constants
  37. * @{
  38. */
  39. /* Define used to get DMAMUX CCR register size */
  40. #define DMAMUX_CCR_SIZE 0x00000004U
  41. /* Define used to get DMAMUX RGCR register size */
  42. #define DMAMUX_RGCR_SIZE 0x00000004U
  43. /* Define used to get DMAMUX RequestGenerator offset */
  44. #define DMAMUX_REQ_GEN_OFFSET (DMAMUX1_RequestGenerator0_BASE - DMAMUX1_BASE)
  45. /* Define used to get DMAMUX Channel Status offset */
  46. #define DMAMUX_CH_STATUS_OFFSET (DMAMUX1_ChannelStatus_BASE - DMAMUX1_BASE)
  47. /* Define used to get DMAMUX RequestGenerator status offset */
  48. #define DMAMUX_REQ_GEN_STATUS_OFFSET (DMAMUX1_RequestGenStatus_BASE - DMAMUX1_BASE)
  49. /**
  50. * @}
  51. */
  52. /* Private macros ------------------------------------------------------------*/
  53. /* Exported types ------------------------------------------------------------*/
  54. /* Exported constants --------------------------------------------------------*/
  55. /** @defgroup DMAMUX_LL_Exported_Constants DMAMUX Exported Constants
  56. * @{
  57. */
  58. /** @defgroup DMAMUX_LL_EC_CLEAR_FLAG Clear Flags Defines
  59. * @brief Flags defines which can be used with LL_DMAMUX_WriteReg function
  60. * @{
  61. */
  62. #define LL_DMAMUX_CFR_CSOF0 DMAMUX_CFR_CSOF0 /*!< Synchronization Event Overrun Flag Channel 0 */
  63. #define LL_DMAMUX_CFR_CSOF1 DMAMUX_CFR_CSOF1 /*!< Synchronization Event Overrun Flag Channel 1 */
  64. #define LL_DMAMUX_CFR_CSOF2 DMAMUX_CFR_CSOF2 /*!< Synchronization Event Overrun Flag Channel 2 */
  65. #define LL_DMAMUX_CFR_CSOF3 DMAMUX_CFR_CSOF3 /*!< Synchronization Event Overrun Flag Channel 3 */
  66. #define LL_DMAMUX_CFR_CSOF4 DMAMUX_CFR_CSOF4 /*!< Synchronization Event Overrun Flag Channel 4 */
  67. #define LL_DMAMUX_CFR_CSOF5 DMAMUX_CFR_CSOF5 /*!< Synchronization Event Overrun Flag Channel 5 */
  68. #define LL_DMAMUX_CFR_CSOF6 DMAMUX_CFR_CSOF6 /*!< Synchronization Event Overrun Flag Channel 6 */
  69. #define LL_DMAMUX_CFR_CSOF7 DMAMUX_CFR_CSOF7 /*!< Synchronization Event Overrun Flag Channel 7 */
  70. #define LL_DMAMUX_CFR_CSOF8 DMAMUX_CFR_CSOF8 /*!< Synchronization Event Overrun Flag Channel 8 */
  71. #define LL_DMAMUX_CFR_CSOF9 DMAMUX_CFR_CSOF9 /*!< Synchronization Event Overrun Flag Channel 9 */
  72. #define LL_DMAMUX_CFR_CSOF10 DMAMUX_CFR_CSOF10 /*!< Synchronization Event Overrun Flag Channel 10 */
  73. #define LL_DMAMUX_CFR_CSOF11 DMAMUX_CFR_CSOF11 /*!< Synchronization Event Overrun Flag Channel 11 */
  74. #define LL_DMAMUX_CFR_CSOF12 DMAMUX_CFR_CSOF12 /*!< Synchronization Event Overrun Flag Channel 12 */
  75. #define LL_DMAMUX_CFR_CSOF13 DMAMUX_CFR_CSOF13 /*!< Synchronization Event Overrun Flag Channel 13 */
  76. #define LL_DMAMUX_CFR_CSOF14 DMAMUX_CFR_CSOF14 /*!< Synchronization Event Overrun Flag Channel 14 */
  77. #define LL_DMAMUX_CFR_CSOF15 DMAMUX_CFR_CSOF15 /*!< Synchronization Event Overrun Flag Channel 15 */
  78. #define LL_DMAMUX_RGCFR_RGCOF0 DMAMUX_RGCFR_COF0 /*!< Request Generator 0 Trigger Event Overrun Flag */
  79. #define LL_DMAMUX_RGCFR_RGCOF1 DMAMUX_RGCFR_COF1 /*!< Request Generator 1 Trigger Event Overrun Flag */
  80. #define LL_DMAMUX_RGCFR_RGCOF2 DMAMUX_RGCFR_COF2 /*!< Request Generator 2 Trigger Event Overrun Flag */
  81. #define LL_DMAMUX_RGCFR_RGCOF3 DMAMUX_RGCFR_COF3 /*!< Request Generator 3 Trigger Event Overrun Flag */
  82. #define LL_DMAMUX_RGCFR_RGCOF4 DMAMUX_RGCFR_COF4 /*!< Request Generator 4 Trigger Event Overrun Flag */
  83. #define LL_DMAMUX_RGCFR_RGCOF5 DMAMUX_RGCFR_COF5 /*!< Request Generator 5 Trigger Event Overrun Flag */
  84. #define LL_DMAMUX_RGCFR_RGCOF6 DMAMUX_RGCFR_COF6 /*!< Request Generator 6 Trigger Event Overrun Flag */
  85. #define LL_DMAMUX_RGCFR_RGCOF7 DMAMUX_RGCFR_COF7 /*!< Request Generator 7 Trigger Event Overrun Flag */
  86. /**
  87. * @}
  88. */
  89. /** @defgroup DMAMUX_LL_EC_GET_FLAG Get Flags Defines
  90. * @brief Flags defines which can be used with LL_DMAMUX_ReadReg function
  91. * @{
  92. */
  93. #define LL_DMAMUX_CSR_SOF0 DMAMUX_CSR_SOF0 /*!< Synchronization Event Overrun Flag Channel 0 */
  94. #define LL_DMAMUX_CSR_SOF1 DMAMUX_CSR_SOF1 /*!< Synchronization Event Overrun Flag Channel 1 */
  95. #define LL_DMAMUX_CSR_SOF2 DMAMUX_CSR_SOF2 /*!< Synchronization Event Overrun Flag Channel 2 */
  96. #define LL_DMAMUX_CSR_SOF3 DMAMUX_CSR_SOF3 /*!< Synchronization Event Overrun Flag Channel 3 */
  97. #define LL_DMAMUX_CSR_SOF4 DMAMUX_CSR_SOF4 /*!< Synchronization Event Overrun Flag Channel 4 */
  98. #define LL_DMAMUX_CSR_SOF5 DMAMUX_CSR_SOF5 /*!< Synchronization Event Overrun Flag Channel 5 */
  99. #define LL_DMAMUX_CSR_SOF6 DMAMUX_CSR_SOF6 /*!< Synchronization Event Overrun Flag Channel 6 */
  100. #define LL_DMAMUX_CSR_SOF7 DMAMUX_CSR_SOF7 /*!< Synchronization Event Overrun Flag Channel 7 */
  101. #define LL_DMAMUX_CSR_SOF8 DMAMUX_CSR_SOF8 /*!< Synchronization Event Overrun Flag Channel 8 */
  102. #define LL_DMAMUX_CSR_SOF9 DMAMUX_CSR_SOF9 /*!< Synchronization Event Overrun Flag Channel 9 */
  103. #define LL_DMAMUX_CSR_SOF10 DMAMUX_CSR_SOF10 /*!< Synchronization Event Overrun Flag Channel 10 */
  104. #define LL_DMAMUX_CSR_SOF11 DMAMUX_CSR_SOF11 /*!< Synchronization Event Overrun Flag Channel 11 */
  105. #define LL_DMAMUX_CSR_SOF12 DMAMUX_CSR_SOF12 /*!< Synchronization Event Overrun Flag Channel 12 */
  106. #define LL_DMAMUX_CSR_SOF13 DMAMUX_CSR_SOF13 /*!< Synchronization Event Overrun Flag Channel 13 */
  107. #define LL_DMAMUX_CSR_SOF14 DMAMUX_CSR_SOF14 /*!< Synchronization Event Overrun Flag Channel 14 */
  108. #define LL_DMAMUX_CSR_SOF15 DMAMUX_CSR_SOF15 /*!< Synchronization Event Overrun Flag Channel 15 */
  109. #define LL_DMAMUX_RGSR_RGOF0 DMAMUX_RGSR_OF0 /*!< Request Generator 0 Trigger Event Overrun Flag */
  110. #define LL_DMAMUX_RGSR_RGOF1 DMAMUX_RGSR_OF1 /*!< Request Generator 1 Trigger Event Overrun Flag */
  111. #define LL_DMAMUX_RGSR_RGOF2 DMAMUX_RGSR_OF2 /*!< Request Generator 2 Trigger Event Overrun Flag */
  112. #define LL_DMAMUX_RGSR_RGOF3 DMAMUX_RGSR_OF3 /*!< Request Generator 3 Trigger Event Overrun Flag */
  113. #define LL_DMAMUX_RGSR_RGOF4 DMAMUX_RGSR_OF4 /*!< Request Generator 4 Trigger Event Overrun Flag */
  114. #define LL_DMAMUX_RGSR_RGOF5 DMAMUX_RGSR_OF5 /*!< Request Generator 5 Trigger Event Overrun Flag */
  115. #define LL_DMAMUX_RGSR_RGOF6 DMAMUX_RGSR_OF6 /*!< Request Generator 6 Trigger Event Overrun Flag */
  116. #define LL_DMAMUX_RGSR_RGOF7 DMAMUX_RGSR_OF7 /*!< Request Generator 7 Trigger Event Overrun Flag */
  117. /**
  118. * @}
  119. */
  120. /** @defgroup DMAMUX_LL_EC_IT IT Defines
  121. * @brief IT defines which can be used with LL_DMA_ReadReg and LL_DMAMUX_WriteReg functions
  122. * @{
  123. */
  124. #define LL_DMAMUX_CCR_SOIE DMAMUX_CxCR_SOIE /*!< Synchronization Event Overrun Interrupt */
  125. #define LL_DMAMUX_RGCR_RGOIE DMAMUX_RGxCR_OIE /*!< Request Generation Trigger Event Overrun Interrupt */
  126. /**
  127. * @}
  128. */
  129. /** @defgroup DMAMUX1_Request_selection DMAMUX1 Request selection
  130. * @brief DMAMUX1 Request selection
  131. * @{
  132. */
  133. /* DMAMUX1 requests */
  134. #define LL_DMAMUX1_REQ_MEM2MEM 0U /*!< memory to memory transfer */
  135. #define LL_DMAMUX1_REQ_GENERATOR0 1U /*!< DMAMUX1 request generator 0 */
  136. #define LL_DMAMUX1_REQ_GENERATOR1 2U /*!< DMAMUX1 request generator 1 */
  137. #define LL_DMAMUX1_REQ_GENERATOR2 3U /*!< DMAMUX1 request generator 2 */
  138. #define LL_DMAMUX1_REQ_GENERATOR3 4U /*!< DMAMUX1 request generator 3 */
  139. #define LL_DMAMUX1_REQ_GENERATOR4 5U /*!< DMAMUX1 request generator 4 */
  140. #define LL_DMAMUX1_REQ_GENERATOR5 6U /*!< DMAMUX1 request generator 5 */
  141. #define LL_DMAMUX1_REQ_GENERATOR6 7U /*!< DMAMUX1 request generator 6 */
  142. #define LL_DMAMUX1_REQ_GENERATOR7 8U /*!< DMAMUX1 request generator 7 */
  143. #define LL_DMAMUX1_REQ_ADC1 9U /*!< DMAMUX1 ADC1 request */
  144. #define LL_DMAMUX1_REQ_ADC2 10U /*!< DMAMUX1 ADC2 request */
  145. #define LL_DMAMUX1_REQ_TIM1_CH1 11U /*!< DMAMUX1 TIM1 CH1 request */
  146. #define LL_DMAMUX1_REQ_TIM1_CH2 12U /*!< DMAMUX1 TIM1 CH2 request */
  147. #define LL_DMAMUX1_REQ_TIM1_CH3 13U /*!< DMAMUX1 TIM1 CH3 request */
  148. #define LL_DMAMUX1_REQ_TIM1_CH4 14U /*!< DMAMUX1 TIM1 CH4 request */
  149. #define LL_DMAMUX1_REQ_TIM1_UP 15U /*!< DMAMUX1 TIM1 UP request */
  150. #define LL_DMAMUX1_REQ_TIM1_TRIG 16U /*!< DMAMUX1 TIM1 TRIG request */
  151. #define LL_DMAMUX1_REQ_TIM1_COM 17U /*!< DMAMUX1 TIM1 COM request */
  152. #define LL_DMAMUX1_REQ_TIM2_CH1 18U /*!< DMAMUX1 TIM2 CH1 request */
  153. #define LL_DMAMUX1_REQ_TIM2_CH2 19U /*!< DMAMUX1 TIM2 CH2 request */
  154. #define LL_DMAMUX1_REQ_TIM2_CH3 20U /*!< DMAMUX1 TIM2 CH3 request */
  155. #define LL_DMAMUX1_REQ_TIM2_CH4 21U /*!< DMAMUX1 TIM2 CH4 request */
  156. #define LL_DMAMUX1_REQ_TIM2_UP 22U /*!< DMAMUX1 TIM2 UP request */
  157. #define LL_DMAMUX1_REQ_TIM3_CH1 23U /*!< DMAMUX1 TIM3 CH1 request */
  158. #define LL_DMAMUX1_REQ_TIM3_CH2 24U /*!< DMAMUX1 TIM3 CH2 request */
  159. #define LL_DMAMUX1_REQ_TIM3_CH3 25U /*!< DMAMUX1 TIM3 CH3 request */
  160. #define LL_DMAMUX1_REQ_TIM3_CH4 26U /*!< DMAMUX1 TIM3 CH4 request */
  161. #define LL_DMAMUX1_REQ_TIM3_UP 27U /*!< DMAMUX1 TIM3 UP request */
  162. #define LL_DMAMUX1_REQ_TIM3_TRIG 28U /*!< DMAMUX1 TIM3 TRIG request */
  163. #define LL_DMAMUX1_REQ_TIM4_CH1 29U /*!< DMAMUX1 TIM4 CH1 request */
  164. #define LL_DMAMUX1_REQ_TIM4_CH2 30U /*!< DMAMUX1 TIM4 CH2 request */
  165. #define LL_DMAMUX1_REQ_TIM4_CH3 31U /*!< DMAMUX1 TIM4 CH3 request */
  166. #define LL_DMAMUX1_REQ_TIM4_UP 32U /*!< DMAMUX1 TIM4 UP request */
  167. #define LL_DMAMUX1_REQ_I2C1_RX 33U /*!< DMAMUX1 I2C1 RX request */
  168. #define LL_DMAMUX1_REQ_I2C1_TX 34U /*!< DMAMUX1 I2C1 TX request */
  169. #define LL_DMAMUX1_REQ_I2C2_RX 35U /*!< DMAMUX1 I2C2 RX request */
  170. #define LL_DMAMUX1_REQ_I2C2_TX 36U /*!< DMAMUX1 I2C2 TX request */
  171. #define LL_DMAMUX1_REQ_SPI1_RX 37U /*!< DMAMUX1 SPI1 RX request */
  172. #define LL_DMAMUX1_REQ_SPI1_TX 38U /*!< DMAMUX1 SPI1 TX request */
  173. #define LL_DMAMUX1_REQ_SPI2_RX 39U /*!< DMAMUX1 SPI2 RX request */
  174. #define LL_DMAMUX1_REQ_SPI2_TX 40U /*!< DMAMUX1 SPI2 TX request */
  175. #define LL_DMAMUX1_REQ_USART1_RX 41U /*!< DMAMUX1 USART1 RX request */
  176. #define LL_DMAMUX1_REQ_USART1_TX 42U /*!< DMAMUX1 USART1 TX request */
  177. #define LL_DMAMUX1_REQ_USART2_RX 43U /*!< DMAMUX1 USART2 RX request */
  178. #define LL_DMAMUX1_REQ_USART2_TX 44U /*!< DMAMUX1 USART2 TX request */
  179. #define LL_DMAMUX1_REQ_USART3_RX 45U /*!< DMAMUX1 USART3 RX request */
  180. #define LL_DMAMUX1_REQ_USART3_TX 46U /*!< DMAMUX1 USART3 TX request */
  181. #define LL_DMAMUX1_REQ_TIM8_CH1 47U /*!< DMAMUX1 TIM8 CH1 request */
  182. #define LL_DMAMUX1_REQ_TIM8_CH2 48U /*!< DMAMUX1 TIM8 CH2 request */
  183. #define LL_DMAMUX1_REQ_TIM8_CH3 49U /*!< DMAMUX1 TIM8 CH3 request */
  184. #define LL_DMAMUX1_REQ_TIM8_CH4 50U /*!< DMAMUX1 TIM8 CH4 request */
  185. #define LL_DMAMUX1_REQ_TIM8_UP 51U /*!< DMAMUX1 TIM8 UP request */
  186. #define LL_DMAMUX1_REQ_TIM8_TRIG 52U /*!< DMAMUX1 TIM8 TRIG request */
  187. #define LL_DMAMUX1_REQ_TIM8_COM 53U /*!< DMAMUX1 TIM8 COM request */
  188. #define LL_DMAMUX1_REQ_TIM5_CH1 55U /*!< DMAMUX1 TIM5 CH1 request */
  189. #define LL_DMAMUX1_REQ_TIM5_CH2 56U /*!< DMAMUX1 TIM5 CH2 request */
  190. #define LL_DMAMUX1_REQ_TIM5_CH3 57U /*!< DMAMUX1 TIM5 CH3 request */
  191. #define LL_DMAMUX1_REQ_TIM5_CH4 58U /*!< DMAMUX1 TIM5 CH4 request */
  192. #define LL_DMAMUX1_REQ_TIM5_UP 59U /*!< DMAMUX1 TIM5 UP request */
  193. #define LL_DMAMUX1_REQ_TIM5_TRIG 60U /*!< DMAMUX1 TIM5 TRIG request */
  194. #define LL_DMAMUX1_REQ_SPI3_RX 61U /*!< DMAMUX1 SPI3 RX request */
  195. #define LL_DMAMUX1_REQ_SPI3_TX 62U /*!< DMAMUX1 SPI3 TX request */
  196. #define LL_DMAMUX1_REQ_UART4_RX 63U /*!< DMAMUX1 UART4 RX request */
  197. #define LL_DMAMUX1_REQ_UART4_TX 64U /*!< DMAMUX1 UART4 TX request */
  198. #define LL_DMAMUX1_REQ_UART5_RX 65U /*!< DMAMUX1 UART5 RX request */
  199. #define LL_DMAMUX1_REQ_UART5_TX 66U /*!< DMAMUX1 UART5 TX request */
  200. #define LL_DMAMUX1_REQ_DAC1_CH1 67U /*!< DMAMUX1 DAC1 Channel 1 request */
  201. #define LL_DMAMUX1_REQ_DAC1_CH2 68U /*!< DMAMUX1 DAC1 Channel 2 request */
  202. #define LL_DMAMUX1_REQ_TIM6_UP 69U /*!< DMAMUX1 TIM6 UP request */
  203. #define LL_DMAMUX1_REQ_TIM7_UP 70U /*!< DMAMUX1 TIM7 UP request */
  204. #define LL_DMAMUX1_REQ_USART6_RX 71U /*!< DMAMUX1 USART6 RX request */
  205. #define LL_DMAMUX1_REQ_USART6_TX 72U /*!< DMAMUX1 USART6 TX request */
  206. #define LL_DMAMUX1_REQ_I2C3_RX 73U /*!< DMAMUX1 I2C3 RX request */
  207. #define LL_DMAMUX1_REQ_I2C3_TX 74U /*!< DMAMUX1 I2C3 TX request */
  208. #if defined (PSSI)
  209. #define LL_DMAMUX1_REQ_DCMI_PSSI 75U /*!< DMAMUX1 DCMI/PSSI request */
  210. #define LL_DMAMUX1_REQ_DCMI LL_DMAMUX1_REQ_DCMI_PSSI /* Legacy define */
  211. #else
  212. #define LL_DMAMUX1_REQ_DCMI 75U /*!< DMAMUX1 DCMI request */
  213. #endif /* PSSI */
  214. #define LL_DMAMUX1_REQ_CRYP_IN 76U /*!< DMAMUX1 CRYP IN request */
  215. #define LL_DMAMUX1_REQ_CRYP_OUT 77U /*!< DMAMUX1 CRYP OUT request */
  216. #define LL_DMAMUX1_REQ_HASH_IN 78U /*!< DMAMUX1 HASH IN request */
  217. #define LL_DMAMUX1_REQ_UART7_RX 79U /*!< DMAMUX1 UART7 RX request */
  218. #define LL_DMAMUX1_REQ_UART7_TX 80U /*!< DMAMUX1 UART7 TX request */
  219. #define LL_DMAMUX1_REQ_UART8_RX 81U /*!< DMAMUX1 UART8 RX request */
  220. #define LL_DMAMUX1_REQ_UART8_TX 82U /*!< DMAMUX1 UART8 TX request */
  221. #define LL_DMAMUX1_REQ_SPI4_RX 83U /*!< DMAMUX1 SPI4 RX request */
  222. #define LL_DMAMUX1_REQ_SPI4_TX 84U /*!< DMAMUX1 SPI4 TX request */
  223. #define LL_DMAMUX1_REQ_SPI5_RX 85U /*!< DMAMUX1 SPI5 RX request */
  224. #define LL_DMAMUX1_REQ_SPI5_TX 86U /*!< DMAMUX1 SPI5 TX request */
  225. #define LL_DMAMUX1_REQ_SAI1_A 87U /*!< DMAMUX1 SAI1 A request */
  226. #define LL_DMAMUX1_REQ_SAI1_B 88U /*!< DMAMUX1 SAI1 B request */
  227. #if defined(SAI2)
  228. #define LL_DMAMUX1_REQ_SAI2_A 89U /*!< DMAMUX1 SAI2 A request */
  229. #define LL_DMAMUX1_REQ_SAI2_B 90U /*!< DMAMUX1 SAI2 B request */
  230. #endif /* SAI2 */
  231. #define LL_DMAMUX1_REQ_SWPMI_RX 91U /*!< DMAMUX1 SWPMI RX request */
  232. #define LL_DMAMUX1_REQ_SWPMI_TX 92U /*!< DMAMUX1 SWPMI TX request */
  233. #define LL_DMAMUX1_REQ_SPDIF_RX_DT 93U /*!< DMAMUX1 SPDIF RXDT request */
  234. #define LL_DMAMUX1_REQ_SPDIF_RX_CS 94U /*!< DMAMUX1 SPDIF RXCS request */
  235. #if defined (HRTIM1)
  236. #define LL_DMAMUX1_REQ_HRTIM_MASTER 95U /*!< DMAMUX1 HRTIM1 Master request 1 */
  237. #define LL_DMAMUX1_REQ_HRTIM_TIMER_A 96U /*!< DMAMUX1 HRTIM1 Timer A request 2 */
  238. #define LL_DMAMUX1_REQ_HRTIM_TIMER_B 97U /*!< DMAMUX1 HRTIM1 Timer B request 3 */
  239. #define LL_DMAMUX1_REQ_HRTIM_TIMER_C 98U /*!< DMAMUX1 HRTIM1 Timer C request 4 */
  240. #define LL_DMAMUX1_REQ_HRTIM_TIMER_D 99U /*!< DMAMUX1 HRTIM1 Timer D request 5 */
  241. #define LL_DMAMUX1_REQ_HRTIM_TIMER_E 100U /*!< DMAMUX1 HRTIM1 Timer E request 6 */
  242. #endif /* HRTIM1 */
  243. #define LL_DMAMUX1_REQ_DFSDM1_FLT0 101U /*!< DMAMUX1 DFSDM1 Filter0 request */
  244. #define LL_DMAMUX1_REQ_DFSDM1_FLT1 102U /*!< DMAMUX1 DFSDM1 Filter1 request */
  245. #define LL_DMAMUX1_REQ_DFSDM1_FLT2 103U /*!< DMAMUX1 DFSDM1 Filter2 request */
  246. #define LL_DMAMUX1_REQ_DFSDM1_FLT3 104U /*!< DMAMUX1 DFSDM1 Filter3 request */
  247. #define LL_DMAMUX1_REQ_TIM15_CH1 105U /*!< DMAMUX1 TIM15 CH1 request */
  248. #define LL_DMAMUX1_REQ_TIM15_UP 106U /*!< DMAMUX1 TIM15 UP request */
  249. #define LL_DMAMUX1_REQ_TIM15_TRIG 107U /*!< DMAMUX1 TIM15 TRIG request */
  250. #define LL_DMAMUX1_REQ_TIM15_COM 108U /*!< DMAMUX1 TIM15 COM request */
  251. #define LL_DMAMUX1_REQ_TIM16_CH1 109U /*!< DMAMUX1 TIM16 CH1 request */
  252. #define LL_DMAMUX1_REQ_TIM16_UP 110U /*!< DMAMUX1 TIM16 UP request */
  253. #define LL_DMAMUX1_REQ_TIM17_CH1 111U /*!< DMAMUX1 TIM17 CH1 request */
  254. #define LL_DMAMUX1_REQ_TIM17_UP 112U /*!< DMAMUX1 TIM17 UP request */
  255. #if defined (SAI3)
  256. #define LL_DMAMUX1_REQ_SAI3_A 113U /*!< DMAMUX1 SAI3 A request */
  257. #define LL_DMAMUX1_REQ_SAI3_B 114U /*!< DMAMUX1 SAI3 B request */
  258. #endif /* SAI3 */
  259. #if defined (ADC3)
  260. #define LL_DMAMUX1_REQ_ADC3 115U /*!< DMAMUX1 ADC3 request */
  261. #endif /* ADC3 */
  262. #if defined (UART9)
  263. #define LL_DMAMUX1_REQ_UART9_RX 116U /*!< DMAMUX1 UART9 RX request */
  264. #define LL_DMAMUX1_REQ_UART9_TX 117U /*!< DMAMUX1 UART9 TX request */
  265. #endif /* UART9 */
  266. #if defined (USART10)
  267. #define LL_DMAMUX1_REQ_USART10_RX 118U /*!< DMAMUX1 USART10 RX request */
  268. #define LL_DMAMUX1_REQ_USART10_TX 119U /*!< DMAMUX1 USART10 TX request */
  269. #endif /* USART10 */
  270. #if defined(FMAC)
  271. #define LL_DMAMUX1_REQ_FMAC_READ 120U /*!< DMAMUX1 FMAC Read request */
  272. #define LL_DMAMUX1_REQ_FMAC_WRITE 121U /*!< DMAMUX1 FMAC Write request */
  273. #endif /* FMAC */
  274. #if defined(CORDIC)
  275. #define LL_DMAMUX1_REQ_CORDIC_READ 122U /*!< DMAMUX1 CORDIC Read request */
  276. #define LL_DMAMUX1_REQ_CORDIC_WRITE 123U /*!< DMAMUX1 CORDIC Write request */
  277. #endif /* CORDIC */
  278. #if defined(I2C5)
  279. #define LL_DMAMUX1_REQ_I2C5_RX 124U /*!< DMAMUX1 I2C5 RX request */
  280. #define LL_DMAMUX1_REQ_I2C5_TX 125U /*!< DMAMUX1 I2C5 TX request */
  281. #endif /* I2C5 */
  282. #if defined(TIM23)
  283. #define LL_DMAMUX1_REQ_TIM23_CH1 126U /*!< DMAMUX1 TIM23 CH1 request */
  284. #define LL_DMAMUX1_REQ_TIM23_CH2 127U /*!< DMAMUX1 TIM23 CH2 request */
  285. #define LL_DMAMUX1_REQ_TIM23_CH3 128U /*!< DMAMUX1 TIM23 CH3 request */
  286. #define LL_DMAMUX1_REQ_TIM23_CH4 129U /*!< DMAMUX1 TIM23 CH4 request */
  287. #define LL_DMAMUX1_REQ_TIM23_UP 130U /*!< DMAMUX1 TIM23 UP request */
  288. #define LL_DMAMUX1_REQ_TIM23_TRIG 131U /*!< DMAMUX1 TIM23 TRIG request */
  289. #endif /* TIM23 */
  290. #if defined(TIM24)
  291. #define LL_DMAMUX1_REQ_TIM24_CH1 132U /*!< DMAMUX1 TIM24 CH1 request */
  292. #define LL_DMAMUX1_REQ_TIM24_CH2 133U /*!< DMAMUX1 TIM24 CH2 request */
  293. #define LL_DMAMUX1_REQ_TIM24_CH3 134U /*!< DMAMUX1 TIM24 CH3 request */
  294. #define LL_DMAMUX1_REQ_TIM24_CH4 135U /*!< DMAMUX1 TIM24 CH4 request */
  295. #define LL_DMAMUX1_REQ_TIM24_UP 136U /*!< DMAMUX1 TIM24 UP request */
  296. #define LL_DMAMUX1_REQ_TIM24_TRIG 137U /*!< DMAMUX1 TIM24 TRIG request */
  297. #endif /* TIM24 */
  298. /**
  299. * @}
  300. */
  301. /** @defgroup DMAMUX2_Request_selection DMAMUX2 Request selection
  302. * @brief DMAMUX2 Request selection
  303. * @{
  304. */
  305. /* DMAMUX2 requests */
  306. #define LL_DMAMUX2_REQ_MEM2MEM 0U /*!< memory to memory transfer */
  307. #define LL_DMAMUX2_REQ_GENERATOR0 1U /*!< DMAMUX2 request generator 0 */
  308. #define LL_DMAMUX2_REQ_GENERATOR1 2U /*!< DMAMUX2 request generator 1 */
  309. #define LL_DMAMUX2_REQ_GENERATOR2 3U /*!< DMAMUX2 request generator 2 */
  310. #define LL_DMAMUX2_REQ_GENERATOR3 4U /*!< DMAMUX2 request generator 3 */
  311. #define LL_DMAMUX2_REQ_GENERATOR4 5U /*!< DMAMUX2 request generator 4 */
  312. #define LL_DMAMUX2_REQ_GENERATOR5 6U /*!< DMAMUX2 request generator 5 */
  313. #define LL_DMAMUX2_REQ_GENERATOR6 7U /*!< DMAMUX2 request generator 6 */
  314. #define LL_DMAMUX2_REQ_GENERATOR7 8U /*!< DMAMUX2 request generator 7 */
  315. #define LL_DMAMUX2_REQ_LPUART1_RX 9U /*!< DMAMUX2 LP_UART1_RX request */
  316. #define LL_DMAMUX2_REQ_LPUART1_TX 10U /*!< DMAMUX2 LP_UART1_TX request */
  317. #define LL_DMAMUX2_REQ_SPI6_RX 11U /*!< DMAMUX2 SPI6 RX request */
  318. #define LL_DMAMUX2_REQ_SPI6_TX 12U /*!< DMAMUX2 SPI6 TX request */
  319. #define LL_DMAMUX2_REQ_I2C4_RX 13U /*!< DMAMUX2 I2C4 RX request */
  320. #define LL_DMAMUX2_REQ_I2C4_TX 14U /*!< DMAMUX2 I2C4 TX request */
  321. #if defined (SAI4)
  322. #define LL_DMAMUX2_REQ_SAI4_A 15U /*!< DMAMUX2 SAI4 A request */
  323. #define LL_DMAMUX2_REQ_SAI4_B 16U /*!< DMAMUX2 SAI4 B request */
  324. #endif /* SAI4 */
  325. #if defined (ADC3)
  326. #define LL_DMAMUX2_REQ_ADC3 17U /*!< DMAMUX2 ADC3 request */
  327. #endif /* ADC3 */
  328. #if defined (DAC2)
  329. #define LL_DMAMUX2_REQ_DAC2_CH1 17U /*!< DMAMUX2 DAC2 CH1 request */
  330. #endif /* DAC2 */
  331. #if defined (DFSDM2_Channel0)
  332. #define LL_DMAMUX2_REQ_DFSDM2_FLT0 18U /*!< DMAMUX2 DFSDM2 Filter0 request */
  333. #endif /* DFSDM2_Channel0 */
  334. /**
  335. * @}
  336. */
  337. /** @defgroup DMAMUX_LL_EC_CHANNEL DMAMUX Channel
  338. * @{
  339. */
  340. #define LL_DMAMUX_CHANNEL_0 0x00000000U /*!< DMAMUX1 Channel 0 connected to DMA1 Channel 0 , DMAMUX2 Channel 0 connected to BDMA Channel 0 */
  341. #define LL_DMAMUX_CHANNEL_1 0x00000001U /*!< DMAMUX1 Channel 1 connected to DMA1 Channel 1 , DMAMUX2 Channel 1 connected to BDMA Channel 1 */
  342. #define LL_DMAMUX_CHANNEL_2 0x00000002U /*!< DMAMUX1 Channel 2 connected to DMA1 Channel 2 , DMAMUX2 Channel 2 connected to BDMA Channel 2 */
  343. #define LL_DMAMUX_CHANNEL_3 0x00000003U /*!< DMAMUX1 Channel 3 connected to DMA1 Channel 3 , DMAMUX2 Channel 3 connected to BDMA Channel 3 */
  344. #define LL_DMAMUX_CHANNEL_4 0x00000004U /*!< DMAMUX1 Channel 4 connected to DMA1 Channel 4 , DMAMUX2 Channel 4 connected to BDMA Channel 4 */
  345. #define LL_DMAMUX_CHANNEL_5 0x00000005U /*!< DMAMUX1 Channel 5 connected to DMA1 Channel 5 , DMAMUX2 Channel 5 connected to BDMA Channel 5 */
  346. #define LL_DMAMUX_CHANNEL_6 0x00000006U /*!< DMAMUX1 Channel 6 connected to DMA1 Channel 6 , DMAMUX2 Channel 6 connected to BDMA Channel 6 */
  347. #define LL_DMAMUX_CHANNEL_7 0x00000007U /*!< DMAMUX1 Channel 7 connected to DMA1 Channel 7 , DMAMUX2 Channel 7 connected to BDMA Channel 7 */
  348. #define LL_DMAMUX_CHANNEL_8 0x00000008U /*!< DMAMUX1 Channel 8 connected to DMA2 Channel 0 */
  349. #define LL_DMAMUX_CHANNEL_9 0x00000009U /*!< DMAMUX1 Channel 9 connected to DMA2 Channel 1 */
  350. #define LL_DMAMUX_CHANNEL_10 0x0000000AU /*!< DMAMUX1 Channel 10 connected to DMA2 Channel 2 */
  351. #define LL_DMAMUX_CHANNEL_11 0x0000000BU /*!< DMAMUX1 Channel 11 connected to DMA2 Channel 3 */
  352. #define LL_DMAMUX_CHANNEL_12 0x0000000CU /*!< DMAMUX1 Channel 12 connected to DMA2 Channel 4 */
  353. #define LL_DMAMUX_CHANNEL_13 0x0000000DU /*!< DMAMUX1 Channel 13 connected to DMA2 Channel 5 */
  354. #define LL_DMAMUX_CHANNEL_14 0x0000000EU /*!< DMAMUX1 Channel 14 connected to DMA2 Channel 6 */
  355. #define LL_DMAMUX_CHANNEL_15 0x0000000FU /*!< DMAMUX1 Channel 15 connected to DMA2 Channel 7 */
  356. /**
  357. * @}
  358. */
  359. /** @defgroup DMAMUX_LL_EC_SYNC_NO Synchronization Signal Polarity
  360. * @{
  361. */
  362. #define LL_DMAMUX_SYNC_NO_EVENT 0x00000000U /*!< All requests are blocked */
  363. #define LL_DMAMUX_SYNC_POL_RISING DMAMUX_CxCR_SPOL_0 /*!< Synchronization on event on rising edge */
  364. #define LL_DMAMUX_SYNC_POL_FALLING DMAMUX_CxCR_SPOL_1 /*!< Synchronization on event on falling edge */
  365. #define LL_DMAMUX_SYNC_POL_RISING_FALLING (DMAMUX_CxCR_SPOL_0 | DMAMUX_CxCR_SPOL_1) /*!< Synchronization on event on rising and falling edge */
  366. /**
  367. * @}
  368. */
  369. /** @defgroup DMAMUX_LL_EC_SYNC_EVT Synchronization Signal Event
  370. * @{
  371. */
  372. #define LL_DMAMUX1_SYNC_DMAMUX1_CH0_EVT 0x00000000U /*!< DMAMUX1 synchronization Signal is DMAMUX1 Channel0 Event */
  373. #define LL_DMAMUX1_SYNC_DMAMUX1_CH1_EVT 0x01000000U /*!< DMAMUX1 synchronization Signal is DMAMUX1 Channel1 Event */
  374. #define LL_DMAMUX1_SYNC_DMAMUX1_CH2_EVT 0x02000000U /*!< DMAMUX1 synchronization Signal is DMAMUX1 Channel2 Event */
  375. #define LL_DMAMUX1_SYNC_LPTIM1_OUT 0x03000000U /*!< DMAMUX1 synchronization Signal is LPTIM1 OUT */
  376. #define LL_DMAMUX1_SYNC_LPTIM2_OUT 0x04000000U /*!< DMAMUX1 synchronization Signal is LPTIM2 OUT */
  377. #define LL_DMAMUX1_SYNC_LPTIM3_OUT 0x05000000U /*!< DMAMUX1 synchronization Signal is LPTIM3 OUT */
  378. #define LL_DMAMUX1_SYNC_EXTI0 0x06000000U /*!< DMAMUX1 synchronization Signal is EXTI0 IT */
  379. #define LL_DMAMUX1_SYNC_TIM12_TRGO 0x07000000U /*!< DMAMUX1 synchronization Signal is TIM12 TRGO */
  380. #define LL_DMAMUX2_SYNC_DMAMUX2_CH0_EVT 0x00000000U /*!< DMAMUX2 synchronization Signal is DMAMUX2 Channel0 Event */
  381. #define LL_DMAMUX2_SYNC_DMAMUX2_CH1_EVT 0x01000000U /*!< DMAMUX2 synchronization Signal is DMAMUX2 Channel1 Event */
  382. #define LL_DMAMUX2_SYNC_DMAMUX2_CH2_EVT 0x02000000U /*!< DMAMUX2 synchronization Signal is DMAMUX2 Channel2 Event */
  383. #define LL_DMAMUX2_SYNC_DMAMUX2_CH3_EVT 0x03000000U /*!< DMAMUX2 synchronization Signal is DMAMUX2 Channel3 Event */
  384. #define LL_DMAMUX2_SYNC_DMAMUX2_CH4_EVT 0x04000000U /*!< DMAMUX2 synchronization Signal is DMAMUX2 Channel4 Event */
  385. #define LL_DMAMUX2_SYNC_DMAMUX2_CH5_EVT 0x05000000U /*!< DMAMUX2 synchronization Signal is DMAMUX2 Channel5 Event */
  386. #define LL_DMAMUX2_SYNC_LPUART1_RX_WKUP 0x06000000U /*!< DMAMUX2 synchronization Signal is LPUART1 RX Wakeup */
  387. #define LL_DMAMUX2_SYNC_LPUART1_TX_WKUP 0x07000000U /*!< DMAMUX2 synchronization Signal is LPUART1 TX Wakeup */
  388. #define LL_DMAMUX2_SYNC_LPTIM2_OUT 0x08000000U /*!< DMAMUX2 synchronization Signal is LPTIM2 output */
  389. #define LL_DMAMUX2_SYNC_LPTIM3_OUT 0x09000000U /*!< DMAMUX2 synchronization Signal is LPTIM3 output */
  390. #define LL_DMAMUX2_SYNC_I2C4_WKUP 0x0A000000U /*!< DMAMUX2 synchronization Signal is I2C4 Wakeup */
  391. #define LL_DMAMUX2_SYNC_SPI6_WKUP 0x0B000000U /*!< DMAMUX2 synchronization Signal is SPI6 Wakeup */
  392. #define LL_DMAMUX2_SYNC_COMP1_OUT 0x0C000000U /*!< DMAMUX2 synchronization Signal is Comparator 1 output */
  393. #define LL_DMAMUX2_SYNC_RTC_WKUP 0x0D000000U /*!< DMAMUX2 synchronization Signal is RTC Wakeup */
  394. #define LL_DMAMUX2_SYNC_EXTI0 0x0E000000U /*!< DMAMUX2 synchronization Signal is EXTI0 IT */
  395. #define LL_DMAMUX2_SYNC_EXTI2 0x0F000000U /*!< DMAMUX2 synchronization Signal is EXTI2 IT */
  396. /**
  397. * @}
  398. */
  399. /** @defgroup DMAMUX_LL_EC_REQUEST_GENERATOR Request Generator Channel
  400. * @{
  401. */
  402. #define LL_DMAMUX_REQ_GEN_0 0x00000000U
  403. #define LL_DMAMUX_REQ_GEN_1 0x00000001U
  404. #define LL_DMAMUX_REQ_GEN_2 0x00000002U
  405. #define LL_DMAMUX_REQ_GEN_3 0x00000003U
  406. #define LL_DMAMUX_REQ_GEN_4 0x00000004U
  407. #define LL_DMAMUX_REQ_GEN_5 0x00000005U
  408. #define LL_DMAMUX_REQ_GEN_6 0x00000006U
  409. #define LL_DMAMUX_REQ_GEN_7 0x00000007U
  410. /**
  411. * @}
  412. */
  413. /** @defgroup DMAMUX_LL_EC_REQUEST_GEN_POLARITY External Request Signal Generation Polarity
  414. * @{
  415. */
  416. #define LL_DMAMUX_REQ_GEN_NO_EVENT 0x00000000U /*!< No external DMA request generation */
  417. #define LL_DMAMUX_REQ_GEN_POL_RISING DMAMUX_RGxCR_GPOL_0 /*!< External DMA request generation on event on rising edge */
  418. #define LL_DMAMUX_REQ_GEN_POL_FALLING DMAMUX_RGxCR_GPOL_1 /*!< External DMA request generation on event on falling edge */
  419. #define LL_DMAMUX_REQ_GEN_POL_RISING_FALLING (DMAMUX_RGxCR_GPOL_0 | DMAMUX_RGxCR_GPOL_1) /*!< External DMA request generation on rising and falling edge */
  420. /**
  421. * @}
  422. */
  423. /** @defgroup DMAMUX_LL_EC_REQUEST_GEN External Request Signal Generation
  424. * @{
  425. */
  426. #define LL_DMAMUX1_REQ_GEN_DMAMUX1_CH0_EVT 0U /*!< DMAMUX1 Request generator Signal is DMAMUX1 Channel0 Event */
  427. #define LL_DMAMUX1_REQ_GEN_DMAMUX1_CH1_EVT 1U /*!< DMAMUX1 Request generator Signal is DMAMUX1 Channel1 Event */
  428. #define LL_DMAMUX1_REQ_GEN_DMAMUX1_CH2_EVT 2U /*!< DMAMUX1 Request generator Signal is DMAMUX1 Channel2 Event */
  429. #define LL_DMAMUX1_REQ_GEN_LPTIM1_OUT 3U /*!< DMAMUX1 Request generator Signal is LPTIM1 OUT */
  430. #define LL_DMAMUX1_REQ_GEN_LPTIM2_OUT 4U /*!< DMAMUX1 Request generator Signal is LPTIM2 OUT */
  431. #define LL_DMAMUX1_REQ_GEN_LPTIM3_OUT 5U /*!< DMAMUX1 Request generator Signal is LPTIM3 OUT */
  432. #define LL_DMAMUX1_REQ_GEN_EXTI0 6U /*!< DMAMUX1 Request generator Signal is EXTI0 IT */
  433. #define LL_DMAMUX1_REQ_GEN_TIM12_TRGO 7U /*!< DMAMUX1 Request generator Signal is TIM12 TRGO */
  434. #define LL_DMAMUX2_REQ_GEN_DMAMUX2_CH0_EVT 0U /*!< DMAMUX2 Request generator Signal is DMAMUX2 Channel0 Event */
  435. #define LL_DMAMUX2_REQ_GEN_DMAMUX2_CH1_EVT 1U /*!< DMAMUX2 Request generator Signal is DMAMUX2 Channel1 Event */
  436. #define LL_DMAMUX2_REQ_GEN_DMAMUX2_CH2_EVT 2U /*!< DMAMUX2 Request generator Signal is DMAMUX2 Channel2 Event */
  437. #define LL_DMAMUX2_REQ_GEN_DMAMUX2_CH3_EVT 3U /*!< DMAMUX2 Request generator Signal is DMAMUX2 Channel3 Event */
  438. #define LL_DMAMUX2_REQ_GEN_DMAMUX2_CH4_EVT 4U /*!< DMAMUX2 Request generator Signal is DMAMUX2 Channel4 Event */
  439. #define LL_DMAMUX2_REQ_GEN_DMAMUX2_CH5_EVT 5U /*!< DMAMUX2 Request generator Signal is DMAMUX2 Channel5 Event */
  440. #define LL_DMAMUX2_REQ_GEN_DMAMUX2_CH6_EVT 6U /*!< DMAMUX2 Request generator Signal is DMAMUX2 Channel6 Event */
  441. #define LL_DMAMUX2_REQ_GEN_LPUART1_RX_WKUP 7U /*!< DMAMUX2 Request generator Signal is LPUART1 RX Wakeup */
  442. #define LL_DMAMUX2_REQ_GEN_LPUART1_TX_WKUP 8U /*!< DMAMUX2 Request generator Signal is LPUART1 TX Wakeup */
  443. #define LL_DMAMUX2_REQ_GEN_LPTIM2_WKUP 9U /*!< DMAMUX2 Request generator Signal is LPTIM2 Wakeup */
  444. #define LL_DMAMUX2_REQ_GEN_LPTIM2_OUT 10U /*!< DMAMUX2 Request generator Signal is LPTIM2 OUT */
  445. #define LL_DMAMUX2_REQ_GEN_LPTIM3_WKUP 11U /*!< DMAMUX2 Request generator Signal is LPTIM3 Wakeup */
  446. #define LL_DMAMUX2_REQ_GEN_LPTIM3_OUT 12U /*!< DMAMUX2 Request generator Signal is LPTIM3 OUT */
  447. #if defined (LPTIM4)
  448. #define LL_DMAMUX2_REQ_GEN_LPTIM4_WKUP 13U /*!< DMAMUX2 Request generator Signal is LPTIM4 Wakeup */
  449. #endif /* LPTIM4 */
  450. #if defined (LPTIM5)
  451. #define LL_DMAMUX2_REQ_GEN_LPTIM5_WKUP 14U /*!< DMAMUX2 Request generator Signal is LPTIM5 Wakeup */
  452. #endif /* LPTIM5 */
  453. #define LL_DMAMUX2_REQ_GEN_I2C4_WKUP 15U /*!< DMAMUX2 Request generator Signal is I2C4 Wakeup */
  454. #define LL_DMAMUX2_REQ_GEN_SPI6_WKUP 16U /*!< DMAMUX2 Request generator Signal is SPI6 Wakeup */
  455. #define LL_DMAMUX2_REQ_GEN_COMP1_OUT 17U /*!< DMAMUX2 Request generator Signal is Comparator 1 output */
  456. #define LL_DMAMUX2_REQ_GEN_COMP2_OUT 18U /*!< DMAMUX2 Request generator Signal is Comparator 2 output */
  457. #define LL_DMAMUX2_REQ_GEN_RTC_WKUP 19U /*!< DMAMUX2 Request generator Signal is RTC Wakeup */
  458. #define LL_DMAMUX2_REQ_GEN_EXTI0 20U /*!< DMAMUX2 Request generator Signal is EXTI0 */
  459. #define LL_DMAMUX2_REQ_GEN_EXTI2 21U /*!< DMAMUX2 Request generator Signal is EXTI2 */
  460. #define LL_DMAMUX2_REQ_GEN_I2C4_IT_EVT 22U /*!< DMAMUX2 Request generator Signal is I2C4 IT Event */
  461. #define LL_DMAMUX2_REQ_GEN_SPI6_IT 23U /*!< DMAMUX2 Request generator Signal is SPI6 IT */
  462. #define LL_DMAMUX2_REQ_GEN_LPUART1_TX_IT 24U /*!< DMAMUX2 Request generator Signal is LPUART1 Tx IT */
  463. #define LL_DMAMUX2_REQ_GEN_LPUART1_RX_IT 25U /*!< DMAMUX2 Request generator Signal is LPUART1 Rx IT */
  464. #if defined (ADC3)
  465. #define LL_DMAMUX2_REQ_GEN_ADC3_IT 26U /*!< DMAMUX2 Request generator Signal is ADC3 IT */
  466. #define LL_DMAMUX2_REQ_GEN_ADC3_AWD1_OUT 27U /*!< DMAMUX2 Request generator Signal is ADC3 Analog Watchdog 1 output */
  467. #endif /* ADC3 */
  468. #define LL_DMAMUX2_REQ_GEN_BDMA_CH0_IT 28U /*!< DMAMUX2 Request generator Signal is BDMA Channel 0 IT */
  469. #define LL_DMAMUX2_REQ_GEN_BDMA_CH1_IT 29U /*!< DMAMUX2 Request generator Signal is BDMA Channel 1 IT */
  470. /**
  471. * @}
  472. */
  473. /**
  474. * @}
  475. */
  476. /* Exported macro ------------------------------------------------------------*/
  477. /** @defgroup DMAMUX_LL_Exported_Macros DMAMUX Exported Macros
  478. * @{
  479. */
  480. /** @defgroup DMAMUX_LL_EM_WRITE_READ Common Write and read registers macros
  481. * @{
  482. */
  483. /**
  484. * @brief Write a value in DMAMUX register
  485. * @param __INSTANCE__ DMAMUX Instance
  486. * @param __REG__ Register to be written
  487. * @param __VALUE__ Value to be written in the register
  488. * @retval None
  489. */
  490. #define LL_DMAMUX_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
  491. /**
  492. * @brief Read a value in DMAMUX register
  493. * @param __INSTANCE__ DMAMUX Instance
  494. * @param __REG__ Register to be read
  495. * @retval Register value
  496. */
  497. #define LL_DMAMUX_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
  498. /**
  499. * @}
  500. */
  501. /**
  502. * @}
  503. */
  504. /* Exported functions --------------------------------------------------------*/
  505. /** @defgroup DMAMUX_LL_Exported_Functions DMAMUX Exported Functions
  506. * @{
  507. */
  508. /** @defgroup DMAMUX_LL_EF_Configuration Configuration
  509. * @{
  510. */
  511. /**
  512. * @brief Set DMAMUX request ID for DMAMUX Channel x.
  513. * @note DMAMUX1 channel 0 to 7 are mapped to DMA1 channel 0 to 7.
  514. * DMAMUX1 channel 8 to 15 are mapped to DMA2 channel 0 to 7.
  515. * DMAMUX2 channel 0 to 7 are mapped to BDMA channel 0 to 7.
  516. * @rmtoll CxCR DMAREQ_ID LL_DMAMUX_SetRequestID
  517. * @param DMAMUXx DMAMUXx Instance
  518. * @param Channel This parameter can be one of the following values:
  519. * @arg @ref LL_DMAMUX_CHANNEL_0
  520. * @arg @ref LL_DMAMUX_CHANNEL_1
  521. * @arg @ref LL_DMAMUX_CHANNEL_2
  522. * @arg @ref LL_DMAMUX_CHANNEL_3
  523. * @arg @ref LL_DMAMUX_CHANNEL_4
  524. * @arg @ref LL_DMAMUX_CHANNEL_5
  525. * @arg @ref LL_DMAMUX_CHANNEL_6
  526. * @arg @ref LL_DMAMUX_CHANNEL_7
  527. * @arg @ref LL_DMAMUX_CHANNEL_8
  528. * @arg @ref LL_DMAMUX_CHANNEL_9
  529. * @arg @ref LL_DMAMUX_CHANNEL_10
  530. * @arg @ref LL_DMAMUX_CHANNEL_11
  531. * @arg @ref LL_DMAMUX_CHANNEL_12
  532. * @arg @ref LL_DMAMUX_CHANNEL_13
  533. * @arg @ref LL_DMAMUX_CHANNEL_14
  534. * @arg @ref LL_DMAMUX_CHANNEL_15
  535. * @param Request This parameter can be one of the following values:
  536. * @arg @ref LL_DMAMUX1_REQ_MEM2MEM
  537. * @arg @ref LL_DMAMUX1_REQ_GENERATOR0
  538. * @arg @ref LL_DMAMUX1_REQ_GENERATOR1
  539. * @arg @ref LL_DMAMUX1_REQ_GENERATOR2
  540. * @arg @ref LL_DMAMUX1_REQ_GENERATOR3
  541. * @arg @ref LL_DMAMUX1_REQ_GENERATOR4
  542. * @arg @ref LL_DMAMUX1_REQ_GENERATOR5
  543. * @arg @ref LL_DMAMUX1_REQ_GENERATOR6
  544. * @arg @ref LL_DMAMUX1_REQ_GENERATOR7
  545. * @arg @ref LL_DMAMUX1_REQ_ADC1
  546. * @arg @ref LL_DMAMUX1_REQ_ADC2
  547. * @arg @ref LL_DMAMUX1_REQ_TIM1_CH1
  548. * @arg @ref LL_DMAMUX1_REQ_TIM1_CH2
  549. * @arg @ref LL_DMAMUX1_REQ_TIM1_CH3
  550. * @arg @ref LL_DMAMUX1_REQ_TIM1_CH4
  551. * @arg @ref LL_DMAMUX1_REQ_TIM1_UP
  552. * @arg @ref LL_DMAMUX1_REQ_TIM1_TRIG
  553. * @arg @ref LL_DMAMUX1_REQ_TIM1_COM
  554. * @arg @ref LL_DMAMUX1_REQ_TIM2_CH1
  555. * @arg @ref LL_DMAMUX1_REQ_TIM2_CH2
  556. * @arg @ref LL_DMAMUX1_REQ_TIM2_CH3
  557. * @arg @ref LL_DMAMUX1_REQ_TIM2_CH4
  558. * @arg @ref LL_DMAMUX1_REQ_TIM2_UP
  559. * @arg @ref LL_DMAMUX1_REQ_TIM3_CH1
  560. * @arg @ref LL_DMAMUX1_REQ_TIM3_CH2
  561. * @arg @ref LL_DMAMUX1_REQ_TIM3_CH3
  562. * @arg @ref LL_DMAMUX1_REQ_TIM3_CH4
  563. * @arg @ref LL_DMAMUX1_REQ_TIM3_UP
  564. * @arg @ref LL_DMAMUX1_REQ_TIM3_TRIG
  565. * @arg @ref LL_DMAMUX1_REQ_TIM4_CH1
  566. * @arg @ref LL_DMAMUX1_REQ_TIM4_CH2
  567. * @arg @ref LL_DMAMUX1_REQ_TIM4_CH3
  568. * @arg @ref LL_DMAMUX1_REQ_TIM4_UP
  569. * @arg @ref LL_DMAMUX1_REQ_I2C1_RX
  570. * @arg @ref LL_DMAMUX1_REQ_I2C1_TX
  571. * @arg @ref LL_DMAMUX1_REQ_I2C2_RX
  572. * @arg @ref LL_DMAMUX1_REQ_I2C2_TX
  573. * @arg @ref LL_DMAMUX1_REQ_SPI1_RX
  574. * @arg @ref LL_DMAMUX1_REQ_SPI1_TX
  575. * @arg @ref LL_DMAMUX1_REQ_SPI2_RX
  576. * @arg @ref LL_DMAMUX1_REQ_SPI2_TX
  577. * @arg @ref LL_DMAMUX1_REQ_USART1_RX
  578. * @arg @ref LL_DMAMUX1_REQ_USART1_TX
  579. * @arg @ref LL_DMAMUX1_REQ_USART2_RX
  580. * @arg @ref LL_DMAMUX1_REQ_USART2_TX
  581. * @arg @ref LL_DMAMUX1_REQ_USART3_RX
  582. * @arg @ref LL_DMAMUX1_REQ_USART3_TX
  583. * @arg @ref LL_DMAMUX1_REQ_TIM8_CH1
  584. * @arg @ref LL_DMAMUX1_REQ_TIM8_CH2
  585. * @arg @ref LL_DMAMUX1_REQ_TIM8_CH3
  586. * @arg @ref LL_DMAMUX1_REQ_TIM8_CH4
  587. * @arg @ref LL_DMAMUX1_REQ_TIM8_UP
  588. * @arg @ref LL_DMAMUX1_REQ_TIM8_TRIG
  589. * @arg @ref LL_DMAMUX1_REQ_TIM8_COM
  590. * @arg @ref LL_DMAMUX1_REQ_TIM5_CH1
  591. * @arg @ref LL_DMAMUX1_REQ_TIM5_CH2
  592. * @arg @ref LL_DMAMUX1_REQ_TIM5_CH3
  593. * @arg @ref LL_DMAMUX1_REQ_TIM5_CH4
  594. * @arg @ref LL_DMAMUX1_REQ_TIM5_UP
  595. * @arg @ref LL_DMAMUX1_REQ_TIM5_TRIG
  596. * @arg @ref LL_DMAMUX1_REQ_SPI3_RX
  597. * @arg @ref LL_DMAMUX1_REQ_SPI3_TX
  598. * @arg @ref LL_DMAMUX1_REQ_UART4_RX
  599. * @arg @ref LL_DMAMUX1_REQ_UART4_TX
  600. * @arg @ref LL_DMAMUX1_REQ_UART5_RX
  601. * @arg @ref LL_DMAMUX1_REQ_UART5_TX
  602. * @arg @ref LL_DMAMUX1_REQ_DAC1_CH1
  603. * @arg @ref LL_DMAMUX1_REQ_DAC1_CH2
  604. * @arg @ref LL_DMAMUX1_REQ_TIM6_UP
  605. * @arg @ref LL_DMAMUX1_REQ_TIM7_UP
  606. * @arg @ref LL_DMAMUX1_REQ_USART6_RX
  607. * @arg @ref LL_DMAMUX1_REQ_USART6_TX
  608. * @arg @ref LL_DMAMUX1_REQ_I2C3_RX
  609. * @arg @ref LL_DMAMUX1_REQ_I2C3_TX
  610. * @arg @ref LL_DMAMUX1_REQ_DCMI_PSSI (*)
  611. * @arg @ref LL_DMAMUX1_REQ_CRYP_IN
  612. * @arg @ref LL_DMAMUX1_REQ_CRYP_OUT
  613. * @arg @ref LL_DMAMUX1_REQ_HASH_IN
  614. * @arg @ref LL_DMAMUX1_REQ_UART7_RX
  615. * @arg @ref LL_DMAMUX1_REQ_UART7_TX
  616. * @arg @ref LL_DMAMUX1_REQ_UART8_RX
  617. * @arg @ref LL_DMAMUX1_REQ_UART8_TX
  618. * @arg @ref LL_DMAMUX1_REQ_SPI4_RX
  619. * @arg @ref LL_DMAMUX1_REQ_SPI4_TX
  620. * @arg @ref LL_DMAMUX1_REQ_SPI5_RX
  621. * @arg @ref LL_DMAMUX1_REQ_SPI5_TX
  622. * @arg @ref LL_DMAMUX1_REQ_SAI1_A
  623. * @arg @ref LL_DMAMUX1_REQ_SAI1_B
  624. * @arg @ref LL_DMAMUX1_REQ_SAI2_A (*)
  625. * @arg @ref LL_DMAMUX1_REQ_SAI2_B (*)
  626. * @arg @ref LL_DMAMUX1_REQ_SWPMI_RX
  627. * @arg @ref LL_DMAMUX1_REQ_SWPMI_TX
  628. * @arg @ref LL_DMAMUX1_REQ_SPDIF_RX_DT
  629. * @arg @ref LL_DMAMUX1_REQ_SPDIF_RX_CS
  630. * @arg @ref LL_DMAMUX1_REQ_HRTIM_MASTER (*)
  631. * @arg @ref LL_DMAMUX1_REQ_HRTIM_TIMER_A (*)
  632. * @arg @ref LL_DMAMUX1_REQ_HRTIM_TIMER_B (*)
  633. * @arg @ref LL_DMAMUX1_REQ_HRTIM_TIMER_C (*)
  634. * @arg @ref LL_DMAMUX1_REQ_HRTIM_TIMER_D (*)
  635. * @arg @ref LL_DMAMUX1_REQ_HRTIM_TIMER_E (*)
  636. * @arg @ref LL_DMAMUX1_REQ_DFSDM1_FLT0
  637. * @arg @ref LL_DMAMUX1_REQ_DFSDM1_FLT1
  638. * @arg @ref LL_DMAMUX1_REQ_DFSDM1_FLT2
  639. * @arg @ref LL_DMAMUX1_REQ_DFSDM1_FLT3
  640. * @arg @ref LL_DMAMUX1_REQ_TIM15_CH1
  641. * @arg @ref LL_DMAMUX1_REQ_TIM15_UP
  642. * @arg @ref LL_DMAMUX1_REQ_TIM15_TRIG
  643. * @arg @ref LL_DMAMUX1_REQ_TIM15_COM
  644. * @arg @ref LL_DMAMUX1_REQ_TIM16_CH1
  645. * @arg @ref LL_DMAMUX1_REQ_TIM16_UP
  646. * @arg @ref LL_DMAMUX1_REQ_TIM17_CH1
  647. * @arg @ref LL_DMAMUX1_REQ_TIM17_UP
  648. * @arg @ref LL_DMAMUX1_REQ_SAI3_A (*)
  649. * @arg @ref LL_DMAMUX1_REQ_SAI3_B (*)
  650. * @arg @ref LL_DMAMUX1_REQ_ADC3 (*)
  651. * @arg @ref LL_DMAMUX1_REQ_UART9_RX (*)
  652. * @arg @ref LL_DMAMUX1_REQ_UART9_TX (*)
  653. * @arg @ref LL_DMAMUX1_REQ_USART10_RX (*)
  654. * @arg @ref LL_DMAMUX1_REQ_USART10_TX (*)
  655. * @arg @ref LL_DMAMUX1_REQ_FMAC_READ (*)
  656. * @arg @ref LL_DMAMUX1_REQ_FMAC_WRITE (*)
  657. * @arg @ref LL_DMAMUX1_REQ_CORDIC_READ (*)
  658. * @arg @ref LL_DMAMUX1_REQ_CORDIC_WRITE(*)
  659. * @arg @ref LL_DMAMUX1_REQ_I2C5_RX (*)
  660. * @arg @ref LL_DMAMUX1_REQ_I2C5_TX (*)
  661. * @arg @ref LL_DMAMUX1_REQ_TIM23_CH1 (*)
  662. * @arg @ref LL_DMAMUX1_REQ_TIM23_CH2 (*)
  663. * @arg @ref LL_DMAMUX1_REQ_TIM23_CH3 (*)
  664. * @arg @ref LL_DMAMUX1_REQ_TIM23_CH4 (*)
  665. * @arg @ref LL_DMAMUX1_REQ_TIM23_UP (*)
  666. * @arg @ref LL_DMAMUX1_REQ_TIM23_TRIG (*)
  667. * @arg @ref LL_DMAMUX1_REQ_TIM24_CH1 (*)
  668. * @arg @ref LL_DMAMUX1_REQ_TIM24_CH2 (*)
  669. * @arg @ref LL_DMAMUX1_REQ_TIM24_CH3 (*)
  670. * @arg @ref LL_DMAMUX1_REQ_TIM24_CH4 (*)
  671. * @arg @ref LL_DMAMUX1_REQ_TIM24_UP (*)
  672. * @arg @ref LL_DMAMUX1_REQ_TIM24_TRIG (*)
  673. * @arg @ref LL_DMAMUX2_REQ_MEM2MEM
  674. * @arg @ref LL_DMAMUX2_REQ_GENERATOR0
  675. * @arg @ref LL_DMAMUX2_REQ_GENERATOR1
  676. * @arg @ref LL_DMAMUX2_REQ_GENERATOR2
  677. * @arg @ref LL_DMAMUX2_REQ_GENERATOR3
  678. * @arg @ref LL_DMAMUX2_REQ_GENERATOR4
  679. * @arg @ref LL_DMAMUX2_REQ_GENERATOR5
  680. * @arg @ref LL_DMAMUX2_REQ_GENERATOR6
  681. * @arg @ref LL_DMAMUX2_REQ_GENERATOR7
  682. * @arg @ref LL_DMAMUX2_REQ_LPUART1_RX
  683. * @arg @ref LL_DMAMUX2_REQ_LPUART1_TX
  684. * @arg @ref LL_DMAMUX2_REQ_SPI6_RX
  685. * @arg @ref LL_DMAMUX2_REQ_SPI6_TX
  686. * @arg @ref LL_DMAMUX2_REQ_I2C4_RX
  687. * @arg @ref LL_DMAMUX2_REQ_I2C4_TX
  688. * @arg @ref LL_DMAMUX2_REQ_SAI4_A (*)
  689. * @arg @ref LL_DMAMUX2_REQ_SAI4_B (*)
  690. * @arg @ref LL_DMAMUX2_REQ_ADC3 (*)
  691. * @arg @ref LL_DMAMUX2_REQ_DAC2_CH1 (*)
  692. * @arg @ref LL_DMAMUX2_REQ_DFSDM2_FLT0 (*)
  693. *
  694. * @note (*) Availability depends on devices.
  695. * @retval None
  696. */
  697. __STATIC_INLINE void LL_DMAMUX_SetRequestID(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel, uint32_t Request)
  698. {
  699. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  700. MODIFY_REG(((DMAMUX_Channel_TypeDef *)(dmamux_base_addr + (DMAMUX_CCR_SIZE * (Channel))))->CCR, DMAMUX_CxCR_DMAREQ_ID, Request);
  701. }
  702. /**
  703. * @brief Get DMAMUX request ID for DMAMUX Channel x.
  704. * @note DMAMUX1 channel 0 to 7 are mapped to DMA1 channel 0 to 7.
  705. * DMAMUX1 channel 8 to 15 are mapped to DMA2 channel 0 to 7.
  706. * DMAMUX2 channel 0 to 7 are mapped to BDMA channel 0 to 7.
  707. * @rmtoll CxCR DMAREQ_ID LL_DMAMUX_GetRequestID
  708. * @param DMAMUXx DMAMUXx Instance
  709. * @param Channel This parameter can be one of the following values:
  710. * @arg @ref LL_DMAMUX_CHANNEL_0
  711. * @arg @ref LL_DMAMUX_CHANNEL_1
  712. * @arg @ref LL_DMAMUX_CHANNEL_2
  713. * @arg @ref LL_DMAMUX_CHANNEL_3
  714. * @arg @ref LL_DMAMUX_CHANNEL_4
  715. * @arg @ref LL_DMAMUX_CHANNEL_5
  716. * @arg @ref LL_DMAMUX_CHANNEL_6
  717. * @arg @ref LL_DMAMUX_CHANNEL_7
  718. * @arg @ref LL_DMAMUX_CHANNEL_8
  719. * @arg @ref LL_DMAMUX_CHANNEL_9
  720. * @arg @ref LL_DMAMUX_CHANNEL_10
  721. * @arg @ref LL_DMAMUX_CHANNEL_11
  722. * @arg @ref LL_DMAMUX_CHANNEL_12
  723. * @arg @ref LL_DMAMUX_CHANNEL_13
  724. * @arg @ref LL_DMAMUX_CHANNEL_14
  725. * @arg @ref LL_DMAMUX_CHANNEL_15
  726. * @retval Returned value can be one of the following values:
  727. * @arg @ref LL_DMAMUX1_REQ_MEM2MEM
  728. * @arg @ref LL_DMAMUX1_REQ_GENERATOR0
  729. * @arg @ref LL_DMAMUX1_REQ_GENERATOR1
  730. * @arg @ref LL_DMAMUX1_REQ_GENERATOR2
  731. * @arg @ref LL_DMAMUX1_REQ_GENERATOR3
  732. * @arg @ref LL_DMAMUX1_REQ_GENERATOR4
  733. * @arg @ref LL_DMAMUX1_REQ_GENERATOR5
  734. * @arg @ref LL_DMAMUX1_REQ_GENERATOR6
  735. * @arg @ref LL_DMAMUX1_REQ_GENERATOR7
  736. * @arg @ref LL_DMAMUX1_REQ_ADC1
  737. * @arg @ref LL_DMAMUX1_REQ_ADC2
  738. * @arg @ref LL_DMAMUX1_REQ_TIM1_CH1
  739. * @arg @ref LL_DMAMUX1_REQ_TIM1_CH2
  740. * @arg @ref LL_DMAMUX1_REQ_TIM1_CH3
  741. * @arg @ref LL_DMAMUX1_REQ_TIM1_CH4
  742. * @arg @ref LL_DMAMUX1_REQ_TIM1_UP
  743. * @arg @ref LL_DMAMUX1_REQ_TIM1_TRIG
  744. * @arg @ref LL_DMAMUX1_REQ_TIM1_COM
  745. * @arg @ref LL_DMAMUX1_REQ_TIM2_CH1
  746. * @arg @ref LL_DMAMUX1_REQ_TIM2_CH2
  747. * @arg @ref LL_DMAMUX1_REQ_TIM2_CH3
  748. * @arg @ref LL_DMAMUX1_REQ_TIM2_CH4
  749. * @arg @ref LL_DMAMUX1_REQ_TIM2_UP
  750. * @arg @ref LL_DMAMUX1_REQ_TIM3_CH1
  751. * @arg @ref LL_DMAMUX1_REQ_TIM3_CH2
  752. * @arg @ref LL_DMAMUX1_REQ_TIM3_CH3
  753. * @arg @ref LL_DMAMUX1_REQ_TIM3_CH4
  754. * @arg @ref LL_DMAMUX1_REQ_TIM3_UP
  755. * @arg @ref LL_DMAMUX1_REQ_TIM3_TRIG
  756. * @arg @ref LL_DMAMUX1_REQ_TIM4_CH1
  757. * @arg @ref LL_DMAMUX1_REQ_TIM4_CH2
  758. * @arg @ref LL_DMAMUX1_REQ_TIM4_CH3
  759. * @arg @ref LL_DMAMUX1_REQ_TIM4_UP
  760. * @arg @ref LL_DMAMUX1_REQ_I2C1_RX
  761. * @arg @ref LL_DMAMUX1_REQ_I2C1_TX
  762. * @arg @ref LL_DMAMUX1_REQ_I2C2_RX
  763. * @arg @ref LL_DMAMUX1_REQ_I2C2_TX
  764. * @arg @ref LL_DMAMUX1_REQ_SPI1_RX
  765. * @arg @ref LL_DMAMUX1_REQ_SPI1_TX
  766. * @arg @ref LL_DMAMUX1_REQ_SPI2_RX
  767. * @arg @ref LL_DMAMUX1_REQ_SPI2_TX
  768. * @arg @ref LL_DMAMUX1_REQ_USART1_RX
  769. * @arg @ref LL_DMAMUX1_REQ_USART1_TX
  770. * @arg @ref LL_DMAMUX1_REQ_USART2_RX
  771. * @arg @ref LL_DMAMUX1_REQ_USART2_TX
  772. * @arg @ref LL_DMAMUX1_REQ_USART3_RX
  773. * @arg @ref LL_DMAMUX1_REQ_USART3_TX
  774. * @arg @ref LL_DMAMUX1_REQ_TIM8_CH1
  775. * @arg @ref LL_DMAMUX1_REQ_TIM8_CH2
  776. * @arg @ref LL_DMAMUX1_REQ_TIM8_CH3
  777. * @arg @ref LL_DMAMUX1_REQ_TIM8_CH4
  778. * @arg @ref LL_DMAMUX1_REQ_TIM8_UP
  779. * @arg @ref LL_DMAMUX1_REQ_TIM8_TRIG
  780. * @arg @ref LL_DMAMUX1_REQ_TIM8_COM
  781. * @arg @ref LL_DMAMUX1_REQ_TIM5_CH1
  782. * @arg @ref LL_DMAMUX1_REQ_TIM5_CH2
  783. * @arg @ref LL_DMAMUX1_REQ_TIM5_CH3
  784. * @arg @ref LL_DMAMUX1_REQ_TIM5_CH4
  785. * @arg @ref LL_DMAMUX1_REQ_TIM5_UP
  786. * @arg @ref LL_DMAMUX1_REQ_TIM5_TRIG
  787. * @arg @ref LL_DMAMUX1_REQ_SPI3_RX
  788. * @arg @ref LL_DMAMUX1_REQ_SPI3_TX
  789. * @arg @ref LL_DMAMUX1_REQ_UART4_RX
  790. * @arg @ref LL_DMAMUX1_REQ_UART4_TX
  791. * @arg @ref LL_DMAMUX1_REQ_UART5_RX
  792. * @arg @ref LL_DMAMUX1_REQ_UART5_TX
  793. * @arg @ref LL_DMAMUX1_REQ_DAC1_CH1
  794. * @arg @ref LL_DMAMUX1_REQ_DAC1_CH2
  795. * @arg @ref LL_DMAMUX1_REQ_TIM6_UP
  796. * @arg @ref LL_DMAMUX1_REQ_TIM7_UP
  797. * @arg @ref LL_DMAMUX1_REQ_USART6_RX
  798. * @arg @ref LL_DMAMUX1_REQ_USART6_TX
  799. * @arg @ref LL_DMAMUX1_REQ_I2C3_RX
  800. * @arg @ref LL_DMAMUX1_REQ_I2C3_TX
  801. * @arg @ref LL_DMAMUX1_REQ_DCMI_PSSI (*)
  802. * @arg @ref LL_DMAMUX1_REQ_CRYP_IN
  803. * @arg @ref LL_DMAMUX1_REQ_CRYP_OUT
  804. * @arg @ref LL_DMAMUX1_REQ_HASH_IN
  805. * @arg @ref LL_DMAMUX1_REQ_UART7_RX
  806. * @arg @ref LL_DMAMUX1_REQ_UART7_TX
  807. * @arg @ref LL_DMAMUX1_REQ_UART8_RX
  808. * @arg @ref LL_DMAMUX1_REQ_UART8_TX
  809. * @arg @ref LL_DMAMUX1_REQ_SPI4_RX
  810. * @arg @ref LL_DMAMUX1_REQ_SPI4_TX
  811. * @arg @ref LL_DMAMUX1_REQ_SPI5_RX
  812. * @arg @ref LL_DMAMUX1_REQ_SPI5_TX
  813. * @arg @ref LL_DMAMUX1_REQ_SAI1_A
  814. * @arg @ref LL_DMAMUX1_REQ_SAI1_B
  815. * @arg @ref LL_DMAMUX1_REQ_SAI2_A (*)
  816. * @arg @ref LL_DMAMUX1_REQ_SAI2_B (*)
  817. * @arg @ref LL_DMAMUX1_REQ_SWPMI_RX
  818. * @arg @ref LL_DMAMUX1_REQ_SWPMI_TX
  819. * @arg @ref LL_DMAMUX1_REQ_SPDIF_RX_DT
  820. * @arg @ref LL_DMAMUX1_REQ_SPDIF_RX_CS
  821. * @arg @ref LL_DMAMUX1_REQ_HRTIM_MASTER (*)
  822. * @arg @ref LL_DMAMUX1_REQ_HRTIM_TIMER_A (*)
  823. * @arg @ref LL_DMAMUX1_REQ_HRTIM_TIMER_B (*)
  824. * @arg @ref LL_DMAMUX1_REQ_HRTIM_TIMER_C (*)
  825. * @arg @ref LL_DMAMUX1_REQ_HRTIM_TIMER_D (*)
  826. * @arg @ref LL_DMAMUX1_REQ_HRTIM_TIMER_E (*)
  827. * @arg @ref LL_DMAMUX1_REQ_DFSDM1_FLT0
  828. * @arg @ref LL_DMAMUX1_REQ_DFSDM1_FLT1
  829. * @arg @ref LL_DMAMUX1_REQ_DFSDM1_FLT2
  830. * @arg @ref LL_DMAMUX1_REQ_DFSDM1_FLT3
  831. * @arg @ref LL_DMAMUX1_REQ_TIM15_CH1
  832. * @arg @ref LL_DMAMUX1_REQ_TIM15_UP
  833. * @arg @ref LL_DMAMUX1_REQ_TIM15_TRIG
  834. * @arg @ref LL_DMAMUX1_REQ_TIM15_COM
  835. * @arg @ref LL_DMAMUX1_REQ_TIM16_CH1
  836. * @arg @ref LL_DMAMUX1_REQ_TIM16_UP
  837. * @arg @ref LL_DMAMUX1_REQ_TIM17_CH1
  838. * @arg @ref LL_DMAMUX1_REQ_TIM17_UP
  839. * @arg @ref LL_DMAMUX1_REQ_SAI3_A (*)
  840. * @arg @ref LL_DMAMUX1_REQ_SAI3_B (*)
  841. * @arg @ref LL_DMAMUX1_REQ_ADC3 (*)
  842. * @arg @ref LL_DMAMUX1_REQ_UART9_RX (*)
  843. * @arg @ref LL_DMAMUX1_REQ_UART9_TX (*)
  844. * @arg @ref LL_DMAMUX1_REQ_USART10_RX (*)
  845. * @arg @ref LL_DMAMUX1_REQ_USART10_TX (*)
  846. * @arg @ref LL_DMAMUX1_REQ_FMAC_READ (*)
  847. * @arg @ref LL_DMAMUX1_REQ_FMAC_WRITE (*)
  848. * @arg @ref LL_DMAMUX1_REQ_CORDIC_READ (*)
  849. * @arg @ref LL_DMAMUX1_REQ_CORDIC_WRITE(*)
  850. * @arg @ref LL_DMAMUX1_REQ_I2C5_RX (*)
  851. * @arg @ref LL_DMAMUX1_REQ_I2C5_TX (*)
  852. * @arg @ref LL_DMAMUX1_REQ_TIM23_CH1 (*)
  853. * @arg @ref LL_DMAMUX1_REQ_TIM23_CH2 (*)
  854. * @arg @ref LL_DMAMUX1_REQ_TIM23_CH3 (*)
  855. * @arg @ref LL_DMAMUX1_REQ_TIM23_CH4 (*)
  856. * @arg @ref LL_DMAMUX1_REQ_TIM23_UP (*)
  857. * @arg @ref LL_DMAMUX1_REQ_TIM23_TRIG (*)
  858. * @arg @ref LL_DMAMUX1_REQ_TIM24_CH1 (*)
  859. * @arg @ref LL_DMAMUX1_REQ_TIM24_CH2 (*)
  860. * @arg @ref LL_DMAMUX1_REQ_TIM24_CH3 (*)
  861. * @arg @ref LL_DMAMUX1_REQ_TIM24_CH4 (*)
  862. * @arg @ref LL_DMAMUX1_REQ_TIM24_UP (*)
  863. * @arg @ref LL_DMAMUX1_REQ_TIM24_TRIG (*)
  864. * @arg @ref LL_DMAMUX2_REQ_MEM2MEM
  865. * @arg @ref LL_DMAMUX2_REQ_GENERATOR0
  866. * @arg @ref LL_DMAMUX2_REQ_GENERATOR1
  867. * @arg @ref LL_DMAMUX2_REQ_GENERATOR2
  868. * @arg @ref LL_DMAMUX2_REQ_GENERATOR3
  869. * @arg @ref LL_DMAMUX2_REQ_GENERATOR4
  870. * @arg @ref LL_DMAMUX2_REQ_GENERATOR5
  871. * @arg @ref LL_DMAMUX2_REQ_GENERATOR6
  872. * @arg @ref LL_DMAMUX2_REQ_GENERATOR7
  873. * @arg @ref LL_DMAMUX2_REQ_LPUART1_RX
  874. * @arg @ref LL_DMAMUX2_REQ_LPUART1_TX
  875. * @arg @ref LL_DMAMUX2_REQ_SPI6_RX
  876. * @arg @ref LL_DMAMUX2_REQ_SPI6_TX
  877. * @arg @ref LL_DMAMUX2_REQ_I2C4_RX
  878. * @arg @ref LL_DMAMUX2_REQ_I2C4_TX
  879. * @arg @ref LL_DMAMUX2_REQ_SAI4_A (*)
  880. * @arg @ref LL_DMAMUX2_REQ_SAI4_B (*)
  881. * @arg @ref LL_DMAMUX2_REQ_ADC3 (*)
  882. * @arg @ref LL_DMAMUX2_REQ_DAC2_CH1 (*)
  883. * @arg @ref LL_DMAMUX2_REQ_DFSDM2_FLT0 (*)
  884. *
  885. * @note (*) Availability depends on devices.
  886. * @retval None
  887. */
  888. __STATIC_INLINE uint32_t LL_DMAMUX_GetRequestID(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
  889. {
  890. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  891. return (uint32_t)(READ_BIT(((DMAMUX_Channel_TypeDef *)(dmamux_base_addr + (DMAMUX_CCR_SIZE * (Channel))))->CCR, DMAMUX_CxCR_DMAREQ_ID));
  892. }
  893. /**
  894. * @brief Set the number of DMA request that will be autorized after a synchronization event and/or the number of DMA request needed to generate an event.
  895. * @rmtoll CxCR NBREQ LL_DMAMUX_SetSyncRequestNb
  896. * @param DMAMUXx DMAMUXx Instance
  897. * @param Channel This parameter can be one of the following values:
  898. * @arg @ref LL_DMAMUX_CHANNEL_0
  899. * @arg @ref LL_DMAMUX_CHANNEL_1
  900. * @arg @ref LL_DMAMUX_CHANNEL_2
  901. * @arg @ref LL_DMAMUX_CHANNEL_3
  902. * @arg @ref LL_DMAMUX_CHANNEL_4
  903. * @arg @ref LL_DMAMUX_CHANNEL_5
  904. * @arg @ref LL_DMAMUX_CHANNEL_6
  905. * @arg @ref LL_DMAMUX_CHANNEL_7
  906. * @arg @ref LL_DMAMUX_CHANNEL_8
  907. * @arg @ref LL_DMAMUX_CHANNEL_9
  908. * @arg @ref LL_DMAMUX_CHANNEL_10
  909. * @arg @ref LL_DMAMUX_CHANNEL_11
  910. * @arg @ref LL_DMAMUX_CHANNEL_12
  911. * @arg @ref LL_DMAMUX_CHANNEL_13
  912. * @arg @ref LL_DMAMUX_CHANNEL_14
  913. * @arg @ref LL_DMAMUX_CHANNEL_15
  914. * @param RequestNb This parameter must be a value between Min_Data = 1 and Max_Data = 32.
  915. * @retval None
  916. */
  917. __STATIC_INLINE void LL_DMAMUX_SetSyncRequestNb(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel, uint32_t RequestNb)
  918. {
  919. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  920. MODIFY_REG(((DMAMUX_Channel_TypeDef *)(dmamux_base_addr + (DMAMUX_CCR_SIZE * (Channel))))->CCR, DMAMUX_CxCR_NBREQ, (RequestNb - 1U) << DMAMUX_CxCR_NBREQ_Pos);
  921. }
  922. /**
  923. * @brief Get the number of DMA request that will be autorized after a synchronization event and/or the number of DMA request needed to generate an event.
  924. * @rmtoll CxCR NBREQ LL_DMAMUX_GetSyncRequestNb
  925. * @param DMAMUXx DMAMUXx Instance
  926. * @param Channel This parameter can be one of the following values:
  927. * @arg @ref LL_DMAMUX_CHANNEL_0
  928. * @arg @ref LL_DMAMUX_CHANNEL_1
  929. * @arg @ref LL_DMAMUX_CHANNEL_2
  930. * @arg @ref LL_DMAMUX_CHANNEL_3
  931. * @arg @ref LL_DMAMUX_CHANNEL_4
  932. * @arg @ref LL_DMAMUX_CHANNEL_5
  933. * @arg @ref LL_DMAMUX_CHANNEL_6
  934. * @arg @ref LL_DMAMUX_CHANNEL_7
  935. * @arg @ref LL_DMAMUX_CHANNEL_8
  936. * @arg @ref LL_DMAMUX_CHANNEL_9
  937. * @arg @ref LL_DMAMUX_CHANNEL_10
  938. * @arg @ref LL_DMAMUX_CHANNEL_11
  939. * @arg @ref LL_DMAMUX_CHANNEL_12
  940. * @arg @ref LL_DMAMUX_CHANNEL_13
  941. * @arg @ref LL_DMAMUX_CHANNEL_14
  942. * @arg @ref LL_DMAMUX_CHANNEL_15
  943. * @retval Between Min_Data = 1 and Max_Data = 32
  944. */
  945. __STATIC_INLINE uint32_t LL_DMAMUX_GetSyncRequestNb(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
  946. {
  947. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  948. return (uint32_t)((READ_BIT(((DMAMUX_Channel_TypeDef *)(dmamux_base_addr + (DMAMUX_CCR_SIZE * (Channel))))->CCR, DMAMUX_CxCR_NBREQ) >> DMAMUX_CxCR_NBREQ_Pos) + 1U);
  949. }
  950. /**
  951. * @brief Set the polarity of the signal on which the DMA request is synchronized.
  952. * @rmtoll CxCR SPOL LL_DMAMUX_SetSyncPolarity
  953. * @param DMAMUXx DMAMUXx Instance
  954. * @param Channel This parameter can be one of the following values:
  955. * @arg @ref LL_DMAMUX_CHANNEL_0
  956. * @arg @ref LL_DMAMUX_CHANNEL_1
  957. * @arg @ref LL_DMAMUX_CHANNEL_2
  958. * @arg @ref LL_DMAMUX_CHANNEL_3
  959. * @arg @ref LL_DMAMUX_CHANNEL_4
  960. * @arg @ref LL_DMAMUX_CHANNEL_5
  961. * @arg @ref LL_DMAMUX_CHANNEL_6
  962. * @arg @ref LL_DMAMUX_CHANNEL_7
  963. * @arg @ref LL_DMAMUX_CHANNEL_8
  964. * @arg @ref LL_DMAMUX_CHANNEL_9
  965. * @arg @ref LL_DMAMUX_CHANNEL_10
  966. * @arg @ref LL_DMAMUX_CHANNEL_11
  967. * @arg @ref LL_DMAMUX_CHANNEL_12
  968. * @arg @ref LL_DMAMUX_CHANNEL_13
  969. * @arg @ref LL_DMAMUX_CHANNEL_14
  970. * @arg @ref LL_DMAMUX_CHANNEL_15
  971. * @param Polarity This parameter can be one of the following values:
  972. * @arg @ref LL_DMAMUX_SYNC_NO_EVENT
  973. * @arg @ref LL_DMAMUX_SYNC_POL_RISING
  974. * @arg @ref LL_DMAMUX_SYNC_POL_FALLING
  975. * @arg @ref LL_DMAMUX_SYNC_POL_RISING_FALLING
  976. * @retval None
  977. */
  978. __STATIC_INLINE void LL_DMAMUX_SetSyncPolarity(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel, uint32_t Polarity)
  979. {
  980. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  981. MODIFY_REG(((DMAMUX_Channel_TypeDef *)(dmamux_base_addr + (DMAMUX_CCR_SIZE * (Channel))))->CCR, DMAMUX_CxCR_SPOL, Polarity);
  982. }
  983. /**
  984. * @brief Get the polarity of the signal on which the DMA request is synchronized.
  985. * @rmtoll CxCR SPOL LL_DMAMUX_GetSyncPolarity
  986. * @param DMAMUXx DMAMUXx Instance
  987. * @param Channel This parameter can be one of the following values:
  988. * @arg @ref LL_DMAMUX_CHANNEL_0
  989. * @arg @ref LL_DMAMUX_CHANNEL_1
  990. * @arg @ref LL_DMAMUX_CHANNEL_2
  991. * @arg @ref LL_DMAMUX_CHANNEL_3
  992. * @arg @ref LL_DMAMUX_CHANNEL_4
  993. * @arg @ref LL_DMAMUX_CHANNEL_5
  994. * @arg @ref LL_DMAMUX_CHANNEL_6
  995. * @arg @ref LL_DMAMUX_CHANNEL_7
  996. * @arg @ref LL_DMAMUX_CHANNEL_8
  997. * @arg @ref LL_DMAMUX_CHANNEL_9
  998. * @arg @ref LL_DMAMUX_CHANNEL_10
  999. * @arg @ref LL_DMAMUX_CHANNEL_11
  1000. * @arg @ref LL_DMAMUX_CHANNEL_12
  1001. * @arg @ref LL_DMAMUX_CHANNEL_13
  1002. * @arg @ref LL_DMAMUX_CHANNEL_14
  1003. * @arg @ref LL_DMAMUX_CHANNEL_15
  1004. * @retval Returned value can be one of the following values:
  1005. * @arg @ref LL_DMAMUX_SYNC_NO_EVENT
  1006. * @arg @ref LL_DMAMUX_SYNC_POL_RISING
  1007. * @arg @ref LL_DMAMUX_SYNC_POL_FALLING
  1008. * @arg @ref LL_DMAMUX_SYNC_POL_RISING_FALLING
  1009. */
  1010. __STATIC_INLINE uint32_t LL_DMAMUX_GetSyncPolarity(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
  1011. {
  1012. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1013. return (uint32_t)(READ_BIT(((DMAMUX_Channel_TypeDef *)(dmamux_base_addr + (DMAMUX_CCR_SIZE * (Channel))))->CCR, DMAMUX_CxCR_SPOL));
  1014. }
  1015. /**
  1016. * @brief Enable the Event Generation on DMAMUX channel x.
  1017. * @rmtoll CxCR EGE LL_DMAMUX_EnableEventGeneration
  1018. * @param DMAMUXx DMAMUXx Instance
  1019. * @param Channel This parameter can be one of the following values:
  1020. * @arg @ref LL_DMAMUX_CHANNEL_0
  1021. * @arg @ref LL_DMAMUX_CHANNEL_1
  1022. * @arg @ref LL_DMAMUX_CHANNEL_2
  1023. * @arg @ref LL_DMAMUX_CHANNEL_3
  1024. * @arg @ref LL_DMAMUX_CHANNEL_4
  1025. * @arg @ref LL_DMAMUX_CHANNEL_5
  1026. * @arg @ref LL_DMAMUX_CHANNEL_6
  1027. * @arg @ref LL_DMAMUX_CHANNEL_7
  1028. * @arg @ref LL_DMAMUX_CHANNEL_8
  1029. * @arg @ref LL_DMAMUX_CHANNEL_9
  1030. * @arg @ref LL_DMAMUX_CHANNEL_10
  1031. * @arg @ref LL_DMAMUX_CHANNEL_11
  1032. * @arg @ref LL_DMAMUX_CHANNEL_12
  1033. * @arg @ref LL_DMAMUX_CHANNEL_13
  1034. * @arg @ref LL_DMAMUX_CHANNEL_14
  1035. * @arg @ref LL_DMAMUX_CHANNEL_15
  1036. * @retval None
  1037. */
  1038. __STATIC_INLINE void LL_DMAMUX_EnableEventGeneration(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
  1039. {
  1040. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1041. SET_BIT(((DMAMUX_Channel_TypeDef *)(dmamux_base_addr + (DMAMUX_CCR_SIZE * (Channel))))->CCR, DMAMUX_CxCR_EGE);
  1042. }
  1043. /**
  1044. * @brief Disable the Event Generation on DMAMUX channel x.
  1045. * @rmtoll CxCR EGE LL_DMAMUX_DisableEventGeneration
  1046. * @param DMAMUXx DMAMUXx Instance
  1047. * @param Channel This parameter can be one of the following values:
  1048. * @arg @ref LL_DMAMUX_CHANNEL_0
  1049. * @arg @ref LL_DMAMUX_CHANNEL_1
  1050. * @arg @ref LL_DMAMUX_CHANNEL_2
  1051. * @arg @ref LL_DMAMUX_CHANNEL_3
  1052. * @arg @ref LL_DMAMUX_CHANNEL_4
  1053. * @arg @ref LL_DMAMUX_CHANNEL_5
  1054. * @arg @ref LL_DMAMUX_CHANNEL_6
  1055. * @arg @ref LL_DMAMUX_CHANNEL_7
  1056. * @arg @ref LL_DMAMUX_CHANNEL_8
  1057. * @arg @ref LL_DMAMUX_CHANNEL_9
  1058. * @arg @ref LL_DMAMUX_CHANNEL_10
  1059. * @arg @ref LL_DMAMUX_CHANNEL_11
  1060. * @arg @ref LL_DMAMUX_CHANNEL_12
  1061. * @arg @ref LL_DMAMUX_CHANNEL_13
  1062. * @arg @ref LL_DMAMUX_CHANNEL_14
  1063. * @arg @ref LL_DMAMUX_CHANNEL_15
  1064. * @retval None
  1065. */
  1066. __STATIC_INLINE void LL_DMAMUX_DisableEventGeneration(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
  1067. {
  1068. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1069. CLEAR_BIT(((DMAMUX_Channel_TypeDef *)(dmamux_base_addr + (DMAMUX_CCR_SIZE * (Channel))))->CCR, DMAMUX_CxCR_EGE);
  1070. }
  1071. /**
  1072. * @brief Check if the Event Generation on DMAMUX channel x is enabled or disabled.
  1073. * @rmtoll CxCR EGE LL_DMAMUX_IsEnabledEventGeneration
  1074. * @param DMAMUXx DMAMUXx Instance
  1075. * @param Channel This parameter can be one of the following values:
  1076. * @arg @ref LL_DMAMUX_CHANNEL_0
  1077. * @arg @ref LL_DMAMUX_CHANNEL_1
  1078. * @arg @ref LL_DMAMUX_CHANNEL_2
  1079. * @arg @ref LL_DMAMUX_CHANNEL_3
  1080. * @arg @ref LL_DMAMUX_CHANNEL_4
  1081. * @arg @ref LL_DMAMUX_CHANNEL_5
  1082. * @arg @ref LL_DMAMUX_CHANNEL_6
  1083. * @arg @ref LL_DMAMUX_CHANNEL_7
  1084. * @arg @ref LL_DMAMUX_CHANNEL_8
  1085. * @arg @ref LL_DMAMUX_CHANNEL_9
  1086. * @arg @ref LL_DMAMUX_CHANNEL_10
  1087. * @arg @ref LL_DMAMUX_CHANNEL_11
  1088. * @arg @ref LL_DMAMUX_CHANNEL_12
  1089. * @arg @ref LL_DMAMUX_CHANNEL_13
  1090. * @arg @ref LL_DMAMUX_CHANNEL_14
  1091. * @arg @ref LL_DMAMUX_CHANNEL_15
  1092. * @retval State of bit (1 or 0).
  1093. */
  1094. __STATIC_INLINE uint32_t LL_DMAMUX_IsEnabledEventGeneration(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
  1095. {
  1096. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1097. return ((READ_BIT(((DMAMUX_Channel_TypeDef *)(dmamux_base_addr + (DMAMUX_CCR_SIZE * (Channel))))->CCR, DMAMUX_CxCR_EGE) == (DMAMUX_CxCR_EGE)) ? 1UL : 0UL);
  1098. }
  1099. /**
  1100. * @brief Enable the synchronization mode.
  1101. * @rmtoll CxCR SE LL_DMAMUX_EnableSync
  1102. * @param DMAMUXx DMAMUXx Instance
  1103. * @param Channel This parameter can be one of the following values:
  1104. * @arg @ref LL_DMAMUX_CHANNEL_0
  1105. * @arg @ref LL_DMAMUX_CHANNEL_1
  1106. * @arg @ref LL_DMAMUX_CHANNEL_2
  1107. * @arg @ref LL_DMAMUX_CHANNEL_3
  1108. * @arg @ref LL_DMAMUX_CHANNEL_4
  1109. * @arg @ref LL_DMAMUX_CHANNEL_5
  1110. * @arg @ref LL_DMAMUX_CHANNEL_6
  1111. * @arg @ref LL_DMAMUX_CHANNEL_7
  1112. * @arg @ref LL_DMAMUX_CHANNEL_8
  1113. * @arg @ref LL_DMAMUX_CHANNEL_9
  1114. * @arg @ref LL_DMAMUX_CHANNEL_10
  1115. * @arg @ref LL_DMAMUX_CHANNEL_11
  1116. * @arg @ref LL_DMAMUX_CHANNEL_12
  1117. * @arg @ref LL_DMAMUX_CHANNEL_13
  1118. * @arg @ref LL_DMAMUX_CHANNEL_14
  1119. * @arg @ref LL_DMAMUX_CHANNEL_15
  1120. * @retval None
  1121. */
  1122. __STATIC_INLINE void LL_DMAMUX_EnableSync(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
  1123. {
  1124. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1125. SET_BIT(((DMAMUX_Channel_TypeDef *)(dmamux_base_addr + (DMAMUX_CCR_SIZE * (Channel))))->CCR, DMAMUX_CxCR_SE);
  1126. }
  1127. /**
  1128. * @brief Disable the synchronization mode.
  1129. * @rmtoll CxCR SE LL_DMAMUX_DisableSync
  1130. * @param DMAMUXx DMAMUXx Instance
  1131. * @param Channel This parameter can be one of the following values:
  1132. * @arg @ref LL_DMAMUX_CHANNEL_0
  1133. * @arg @ref LL_DMAMUX_CHANNEL_1
  1134. * @arg @ref LL_DMAMUX_CHANNEL_2
  1135. * @arg @ref LL_DMAMUX_CHANNEL_3
  1136. * @arg @ref LL_DMAMUX_CHANNEL_4
  1137. * @arg @ref LL_DMAMUX_CHANNEL_5
  1138. * @arg @ref LL_DMAMUX_CHANNEL_6
  1139. * @arg @ref LL_DMAMUX_CHANNEL_7
  1140. * @arg @ref LL_DMAMUX_CHANNEL_8
  1141. * @arg @ref LL_DMAMUX_CHANNEL_9
  1142. * @arg @ref LL_DMAMUX_CHANNEL_10
  1143. * @arg @ref LL_DMAMUX_CHANNEL_11
  1144. * @arg @ref LL_DMAMUX_CHANNEL_12
  1145. * @arg @ref LL_DMAMUX_CHANNEL_13
  1146. * @arg @ref LL_DMAMUX_CHANNEL_14
  1147. * @arg @ref LL_DMAMUX_CHANNEL_15
  1148. * @retval None
  1149. */
  1150. __STATIC_INLINE void LL_DMAMUX_DisableSync(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
  1151. {
  1152. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1153. CLEAR_BIT(((DMAMUX_Channel_TypeDef *)(dmamux_base_addr + (DMAMUX_CCR_SIZE * (Channel))))->CCR, DMAMUX_CxCR_SE);
  1154. }
  1155. /**
  1156. * @brief Check if the synchronization mode is enabled or disabled.
  1157. * @rmtoll CxCR SE LL_DMAMUX_IsEnabledSync
  1158. * @param DMAMUXx DMAMUXx Instance
  1159. * @param Channel This parameter can be one of the following values:
  1160. * @arg @ref LL_DMAMUX_CHANNEL_0
  1161. * @arg @ref LL_DMAMUX_CHANNEL_1
  1162. * @arg @ref LL_DMAMUX_CHANNEL_2
  1163. * @arg @ref LL_DMAMUX_CHANNEL_3
  1164. * @arg @ref LL_DMAMUX_CHANNEL_4
  1165. * @arg @ref LL_DMAMUX_CHANNEL_5
  1166. * @arg @ref LL_DMAMUX_CHANNEL_6
  1167. * @arg @ref LL_DMAMUX_CHANNEL_7
  1168. * @arg @ref LL_DMAMUX_CHANNEL_8
  1169. * @arg @ref LL_DMAMUX_CHANNEL_9
  1170. * @arg @ref LL_DMAMUX_CHANNEL_10
  1171. * @arg @ref LL_DMAMUX_CHANNEL_11
  1172. * @arg @ref LL_DMAMUX_CHANNEL_12
  1173. * @arg @ref LL_DMAMUX_CHANNEL_13
  1174. * @arg @ref LL_DMAMUX_CHANNEL_14
  1175. * @arg @ref LL_DMAMUX_CHANNEL_15
  1176. * @retval State of bit (1 or 0).
  1177. */
  1178. __STATIC_INLINE uint32_t LL_DMAMUX_IsEnabledSync(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
  1179. {
  1180. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1181. return ((READ_BIT(((DMAMUX_Channel_TypeDef *)(dmamux_base_addr + (DMAMUX_CCR_SIZE * (Channel))))->CCR, DMAMUX_CxCR_SE) == (DMAMUX_CxCR_SE)) ? 1UL : 0UL);
  1182. }
  1183. /**
  1184. * @brief Set DMAMUX synchronization ID on DMAMUX Channel x.
  1185. * @rmtoll CxCR SYNC_ID LL_DMAMUX_SetSyncID
  1186. * @param DMAMUXx DMAMUXx Instance
  1187. * @param Channel This parameter can be one of the following values:
  1188. * @arg @ref LL_DMAMUX_CHANNEL_0
  1189. * @arg @ref LL_DMAMUX_CHANNEL_1
  1190. * @arg @ref LL_DMAMUX_CHANNEL_2
  1191. * @arg @ref LL_DMAMUX_CHANNEL_3
  1192. * @arg @ref LL_DMAMUX_CHANNEL_4
  1193. * @arg @ref LL_DMAMUX_CHANNEL_5
  1194. * @arg @ref LL_DMAMUX_CHANNEL_6
  1195. * @arg @ref LL_DMAMUX_CHANNEL_7
  1196. * @arg @ref LL_DMAMUX_CHANNEL_8
  1197. * @arg @ref LL_DMAMUX_CHANNEL_9
  1198. * @arg @ref LL_DMAMUX_CHANNEL_10
  1199. * @arg @ref LL_DMAMUX_CHANNEL_11
  1200. * @arg @ref LL_DMAMUX_CHANNEL_12
  1201. * @arg @ref LL_DMAMUX_CHANNEL_13
  1202. * @arg @ref LL_DMAMUX_CHANNEL_14
  1203. * @arg @ref LL_DMAMUX_CHANNEL_15
  1204. * @param SyncID This parameter can be one of the following values:
  1205. * @arg @ref LL_DMAMUX1_SYNC_DMAMUX1_CH0_EVT
  1206. * @arg @ref LL_DMAMUX1_SYNC_DMAMUX1_CH1_EVT
  1207. * @arg @ref LL_DMAMUX1_SYNC_DMAMUX1_CH2_EVT
  1208. * @arg @ref LL_DMAMUX1_SYNC_LPTIM1_OUT
  1209. * @arg @ref LL_DMAMUX1_SYNC_LPTIM2_OUT
  1210. * @arg @ref LL_DMAMUX1_SYNC_LPTIM3_OUT
  1211. * @arg @ref LL_DMAMUX1_SYNC_EXTI0
  1212. * @arg @ref LL_DMAMUX1_SYNC_TIM12_TRGO
  1213. * @arg @ref LL_DMAMUX2_SYNC_DMAMUX2_CH0_EVT
  1214. * @arg @ref LL_DMAMUX2_SYNC_DMAMUX2_CH1_EVT
  1215. * @arg @ref LL_DMAMUX2_SYNC_DMAMUX2_CH2_EVT
  1216. * @arg @ref LL_DMAMUX2_SYNC_DMAMUX2_CH3_EVT
  1217. * @arg @ref LL_DMAMUX2_SYNC_DMAMUX2_CH4_EVT
  1218. * @arg @ref LL_DMAMUX2_SYNC_DMAMUX2_CH5_EVT
  1219. * @arg @ref LL_DMAMUX2_SYNC_LPUART1_RX_WKUP
  1220. * @arg @ref LL_DMAMUX2_SYNC_LPUART1_TX_WKUP
  1221. * @arg @ref LL_DMAMUX2_SYNC_LPTIM2_OUT
  1222. * @arg @ref LL_DMAMUX2_SYNC_LPTIM3_OUT
  1223. * @arg @ref LL_DMAMUX2_SYNC_I2C4_WKUP
  1224. * @arg @ref LL_DMAMUX2_SYNC_SPI6_WKUP
  1225. * @arg @ref LL_DMAMUX2_SYNC_COMP1_OUT
  1226. * @arg @ref LL_DMAMUX2_SYNC_RTC_WKUP
  1227. * @arg @ref LL_DMAMUX2_SYNC_EXTI0
  1228. * @arg @ref LL_DMAMUX2_SYNC_EXTI2
  1229. * @retval None
  1230. */
  1231. __STATIC_INLINE void LL_DMAMUX_SetSyncID(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel, uint32_t SyncID)
  1232. {
  1233. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1234. MODIFY_REG(((DMAMUX_Channel_TypeDef *)(dmamux_base_addr + (DMAMUX_CCR_SIZE * (Channel))))->CCR, DMAMUX_CxCR_SYNC_ID, SyncID);
  1235. }
  1236. /**
  1237. * @brief Get DMAMUX synchronization ID on DMAMUX Channel x.
  1238. * @rmtoll CxCR SYNC_ID LL_DMAMUX_GetSyncID
  1239. * @param DMAMUXx DMAMUXx Instance
  1240. * @param Channel This parameter can be one of the following values:
  1241. * @arg @ref LL_DMAMUX_CHANNEL_0
  1242. * @arg @ref LL_DMAMUX_CHANNEL_1
  1243. * @arg @ref LL_DMAMUX_CHANNEL_2
  1244. * @arg @ref LL_DMAMUX_CHANNEL_3
  1245. * @arg @ref LL_DMAMUX_CHANNEL_4
  1246. * @arg @ref LL_DMAMUX_CHANNEL_5
  1247. * @arg @ref LL_DMAMUX_CHANNEL_6
  1248. * @arg @ref LL_DMAMUX_CHANNEL_7
  1249. * @arg @ref LL_DMAMUX_CHANNEL_8
  1250. * @arg @ref LL_DMAMUX_CHANNEL_9
  1251. * @arg @ref LL_DMAMUX_CHANNEL_10
  1252. * @arg @ref LL_DMAMUX_CHANNEL_11
  1253. * @arg @ref LL_DMAMUX_CHANNEL_12
  1254. * @arg @ref LL_DMAMUX_CHANNEL_13
  1255. * @arg @ref LL_DMAMUX_CHANNEL_14
  1256. * @arg @ref LL_DMAMUX_CHANNEL_15
  1257. * @retval Returned value can be one of the following values:
  1258. * @arg @ref LL_DMAMUX1_SYNC_DMAMUX1_CH0_EVT
  1259. * @arg @ref LL_DMAMUX1_SYNC_DMAMUX1_CH1_EVT
  1260. * @arg @ref LL_DMAMUX1_SYNC_DMAMUX1_CH2_EVT
  1261. * @arg @ref LL_DMAMUX1_SYNC_LPTIM1_OUT
  1262. * @arg @ref LL_DMAMUX1_SYNC_LPTIM2_OUT
  1263. * @arg @ref LL_DMAMUX1_SYNC_LPTIM3_OUT
  1264. * @arg @ref LL_DMAMUX1_SYNC_EXTI0
  1265. * @arg @ref LL_DMAMUX1_SYNC_TIM12_TRGO
  1266. * @arg @ref LL_DMAMUX2_SYNC_DMAMUX2_CH0_EVT
  1267. * @arg @ref LL_DMAMUX2_SYNC_DMAMUX2_CH1_EVT
  1268. * @arg @ref LL_DMAMUX2_SYNC_DMAMUX2_CH2_EVT
  1269. * @arg @ref LL_DMAMUX2_SYNC_DMAMUX2_CH3_EVT
  1270. * @arg @ref LL_DMAMUX2_SYNC_DMAMUX2_CH4_EVT
  1271. * @arg @ref LL_DMAMUX2_SYNC_DMAMUX2_CH5_EVT
  1272. * @arg @ref LL_DMAMUX2_SYNC_LPUART1_RX_WKUP
  1273. * @arg @ref LL_DMAMUX2_SYNC_LPUART1_TX_WKUP
  1274. * @arg @ref LL_DMAMUX2_SYNC_LPTIM2_OUT
  1275. * @arg @ref LL_DMAMUX2_SYNC_LPTIM3_OUT
  1276. * @arg @ref LL_DMAMUX2_SYNC_I2C4_WKUP
  1277. * @arg @ref LL_DMAMUX2_SYNC_SPI6_WKUP
  1278. * @arg @ref LL_DMAMUX2_SYNC_COMP1_OUT
  1279. * @arg @ref LL_DMAMUX2_SYNC_RTC_WKUP
  1280. * @arg @ref LL_DMAMUX2_SYNC_EXTI0
  1281. * @arg @ref LL_DMAMUX2_SYNC_EXTI2
  1282. */
  1283. __STATIC_INLINE uint32_t LL_DMAMUX_GetSyncID(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
  1284. {
  1285. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1286. return (uint32_t)(READ_BIT(((DMAMUX_Channel_TypeDef *)(dmamux_base_addr + (DMAMUX_CCR_SIZE * (Channel))))->CCR, DMAMUX_CxCR_SYNC_ID));
  1287. }
  1288. /**
  1289. * @brief Enable the Request Generator.
  1290. * @rmtoll RGxCR GE LL_DMAMUX_EnableRequestGen
  1291. * @param DMAMUXx DMAMUXx Instance
  1292. * @param RequestGenChannel This parameter can be one of the following values:
  1293. * @arg @ref LL_DMAMUX_REQ_GEN_0
  1294. * @arg @ref LL_DMAMUX_REQ_GEN_1
  1295. * @arg @ref LL_DMAMUX_REQ_GEN_2
  1296. * @arg @ref LL_DMAMUX_REQ_GEN_3
  1297. * @arg @ref LL_DMAMUX_REQ_GEN_4
  1298. * @arg @ref LL_DMAMUX_REQ_GEN_5
  1299. * @arg @ref LL_DMAMUX_REQ_GEN_6
  1300. * @arg @ref LL_DMAMUX_REQ_GEN_7
  1301. * @retval None
  1302. */
  1303. __STATIC_INLINE void LL_DMAMUX_EnableRequestGen(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
  1304. {
  1305. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1306. SET_BIT(((DMAMUX_RequestGen_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_OFFSET + (DMAMUX_RGCR_SIZE * (RequestGenChannel))))->RGCR, DMAMUX_RGxCR_GE);
  1307. }
  1308. /**
  1309. * @brief Disable the Request Generator.
  1310. * @rmtoll RGxCR GE LL_DMAMUX_DisableRequestGen
  1311. * @param DMAMUXx DMAMUXx Instance
  1312. * @param RequestGenChannel This parameter can be one of the following values:
  1313. * @arg @ref LL_DMAMUX_REQ_GEN_0
  1314. * @arg @ref LL_DMAMUX_REQ_GEN_1
  1315. * @arg @ref LL_DMAMUX_REQ_GEN_2
  1316. * @arg @ref LL_DMAMUX_REQ_GEN_3
  1317. * @retval None
  1318. */
  1319. __STATIC_INLINE void LL_DMAMUX_DisableRequestGen(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
  1320. {
  1321. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1322. CLEAR_BIT(((DMAMUX_RequestGen_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_OFFSET + (DMAMUX_RGCR_SIZE * (RequestGenChannel))))->RGCR, DMAMUX_RGxCR_GE);
  1323. }
  1324. /**
  1325. * @brief Check if the Request Generator is enabled or disabled.
  1326. * @rmtoll RGxCR GE LL_DMAMUX_IsEnabledRequestGen
  1327. * @param DMAMUXx DMAMUXx Instance
  1328. * @param RequestGenChannel This parameter can be one of the following values:
  1329. * @arg @ref LL_DMAMUX_REQ_GEN_0
  1330. * @arg @ref LL_DMAMUX_REQ_GEN_1
  1331. * @arg @ref LL_DMAMUX_REQ_GEN_2
  1332. * @arg @ref LL_DMAMUX_REQ_GEN_3
  1333. * @arg @ref LL_DMAMUX_REQ_GEN_4
  1334. * @arg @ref LL_DMAMUX_REQ_GEN_5
  1335. * @arg @ref LL_DMAMUX_REQ_GEN_6
  1336. * @arg @ref LL_DMAMUX_REQ_GEN_7
  1337. * @retval State of bit (1 or 0).
  1338. */
  1339. __STATIC_INLINE uint32_t LL_DMAMUX_IsEnabledRequestGen(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
  1340. {
  1341. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1342. return ((READ_BIT(((DMAMUX_RequestGen_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_OFFSET + (DMAMUX_RGCR_SIZE * RequestGenChannel)))->RGCR, DMAMUX_RGxCR_GE) == (DMAMUX_RGxCR_GE)) ? 1UL : 0UL);
  1343. }
  1344. /**
  1345. * @brief Set the polarity of the signal on which the DMA request is generated.
  1346. * @rmtoll RGxCR GPOL LL_DMAMUX_SetRequestGenPolarity
  1347. * @param DMAMUXx DMAMUXx Instance
  1348. * @param RequestGenChannel This parameter can be one of the following values:
  1349. * @arg @ref LL_DMAMUX_REQ_GEN_0
  1350. * @arg @ref LL_DMAMUX_REQ_GEN_1
  1351. * @arg @ref LL_DMAMUX_REQ_GEN_2
  1352. * @arg @ref LL_DMAMUX_REQ_GEN_3
  1353. * @arg @ref LL_DMAMUX_REQ_GEN_4
  1354. * @arg @ref LL_DMAMUX_REQ_GEN_5
  1355. * @arg @ref LL_DMAMUX_REQ_GEN_6
  1356. * @arg @ref LL_DMAMUX_REQ_GEN_7
  1357. * @param Polarity This parameter can be one of the following values:
  1358. * @arg @ref LL_DMAMUX_REQ_GEN_NO_EVENT
  1359. * @arg @ref LL_DMAMUX_REQ_GEN_POL_RISING
  1360. * @arg @ref LL_DMAMUX_REQ_GEN_POL_FALLING
  1361. * @arg @ref LL_DMAMUX_REQ_GEN_POL_RISING_FALLING
  1362. * @retval None
  1363. */
  1364. __STATIC_INLINE void LL_DMAMUX_SetRequestGenPolarity(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel, uint32_t Polarity)
  1365. {
  1366. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1367. MODIFY_REG(((DMAMUX_RequestGen_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_OFFSET + (DMAMUX_RGCR_SIZE * RequestGenChannel)))->RGCR, DMAMUX_RGxCR_GPOL, Polarity);
  1368. }
  1369. /**
  1370. * @brief Get the polarity of the signal on which the DMA request is generated.
  1371. * @rmtoll RGxCR GPOL LL_DMAMUX_GetRequestGenPolarity
  1372. * @param DMAMUXx DMAMUXx Instance
  1373. * @param RequestGenChannel This parameter can be one of the following values:
  1374. * @arg @ref LL_DMAMUX_REQ_GEN_0
  1375. * @arg @ref LL_DMAMUX_REQ_GEN_1
  1376. * @arg @ref LL_DMAMUX_REQ_GEN_2
  1377. * @arg @ref LL_DMAMUX_REQ_GEN_3
  1378. * @arg @ref LL_DMAMUX_REQ_GEN_4
  1379. * @arg @ref LL_DMAMUX_REQ_GEN_5
  1380. * @arg @ref LL_DMAMUX_REQ_GEN_6
  1381. * @arg @ref LL_DMAMUX_REQ_GEN_7
  1382. * @retval Returned value can be one of the following values:
  1383. * @arg @ref LL_DMAMUX_REQ_GEN_NO_EVENT
  1384. * @arg @ref LL_DMAMUX_REQ_GEN_POL_RISING
  1385. * @arg @ref LL_DMAMUX_REQ_GEN_POL_FALLING
  1386. * @arg @ref LL_DMAMUX_REQ_GEN_POL_RISING_FALLING
  1387. */
  1388. __STATIC_INLINE uint32_t LL_DMAMUX_GetRequestGenPolarity(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
  1389. {
  1390. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1391. return (uint32_t)(READ_BIT(((DMAMUX_RequestGen_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_OFFSET + (DMAMUX_RGCR_SIZE * RequestGenChannel)))->RGCR, DMAMUX_RGxCR_GPOL));
  1392. }
  1393. /**
  1394. * @brief Set the number of DMA request that will be autorized after a generation event.
  1395. * @note This field can only be written when Generator is disabled.
  1396. * @rmtoll RGxCR GNBREQ LL_DMAMUX_SetGenRequestNb
  1397. * @param DMAMUXx DMAMUXx Instance
  1398. * @param RequestGenChannel This parameter can be one of the following values:
  1399. * @arg @ref LL_DMAMUX_REQ_GEN_0
  1400. * @arg @ref LL_DMAMUX_REQ_GEN_1
  1401. * @arg @ref LL_DMAMUX_REQ_GEN_2
  1402. * @arg @ref LL_DMAMUX_REQ_GEN_3
  1403. * @arg @ref LL_DMAMUX_REQ_GEN_4
  1404. * @arg @ref LL_DMAMUX_REQ_GEN_5
  1405. * @arg @ref LL_DMAMUX_REQ_GEN_6
  1406. * @arg @ref LL_DMAMUX_REQ_GEN_7
  1407. * @param RequestNb This parameter must be a value between Min_Data = 1 and Max_Data = 32.
  1408. * @retval None
  1409. */
  1410. __STATIC_INLINE void LL_DMAMUX_SetGenRequestNb(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel, uint32_t RequestNb)
  1411. {
  1412. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1413. MODIFY_REG(((DMAMUX_RequestGen_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_OFFSET + (DMAMUX_RGCR_SIZE * RequestGenChannel)))->RGCR, DMAMUX_RGxCR_GNBREQ, (RequestNb - 1U) << DMAMUX_RGxCR_GNBREQ_Pos);
  1414. }
  1415. /**
  1416. * @brief Get the number of DMA request that will be autorized after a generation event.
  1417. * @rmtoll RGxCR GNBREQ LL_DMAMUX_GetGenRequestNb
  1418. * @param DMAMUXx DMAMUXx Instance
  1419. * @param RequestGenChannel This parameter can be one of the following values:
  1420. * @arg @ref LL_DMAMUX_REQ_GEN_0
  1421. * @arg @ref LL_DMAMUX_REQ_GEN_1
  1422. * @arg @ref LL_DMAMUX_REQ_GEN_2
  1423. * @arg @ref LL_DMAMUX_REQ_GEN_3
  1424. * @arg @ref LL_DMAMUX_REQ_GEN_4
  1425. * @arg @ref LL_DMAMUX_REQ_GEN_5
  1426. * @arg @ref LL_DMAMUX_REQ_GEN_6
  1427. * @arg @ref LL_DMAMUX_REQ_GEN_7
  1428. * @retval Between Min_Data = 1 and Max_Data = 32
  1429. */
  1430. __STATIC_INLINE uint32_t LL_DMAMUX_GetGenRequestNb(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
  1431. {
  1432. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1433. return (uint32_t)((READ_BIT(((DMAMUX_RequestGen_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_OFFSET + (DMAMUX_RGCR_SIZE * RequestGenChannel)))->RGCR, DMAMUX_RGxCR_GNBREQ) >> DMAMUX_RGxCR_GNBREQ_Pos) + 1U);
  1434. }
  1435. /**
  1436. * @brief Set DMAMUX external Request Signal ID on DMAMUX Request Generation Trigger Event Channel x.
  1437. * @rmtoll RGxCR SIG_ID LL_DMAMUX_SetRequestSignalID
  1438. * @param DMAMUXx DMAMUXx Instance
  1439. * @param RequestGenChannel This parameter can be one of the following values:
  1440. * @arg @ref LL_DMAMUX_REQ_GEN_0
  1441. * @arg @ref LL_DMAMUX_REQ_GEN_1
  1442. * @arg @ref LL_DMAMUX_REQ_GEN_2
  1443. * @arg @ref LL_DMAMUX_REQ_GEN_3
  1444. * @arg @ref LL_DMAMUX_REQ_GEN_4
  1445. * @arg @ref LL_DMAMUX_REQ_GEN_5
  1446. * @arg @ref LL_DMAMUX_REQ_GEN_6
  1447. * @arg @ref LL_DMAMUX_REQ_GEN_7
  1448. * @param RequestSignalID This parameter can be one of the following values:
  1449. * @arg @ref LL_DMAMUX1_REQ_GEN_DMAMUX1_CH0_EVT
  1450. * @arg @ref LL_DMAMUX1_REQ_GEN_DMAMUX1_CH1_EVT
  1451. * @arg @ref LL_DMAMUX1_REQ_GEN_DMAMUX1_CH2_EVT
  1452. * @arg @ref LL_DMAMUX1_REQ_GEN_LPTIM1_OUT
  1453. * @arg @ref LL_DMAMUX1_REQ_GEN_LPTIM2_OUT
  1454. * @arg @ref LL_DMAMUX1_REQ_GEN_LPTIM3_OUT
  1455. * @arg @ref LL_DMAMUX1_REQ_GEN_EXTI0
  1456. * @arg @ref LL_DMAMUX1_REQ_GEN_TIM12_TRGO
  1457. * @arg @ref LL_DMAMUX2_REQ_GEN_DMAMUX2_CH0_EVT
  1458. * @arg @ref LL_DMAMUX2_REQ_GEN_DMAMUX2_CH1_EVT
  1459. * @arg @ref LL_DMAMUX2_REQ_GEN_DMAMUX2_CH2_EVT
  1460. * @arg @ref LL_DMAMUX2_REQ_GEN_DMAMUX2_CH3_EVT
  1461. * @arg @ref LL_DMAMUX2_REQ_GEN_DMAMUX2_CH4_EVT
  1462. * @arg @ref LL_DMAMUX2_REQ_GEN_DMAMUX2_CH5_EVT
  1463. * @arg @ref LL_DMAMUX2_REQ_GEN_DMAMUX2_CH6_EVT
  1464. * @arg @ref LL_DMAMUX2_REQ_GEN_LPUART1_RX_WKUP
  1465. * @arg @ref LL_DMAMUX2_REQ_GEN_LPUART1_TX_WKUP
  1466. * @arg @ref LL_DMAMUX2_REQ_GEN_LPTIM2_WKUP
  1467. * @arg @ref LL_DMAMUX2_REQ_GEN_LPTIM2_OUT
  1468. * @arg @ref LL_DMAMUX2_REQ_GEN_LPTIM3_WKUP
  1469. * @arg @ref LL_DMAMUX2_REQ_GEN_LPTIM3_OUT
  1470. * @arg @ref LL_DMAMUX2_REQ_GEN_LPTIM4_WKUP (*)
  1471. * @arg @ref LL_DMAMUX2_REQ_GEN_LPTIM5_WKUP (*)
  1472. * @arg @ref LL_DMAMUX2_REQ_GEN_I2C4_WKUP
  1473. * @arg @ref LL_DMAMUX2_REQ_GEN_SPI6_WKUP
  1474. * @arg @ref LL_DMAMUX2_REQ_GEN_COMP1_OUT
  1475. * @arg @ref LL_DMAMUX2_REQ_GEN_COMP2_OUT
  1476. * @arg @ref LL_DMAMUX2_REQ_GEN_RTC_WKUP
  1477. * @arg @ref LL_DMAMUX2_REQ_GEN_EXTI0
  1478. * @arg @ref LL_DMAMUX2_REQ_GEN_EXTI2
  1479. * @arg @ref LL_DMAMUX2_REQ_GEN_I2C4_IT_EVT
  1480. * @arg @ref LL_DMAMUX2_REQ_GEN_SPI6_IT
  1481. * @arg @ref LL_DMAMUX2_REQ_GEN_LPUART1_TX_IT
  1482. * @arg @ref LL_DMAMUX2_REQ_GEN_LPUART1_RX_IT
  1483. * @arg @ref LL_DMAMUX2_REQ_GEN_ADC3_IT (*)
  1484. * @arg @ref LL_DMAMUX2_REQ_GEN_ADC3_AWD1_OUT (*)
  1485. * @arg @ref LL_DMAMUX2_REQ_GEN_BDMA_CH0_IT
  1486. * @arg @ref LL_DMAMUX2_REQ_GEN_BDMA_CH1_IT
  1487. * @note (*) Availability depends on devices.
  1488. * @retval None
  1489. */
  1490. __STATIC_INLINE void LL_DMAMUX_SetRequestSignalID(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel, uint32_t RequestSignalID)
  1491. {
  1492. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1493. MODIFY_REG(((DMAMUX_RequestGen_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_OFFSET + (DMAMUX_RGCR_SIZE * RequestGenChannel)))->RGCR, DMAMUX_RGxCR_SIG_ID, RequestSignalID);
  1494. }
  1495. /**
  1496. * @brief Get DMAMUX external Request Signal ID set on DMAMUX Channel x.
  1497. * @rmtoll RGxCR SIG_ID LL_DMAMUX_GetRequestSignalID
  1498. * @param DMAMUXx DMAMUXx Instance
  1499. * @param RequestGenChannel This parameter can be one of the following values:
  1500. * @arg @ref LL_DMAMUX_REQ_GEN_0
  1501. * @arg @ref LL_DMAMUX_REQ_GEN_1
  1502. * @arg @ref LL_DMAMUX_REQ_GEN_2
  1503. * @arg @ref LL_DMAMUX_REQ_GEN_3
  1504. * @arg @ref LL_DMAMUX_REQ_GEN_4
  1505. * @arg @ref LL_DMAMUX_REQ_GEN_5
  1506. * @arg @ref LL_DMAMUX_REQ_GEN_6
  1507. * @arg @ref LL_DMAMUX_REQ_GEN_7
  1508. * @retval Returned value can be one of the following values:
  1509. * @arg @ref LL_DMAMUX1_SYNC_DMAMUX1_CH0_EVT
  1510. * @arg @ref LL_DMAMUX1_SYNC_DMAMUX1_CH1_EVT
  1511. * @arg @ref LL_DMAMUX1_SYNC_DMAMUX1_CH2_EVT
  1512. * @arg @ref LL_DMAMUX1_SYNC_LPTIM1_OUT
  1513. * @arg @ref LL_DMAMUX1_SYNC_LPTIM2_OUT
  1514. * @arg @ref LL_DMAMUX1_SYNC_LPTIM3_OUT
  1515. * @arg @ref LL_DMAMUX1_SYNC_EXTI0
  1516. * @arg @ref LL_DMAMUX1_SYNC_TIM12_TRGO
  1517. * @arg @ref LL_DMAMUX2_SYNC_DMAMUX2_CH0_EVT
  1518. * @arg @ref LL_DMAMUX2_SYNC_DMAMUX2_CH1_EVT
  1519. * @arg @ref LL_DMAMUX2_SYNC_DMAMUX2_CH2_EVT
  1520. * @arg @ref LL_DMAMUX2_SYNC_DMAMUX2_CH3_EVT
  1521. * @arg @ref LL_DMAMUX2_SYNC_DMAMUX2_CH4_EVT
  1522. * @arg @ref LL_DMAMUX2_SYNC_DMAMUX2_CH5_EVT
  1523. * @arg @ref LL_DMAMUX2_SYNC_LPUART1_RX_WKUP
  1524. * @arg @ref LL_DMAMUX2_SYNC_LPUART1_TX_WKUP
  1525. * @arg @ref LL_DMAMUX2_SYNC_LPTIM2_OUT
  1526. * @arg @ref LL_DMAMUX2_SYNC_LPTIM3_OUT
  1527. * @arg @ref LL_DMAMUX2_SYNC_I2C4_WKUP
  1528. * @arg @ref LL_DMAMUX2_SYNC_SPI6_WKUP
  1529. * @arg @ref LL_DMAMUX2_SYNC_COMP1_OUT
  1530. * @arg @ref LL_DMAMUX2_SYNC_RTC_WKUP
  1531. * @arg @ref LL_DMAMUX2_SYNC_EXTI0
  1532. * @arg @ref LL_DMAMUX2_SYNC_EXTI2
  1533. */
  1534. __STATIC_INLINE uint32_t LL_DMAMUX_GetRequestSignalID(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
  1535. {
  1536. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1537. return (uint32_t)(READ_BIT(((DMAMUX_RequestGen_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_OFFSET + (DMAMUX_RGCR_SIZE * RequestGenChannel)))->RGCR, DMAMUX_RGxCR_SIG_ID));
  1538. }
  1539. /**
  1540. * @}
  1541. */
  1542. /** @defgroup DMAMUX_LL_EF_FLAG_Management FLAG_Management
  1543. * @{
  1544. */
  1545. /**
  1546. * @brief Get Synchronization Event Overrun Flag Channel 0.
  1547. * @rmtoll CSR SOF0 LL_DMAMUX_IsActiveFlag_SO0
  1548. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1549. * @retval State of bit (1 or 0).
  1550. */
  1551. __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO0(DMAMUX_Channel_TypeDef *DMAMUXx)
  1552. {
  1553. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1554. return ((READ_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CSR, DMAMUX_CSR_SOF0) == (DMAMUX_CSR_SOF0)) ? 1UL : 0UL);
  1555. }
  1556. /**
  1557. * @brief Get Synchronization Event Overrun Flag Channel 1.
  1558. * @rmtoll CSR SOF1 LL_DMAMUX_IsActiveFlag_SO1
  1559. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1560. * @retval State of bit (1 or 0).
  1561. */
  1562. __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO1(DMAMUX_Channel_TypeDef *DMAMUXx)
  1563. {
  1564. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1565. return ((READ_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CSR, DMAMUX_CSR_SOF1) == (DMAMUX_CSR_SOF1)) ? 1UL : 0UL);
  1566. }
  1567. /**
  1568. * @brief Get Synchronization Event Overrun Flag Channel 2.
  1569. * @rmtoll CSR SOF2 LL_DMAMUX_IsActiveFlag_SO2
  1570. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1571. * @retval State of bit (1 or 0).
  1572. */
  1573. __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO2(DMAMUX_Channel_TypeDef *DMAMUXx)
  1574. {
  1575. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1576. return ((READ_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CSR, DMAMUX_CSR_SOF2) == (DMAMUX_CSR_SOF2)) ? 1UL : 0UL);
  1577. }
  1578. /**
  1579. * @brief Get Synchronization Event Overrun Flag Channel 3.
  1580. * @rmtoll CSR SOF3 LL_DMAMUX_IsActiveFlag_SO3
  1581. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1582. * @retval State of bit (1 or 0).
  1583. */
  1584. __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO3(DMAMUX_Channel_TypeDef *DMAMUXx)
  1585. {
  1586. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1587. return ((READ_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CSR, DMAMUX_CSR_SOF3) == (DMAMUX_CSR_SOF3)) ? 1UL : 0UL);
  1588. }
  1589. /**
  1590. * @brief Get Synchronization Event Overrun Flag Channel 4.
  1591. * @rmtoll CSR SOF4 LL_DMAMUX_IsActiveFlag_SO4
  1592. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1593. * @retval State of bit (1 or 0).
  1594. */
  1595. __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO4(DMAMUX_Channel_TypeDef *DMAMUXx)
  1596. {
  1597. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1598. return ((READ_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CSR, DMAMUX_CSR_SOF4) == (DMAMUX_CSR_SOF4)) ? 1UL : 0UL);
  1599. }
  1600. /**
  1601. * @brief Get Synchronization Event Overrun Flag Channel 5.
  1602. * @rmtoll CSR SOF5 LL_DMAMUX_IsActiveFlag_SO5
  1603. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1604. * @retval State of bit (1 or 0).
  1605. */
  1606. __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO5(DMAMUX_Channel_TypeDef *DMAMUXx)
  1607. {
  1608. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1609. return ((READ_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CSR, DMAMUX_CSR_SOF5) == (DMAMUX_CSR_SOF5)) ? 1UL : 0UL);
  1610. }
  1611. /**
  1612. * @brief Get Synchronization Event Overrun Flag Channel 6.
  1613. * @rmtoll CSR SOF6 LL_DMAMUX_IsActiveFlag_SO6
  1614. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1615. * @retval State of bit (1 or 0).
  1616. */
  1617. __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO6(DMAMUX_Channel_TypeDef *DMAMUXx)
  1618. {
  1619. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1620. return ((READ_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CSR, DMAMUX_CSR_SOF6) == (DMAMUX_CSR_SOF6)) ? 1UL : 0UL);
  1621. }
  1622. /**
  1623. * @brief Get Synchronization Event Overrun Flag Channel 7.
  1624. * @rmtoll CSR SOF7 LL_DMAMUX_IsActiveFlag_SO7
  1625. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1626. * @retval State of bit (1 or 0).
  1627. */
  1628. __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO7(DMAMUX_Channel_TypeDef *DMAMUXx)
  1629. {
  1630. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1631. return ((READ_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CSR, DMAMUX_CSR_SOF7) == (DMAMUX_CSR_SOF7)) ? 1UL : 0UL);
  1632. }
  1633. /**
  1634. * @brief Get Synchronization Event Overrun Flag Channel 8.
  1635. * @rmtoll CSR SOF8 LL_DMAMUX_IsActiveFlag_SO8
  1636. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1637. * @retval State of bit (1 or 0).
  1638. */
  1639. __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO8(DMAMUX_Channel_TypeDef *DMAMUXx)
  1640. {
  1641. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1642. return ((READ_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CSR, DMAMUX_CSR_SOF8) == (DMAMUX_CSR_SOF8)) ? 1UL : 0UL);
  1643. }
  1644. /**
  1645. * @brief Get Synchronization Event Overrun Flag Channel 9.
  1646. * @rmtoll CSR SOF9 LL_DMAMUX_IsActiveFlag_SO9
  1647. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1648. * @retval State of bit (1 or 0).
  1649. */
  1650. __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO9(DMAMUX_Channel_TypeDef *DMAMUXx)
  1651. {
  1652. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1653. return ((READ_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CSR, DMAMUX_CSR_SOF9) == (DMAMUX_CSR_SOF9)) ? 1UL : 0UL);
  1654. }
  1655. /**
  1656. * @brief Get Synchronization Event Overrun Flag Channel 10.
  1657. * @rmtoll CSR SOF10 LL_DMAMUX_IsActiveFlag_SO10
  1658. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1659. * @retval State of bit (1 or 0).
  1660. */
  1661. __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO10(DMAMUX_Channel_TypeDef *DMAMUXx)
  1662. {
  1663. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1664. return ((READ_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CSR, DMAMUX_CSR_SOF10) == (DMAMUX_CSR_SOF10)) ? 1UL : 0UL);
  1665. }
  1666. /**
  1667. * @brief Get Synchronization Event Overrun Flag Channel 11.
  1668. * @rmtoll CSR SOF11 LL_DMAMUX_IsActiveFlag_SO11
  1669. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1670. * @retval State of bit (1 or 0).
  1671. */
  1672. __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO11(DMAMUX_Channel_TypeDef *DMAMUXx)
  1673. {
  1674. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1675. return ((READ_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CSR, DMAMUX_CSR_SOF11) == (DMAMUX_CSR_SOF11)) ? 1UL : 0UL);
  1676. }
  1677. /**
  1678. * @brief Get Synchronization Event Overrun Flag Channel 12.
  1679. * @rmtoll CSR SOF12 LL_DMAMUX_IsActiveFlag_SO12
  1680. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1681. * @retval State of bit (1 or 0).
  1682. */
  1683. __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO12(DMAMUX_Channel_TypeDef *DMAMUXx)
  1684. {
  1685. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1686. return ((READ_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CSR, DMAMUX_CSR_SOF12) == (DMAMUX_CSR_SOF12)) ? 1UL : 0UL);
  1687. }
  1688. /**
  1689. * @brief Get Synchronization Event Overrun Flag Channel 13.
  1690. * @rmtoll CSR SOF13 LL_DMAMUX_IsActiveFlag_SO13
  1691. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1692. * @retval State of bit (1 or 0).
  1693. */
  1694. __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO13(DMAMUX_Channel_TypeDef *DMAMUXx)
  1695. {
  1696. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1697. return ((READ_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CSR, DMAMUX_CSR_SOF13) == (DMAMUX_CSR_SOF13)) ? 1UL : 0UL);
  1698. }
  1699. /**
  1700. * @brief Get Synchronization Event Overrun Flag Channel 14.
  1701. * @rmtoll CSR SOF14 LL_DMAMUX_IsActiveFlag_SO14
  1702. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1703. * @retval State of bit (1 or 0).
  1704. */
  1705. __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO14(DMAMUX_Channel_TypeDef *DMAMUXx)
  1706. {
  1707. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1708. return ((READ_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CSR, DMAMUX_CSR_SOF14) == (DMAMUX_CSR_SOF14)) ? 1UL : 0UL);
  1709. }
  1710. /**
  1711. * @brief Get Synchronization Event Overrun Flag Channel 15.
  1712. * @rmtoll CSR SOF15 LL_DMAMUX_IsActiveFlag_SO15
  1713. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1714. * @retval State of bit (1 or 0).
  1715. */
  1716. __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_SO15(DMAMUX_Channel_TypeDef *DMAMUXx)
  1717. {
  1718. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1719. return ((READ_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CSR, DMAMUX_CSR_SOF15) == (DMAMUX_CSR_SOF15)) ? 1UL : 0UL);
  1720. }
  1721. /**
  1722. * @brief Get Request Generator 0 Trigger Event Overrun Flag.
  1723. * @rmtoll RGSR OF0 LL_DMAMUX_IsActiveFlag_RGO0
  1724. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1725. * @retval State of bit (1 or 0).
  1726. */
  1727. __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_RGO0(DMAMUX_Channel_TypeDef *DMAMUXx)
  1728. {
  1729. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1730. return ((READ_BIT(((DMAMUX_RequestGenStatus_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_STATUS_OFFSET))->RGSR, DMAMUX_RGSR_OF0) == (DMAMUX_RGSR_OF0)) ? 1UL : 0UL);
  1731. }
  1732. /**
  1733. * @brief Get Request Generator 1 Trigger Event Overrun Flag.
  1734. * @rmtoll RGSR OF1 LL_DMAMUX_IsActiveFlag_RGO1
  1735. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1736. * @retval State of bit (1 or 0).
  1737. */
  1738. __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_RGO1(DMAMUX_Channel_TypeDef *DMAMUXx)
  1739. {
  1740. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1741. return ((READ_BIT(((DMAMUX_RequestGenStatus_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_STATUS_OFFSET))->RGSR, DMAMUX_RGSR_OF1) == (DMAMUX_RGSR_OF1)) ? 1UL : 0UL);
  1742. }
  1743. /**
  1744. * @brief Get Request Generator 2 Trigger Event Overrun Flag.
  1745. * @rmtoll RGSR OF2 LL_DMAMUX_IsActiveFlag_RGO2
  1746. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1747. * @retval State of bit (1 or 0).
  1748. */
  1749. __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_RGO2(DMAMUX_Channel_TypeDef *DMAMUXx)
  1750. {
  1751. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1752. return ((READ_BIT(((DMAMUX_RequestGenStatus_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_STATUS_OFFSET))->RGSR, DMAMUX_RGSR_OF2) == (DMAMUX_RGSR_OF2)) ? 1UL : 0UL);
  1753. }
  1754. /**
  1755. * @brief Get Request Generator 3 Trigger Event Overrun Flag.
  1756. * @rmtoll RGSR OF3 LL_DMAMUX_IsActiveFlag_RGO3
  1757. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1758. * @retval State of bit (1 or 0).
  1759. */
  1760. __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_RGO3(DMAMUX_Channel_TypeDef *DMAMUXx)
  1761. {
  1762. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1763. return ((READ_BIT(((DMAMUX_RequestGenStatus_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_STATUS_OFFSET))->RGSR, DMAMUX_RGSR_OF3) == (DMAMUX_RGSR_OF3)) ? 1UL : 0UL);
  1764. }
  1765. /**
  1766. * @brief Get Request Generator 4 Trigger Event Overrun Flag.
  1767. * @rmtoll RGSR OF4 LL_DMAMUX_IsActiveFlag_RGO4
  1768. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1769. * @retval State of bit (1 or 0).
  1770. */
  1771. __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_RGO4(DMAMUX_Channel_TypeDef *DMAMUXx)
  1772. {
  1773. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1774. return ((READ_BIT(((DMAMUX_RequestGenStatus_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_STATUS_OFFSET))->RGSR, DMAMUX_RGSR_OF4) == (DMAMUX_RGSR_OF4)) ? 1UL : 0UL);
  1775. }
  1776. /**
  1777. * @brief Get Request Generator 5 Trigger Event Overrun Flag.
  1778. * @rmtoll RGSR OF5 LL_DMAMUX_IsActiveFlag_RGO5
  1779. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1780. * @retval State of bit (1 or 0).
  1781. */
  1782. __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_RGO5(DMAMUX_Channel_TypeDef *DMAMUXx)
  1783. {
  1784. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1785. return ((READ_BIT(((DMAMUX_RequestGenStatus_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_STATUS_OFFSET))->RGSR, DMAMUX_RGSR_OF5) == (DMAMUX_RGSR_OF5)) ? 1UL : 0UL);
  1786. }
  1787. /**
  1788. * @brief Get Request Generator 6 Trigger Event Overrun Flag.
  1789. * @rmtoll RGSR OF6 LL_DMAMUX_IsActiveFlag_RGO6
  1790. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1791. * @retval State of bit (1 or 0).
  1792. */
  1793. __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_RGO6(DMAMUX_Channel_TypeDef *DMAMUXx)
  1794. {
  1795. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1796. return ((READ_BIT(((DMAMUX_RequestGenStatus_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_STATUS_OFFSET))->RGSR, DMAMUX_RGSR_OF6) == (DMAMUX_RGSR_OF6)) ? 1UL : 0UL);
  1797. }
  1798. /**
  1799. * @brief Get Request Generator 7 Trigger Event Overrun Flag.
  1800. * @rmtoll RGSR OF7 LL_DMAMUX_IsActiveFlag_RGO7
  1801. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1802. * @retval State of bit (1 or 0).
  1803. */
  1804. __STATIC_INLINE uint32_t LL_DMAMUX_IsActiveFlag_RGO7(DMAMUX_Channel_TypeDef *DMAMUXx)
  1805. {
  1806. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1807. return ((READ_BIT(((DMAMUX_RequestGenStatus_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_STATUS_OFFSET))->RGSR, DMAMUX_RGSR_OF7) == (DMAMUX_RGSR_OF7)) ? 1UL : 0UL);
  1808. }
  1809. /**
  1810. * @brief Clear Synchronization Event Overrun Flag Channel 0.
  1811. * @rmtoll CFR CSOF0 LL_DMAMUX_ClearFlag_SO0
  1812. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1813. * @retval None
  1814. */
  1815. __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO0(DMAMUX_Channel_TypeDef *DMAMUXx)
  1816. {
  1817. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1818. SET_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CFR, DMAMUX_CFR_CSOF0);
  1819. }
  1820. /**
  1821. * @brief Clear Synchronization Event Overrun Flag Channel 1.
  1822. * @rmtoll CFR CSOF1 LL_DMAMUX_ClearFlag_SO1
  1823. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1824. * @retval None
  1825. */
  1826. __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO1(DMAMUX_Channel_TypeDef *DMAMUXx)
  1827. {
  1828. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1829. SET_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CFR, DMAMUX_CFR_CSOF1);
  1830. }
  1831. /**
  1832. * @brief Clear Synchronization Event Overrun Flag Channel 2.
  1833. * @rmtoll CFR CSOF2 LL_DMAMUX_ClearFlag_SO2
  1834. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1835. * @retval None
  1836. */
  1837. __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO2(DMAMUX_Channel_TypeDef *DMAMUXx)
  1838. {
  1839. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1840. SET_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CFR, DMAMUX_CFR_CSOF2);
  1841. }
  1842. /**
  1843. * @brief Clear Synchronization Event Overrun Flag Channel 3.
  1844. * @rmtoll CFR CSOF3 LL_DMAMUX_ClearFlag_SO3
  1845. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1846. * @retval None
  1847. */
  1848. __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO3(DMAMUX_Channel_TypeDef *DMAMUXx)
  1849. {
  1850. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1851. SET_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CFR, DMAMUX_CFR_CSOF3);
  1852. }
  1853. /**
  1854. * @brief Clear Synchronization Event Overrun Flag Channel 4.
  1855. * @rmtoll CFR CSOF4 LL_DMAMUX_ClearFlag_SO4
  1856. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1857. * @retval None
  1858. */
  1859. __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO4(DMAMUX_Channel_TypeDef *DMAMUXx)
  1860. {
  1861. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1862. SET_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CFR, DMAMUX_CFR_CSOF4);
  1863. }
  1864. /**
  1865. * @brief Clear Synchronization Event Overrun Flag Channel 5.
  1866. * @rmtoll CFR CSOF5 LL_DMAMUX_ClearFlag_SO5
  1867. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1868. * @retval None
  1869. */
  1870. __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO5(DMAMUX_Channel_TypeDef *DMAMUXx)
  1871. {
  1872. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1873. SET_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CFR, DMAMUX_CFR_CSOF5);
  1874. }
  1875. /**
  1876. * @brief Clear Synchronization Event Overrun Flag Channel 6.
  1877. * @rmtoll CFR CSOF6 LL_DMAMUX_ClearFlag_SO6
  1878. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1879. * @retval None
  1880. */
  1881. __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO6(DMAMUX_Channel_TypeDef *DMAMUXx)
  1882. {
  1883. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1884. SET_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CFR, DMAMUX_CFR_CSOF6);
  1885. }
  1886. /**
  1887. * @brief Clear Synchronization Event Overrun Flag Channel 7.
  1888. * @rmtoll CFR CSOF7 LL_DMAMUX_ClearFlag_SO7
  1889. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1890. * @retval None
  1891. */
  1892. __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO7(DMAMUX_Channel_TypeDef *DMAMUXx)
  1893. {
  1894. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1895. SET_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CFR, DMAMUX_CFR_CSOF7);
  1896. }
  1897. /**
  1898. * @brief Clear Synchronization Event Overrun Flag Channel 8.
  1899. * @rmtoll CFR CSOF8 LL_DMAMUX_ClearFlag_SO8
  1900. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1901. * @retval None
  1902. */
  1903. __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO8(DMAMUX_Channel_TypeDef *DMAMUXx)
  1904. {
  1905. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1906. SET_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CFR, DMAMUX_CFR_CSOF8);
  1907. }
  1908. /**
  1909. * @brief Clear Synchronization Event Overrun Flag Channel 9.
  1910. * @rmtoll CFR CSOF9 LL_DMAMUX_ClearFlag_SO9
  1911. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1912. * @retval None
  1913. */
  1914. __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO9(DMAMUX_Channel_TypeDef *DMAMUXx)
  1915. {
  1916. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1917. SET_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CFR, DMAMUX_CFR_CSOF9);
  1918. }
  1919. /**
  1920. * @brief Clear Synchronization Event Overrun Flag Channel 10.
  1921. * @rmtoll CFR CSOF10 LL_DMAMUX_ClearFlag_SO10
  1922. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1923. * @retval None
  1924. */
  1925. __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO10(DMAMUX_Channel_TypeDef *DMAMUXx)
  1926. {
  1927. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1928. SET_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CFR, DMAMUX_CFR_CSOF10);
  1929. }
  1930. /**
  1931. * @brief Clear Synchronization Event Overrun Flag Channel 11.
  1932. * @rmtoll CFR CSOF11 LL_DMAMUX_ClearFlag_SO11
  1933. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1934. * @retval None
  1935. */
  1936. __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO11(DMAMUX_Channel_TypeDef *DMAMUXx)
  1937. {
  1938. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1939. SET_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CFR, DMAMUX_CFR_CSOF11);
  1940. }
  1941. /**
  1942. * @brief Clear Synchronization Event Overrun Flag Channel 12.
  1943. * @rmtoll CFR CSOF12 LL_DMAMUX_ClearFlag_SO12
  1944. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1945. * @retval None
  1946. */
  1947. __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO12(DMAMUX_Channel_TypeDef *DMAMUXx)
  1948. {
  1949. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1950. SET_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CFR, DMAMUX_CFR_CSOF12);
  1951. }
  1952. /**
  1953. * @brief Clear Synchronization Event Overrun Flag Channel 13.
  1954. * @rmtoll CFR CSOF13 LL_DMAMUX_ClearFlag_SO13
  1955. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1956. * @retval None
  1957. */
  1958. __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO13(DMAMUX_Channel_TypeDef *DMAMUXx)
  1959. {
  1960. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1961. SET_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CFR, DMAMUX_CFR_CSOF13);
  1962. }
  1963. /**
  1964. * @brief Clear Synchronization Event Overrun Flag Channel 14.
  1965. * @rmtoll CFR CSOF14 LL_DMAMUX_ClearFlag_SO14
  1966. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1967. * @retval None
  1968. */
  1969. __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO14(DMAMUX_Channel_TypeDef *DMAMUXx)
  1970. {
  1971. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1972. SET_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CFR, DMAMUX_CFR_CSOF14);
  1973. }
  1974. /**
  1975. * @brief Clear Synchronization Event Overrun Flag Channel 15.
  1976. * @rmtoll CFR CSOF15 LL_DMAMUX_ClearFlag_SO15
  1977. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1978. * @retval None
  1979. */
  1980. __STATIC_INLINE void LL_DMAMUX_ClearFlag_SO15(DMAMUX_Channel_TypeDef *DMAMUXx)
  1981. {
  1982. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1983. SET_BIT(((DMAMUX_ChannelStatus_TypeDef *)(dmamux_base_addr + DMAMUX_CH_STATUS_OFFSET))->CFR, DMAMUX_CFR_CSOF15);
  1984. }
  1985. /**
  1986. * @brief Clear Request Generator 0 Trigger Event Overrun Flag.
  1987. * @rmtoll RGCFR COF0 LL_DMAMUX_ClearFlag_RGO0
  1988. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  1989. * @retval None
  1990. */
  1991. __STATIC_INLINE void LL_DMAMUX_ClearFlag_RGO0(DMAMUX_Channel_TypeDef *DMAMUXx)
  1992. {
  1993. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  1994. SET_BIT(((DMAMUX_RequestGenStatus_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_STATUS_OFFSET))->RGCFR, DMAMUX_RGCFR_COF0);
  1995. }
  1996. /**
  1997. * @brief Clear Request Generator 1 Trigger Event Overrun Flag.
  1998. * @rmtoll RGCFR COF1 LL_DMAMUX_ClearFlag_RGO1
  1999. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  2000. * @retval None
  2001. */
  2002. __STATIC_INLINE void LL_DMAMUX_ClearFlag_RGO1(DMAMUX_Channel_TypeDef *DMAMUXx)
  2003. {
  2004. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  2005. SET_BIT(((DMAMUX_RequestGenStatus_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_STATUS_OFFSET))->RGCFR, DMAMUX_RGCFR_COF1);
  2006. }
  2007. /**
  2008. * @brief Clear Request Generator 2 Trigger Event Overrun Flag.
  2009. * @rmtoll RGCFR COF2 LL_DMAMUX_ClearFlag_RGO2
  2010. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  2011. * @retval None
  2012. */
  2013. __STATIC_INLINE void LL_DMAMUX_ClearFlag_RGO2(DMAMUX_Channel_TypeDef *DMAMUXx)
  2014. {
  2015. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  2016. SET_BIT(((DMAMUX_RequestGenStatus_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_STATUS_OFFSET))->RGCFR, DMAMUX_RGCFR_COF2);
  2017. }
  2018. /**
  2019. * @brief Clear Request Generator 3 Trigger Event Overrun Flag.
  2020. * @rmtoll RGCFR COF3 LL_DMAMUX_ClearFlag_RGO3
  2021. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  2022. * @retval None
  2023. */
  2024. __STATIC_INLINE void LL_DMAMUX_ClearFlag_RGO3(DMAMUX_Channel_TypeDef *DMAMUXx)
  2025. {
  2026. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  2027. SET_BIT(((DMAMUX_RequestGenStatus_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_STATUS_OFFSET))->RGCFR, DMAMUX_RGCFR_COF3);
  2028. }
  2029. /**
  2030. * @brief Clear Request Generator 4 Trigger Event Overrun Flag.
  2031. * @rmtoll RGCFR COF4 LL_DMAMUX_ClearFlag_RGO4
  2032. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  2033. * @retval None
  2034. */
  2035. __STATIC_INLINE void LL_DMAMUX_ClearFlag_RGO4(DMAMUX_Channel_TypeDef *DMAMUXx)
  2036. {
  2037. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  2038. SET_BIT(((DMAMUX_RequestGenStatus_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_STATUS_OFFSET))->RGCFR, DMAMUX_RGCFR_COF4);
  2039. }
  2040. /**
  2041. * @brief Clear Request Generator 5 Trigger Event Overrun Flag.
  2042. * @rmtoll RGCFR COF5 LL_DMAMUX_ClearFlag_RGO5
  2043. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  2044. * @retval None
  2045. */
  2046. __STATIC_INLINE void LL_DMAMUX_ClearFlag_RGO5(DMAMUX_Channel_TypeDef *DMAMUXx)
  2047. {
  2048. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  2049. SET_BIT(((DMAMUX_RequestGenStatus_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_STATUS_OFFSET))->RGCFR, DMAMUX_RGCFR_COF5);
  2050. }
  2051. /**
  2052. * @brief Clear Request Generator 6 Trigger Event Overrun Flag.
  2053. * @rmtoll RGCFR COF6 LL_DMAMUX_ClearFlag_RGO6
  2054. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  2055. * @retval None
  2056. */
  2057. __STATIC_INLINE void LL_DMAMUX_ClearFlag_RGO6(DMAMUX_Channel_TypeDef *DMAMUXx)
  2058. {
  2059. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  2060. SET_BIT(((DMAMUX_RequestGenStatus_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_STATUS_OFFSET))->RGCFR, DMAMUX_RGCFR_COF6);
  2061. }
  2062. /**
  2063. * @brief Clear Request Generator 7 Trigger Event Overrun Flag.
  2064. * @rmtoll RGCFR COF7 LL_DMAMUX_ClearFlag_RGO7
  2065. * @param DMAMUXx DMAMUXx DMAMUXx Instance
  2066. * @retval None
  2067. */
  2068. __STATIC_INLINE void LL_DMAMUX_ClearFlag_RGO7(DMAMUX_Channel_TypeDef *DMAMUXx)
  2069. {
  2070. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  2071. SET_BIT(((DMAMUX_RequestGenStatus_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_STATUS_OFFSET))->RGCFR, DMAMUX_RGCFR_COF7);
  2072. }
  2073. /**
  2074. * @}
  2075. */
  2076. /** @defgroup DMAMUX_LL_EF_IT_Management IT_Management
  2077. * @{
  2078. */
  2079. /**
  2080. * @brief Enable the Synchronization Event Overrun Interrupt on DMAMUX channel x.
  2081. * @rmtoll CxCR SOIE LL_DMAMUX_EnableIT_SO
  2082. * @param DMAMUXx DMAMUXx Instance
  2083. * @param Channel This parameter can be one of the following values:
  2084. * @arg @ref LL_DMAMUX_CHANNEL_0
  2085. * @arg @ref LL_DMAMUX_CHANNEL_1
  2086. * @arg @ref LL_DMAMUX_CHANNEL_2
  2087. * @arg @ref LL_DMAMUX_CHANNEL_3
  2088. * @arg @ref LL_DMAMUX_CHANNEL_4
  2089. * @arg @ref LL_DMAMUX_CHANNEL_5
  2090. * @arg @ref LL_DMAMUX_CHANNEL_6
  2091. * @arg @ref LL_DMAMUX_CHANNEL_7
  2092. * @arg @ref LL_DMAMUX_CHANNEL_8
  2093. * @arg @ref LL_DMAMUX_CHANNEL_9
  2094. * @arg @ref LL_DMAMUX_CHANNEL_10
  2095. * @arg @ref LL_DMAMUX_CHANNEL_11
  2096. * @arg @ref LL_DMAMUX_CHANNEL_12
  2097. * @arg @ref LL_DMAMUX_CHANNEL_13
  2098. * @arg @ref LL_DMAMUX_CHANNEL_14
  2099. * @arg @ref LL_DMAMUX_CHANNEL_15
  2100. * @retval None
  2101. */
  2102. __STATIC_INLINE void LL_DMAMUX_EnableIT_SO(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
  2103. {
  2104. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  2105. SET_BIT(((DMAMUX_Channel_TypeDef *)((uint32_t)(dmamux_base_addr + (DMAMUX_CCR_SIZE * (Channel)))))->CCR, DMAMUX_CxCR_SOIE);
  2106. }
  2107. /**
  2108. * @brief Disable the Synchronization Event Overrun Interrupt on DMAMUX channel x.
  2109. * @rmtoll CxCR SOIE LL_DMAMUX_DisableIT_SO
  2110. * @param DMAMUXx DMAMUXx Instance
  2111. * @param Channel This parameter can be one of the following values:
  2112. * @arg @ref LL_DMAMUX_CHANNEL_0
  2113. * @arg @ref LL_DMAMUX_CHANNEL_1
  2114. * @arg @ref LL_DMAMUX_CHANNEL_2
  2115. * @arg @ref LL_DMAMUX_CHANNEL_3
  2116. * @arg @ref LL_DMAMUX_CHANNEL_4
  2117. * @arg @ref LL_DMAMUX_CHANNEL_5
  2118. * @arg @ref LL_DMAMUX_CHANNEL_6
  2119. * @arg @ref LL_DMAMUX_CHANNEL_7
  2120. * @arg @ref LL_DMAMUX_CHANNEL_8
  2121. * @arg @ref LL_DMAMUX_CHANNEL_9
  2122. * @arg @ref LL_DMAMUX_CHANNEL_10
  2123. * @arg @ref LL_DMAMUX_CHANNEL_11
  2124. * @arg @ref LL_DMAMUX_CHANNEL_12
  2125. * @arg @ref LL_DMAMUX_CHANNEL_13
  2126. * @arg @ref LL_DMAMUX_CHANNEL_14
  2127. * @arg @ref LL_DMAMUX_CHANNEL_15
  2128. * @retval None
  2129. */
  2130. __STATIC_INLINE void LL_DMAMUX_DisableIT_SO(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
  2131. {
  2132. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  2133. CLEAR_BIT(((DMAMUX_Channel_TypeDef *)((uint32_t)(dmamux_base_addr + (DMAMUX_CCR_SIZE * (Channel)))))->CCR, DMAMUX_CxCR_SOIE);
  2134. }
  2135. /**
  2136. * @brief Check if the Synchronization Event Overrun Interrupt on DMAMUX channel x is enabled or disabled.
  2137. * @rmtoll CxCR SOIE LL_DMAMUX_IsEnabledIT_SO
  2138. * @param DMAMUXx DMAMUXx Instance
  2139. * @param Channel This parameter can be one of the following values:
  2140. * @arg @ref LL_DMAMUX_CHANNEL_0
  2141. * @arg @ref LL_DMAMUX_CHANNEL_1
  2142. * @arg @ref LL_DMAMUX_CHANNEL_2
  2143. * @arg @ref LL_DMAMUX_CHANNEL_3
  2144. * @arg @ref LL_DMAMUX_CHANNEL_4
  2145. * @arg @ref LL_DMAMUX_CHANNEL_5
  2146. * @arg @ref LL_DMAMUX_CHANNEL_6
  2147. * @arg @ref LL_DMAMUX_CHANNEL_7
  2148. * @arg @ref LL_DMAMUX_CHANNEL_8
  2149. * @arg @ref LL_DMAMUX_CHANNEL_9
  2150. * @arg @ref LL_DMAMUX_CHANNEL_10
  2151. * @arg @ref LL_DMAMUX_CHANNEL_11
  2152. * @arg @ref LL_DMAMUX_CHANNEL_12
  2153. * @arg @ref LL_DMAMUX_CHANNEL_13
  2154. * @arg @ref LL_DMAMUX_CHANNEL_14
  2155. * @arg @ref LL_DMAMUX_CHANNEL_15
  2156. * @retval State of bit (1 or 0).
  2157. */
  2158. __STATIC_INLINE uint32_t LL_DMAMUX_IsEnabledIT_SO(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t Channel)
  2159. {
  2160. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  2161. return (READ_BIT(((DMAMUX_Channel_TypeDef *)(dmamux_base_addr + (DMAMUX_CCR_SIZE * (Channel))))->CCR, DMAMUX_CxCR_SOIE));
  2162. }
  2163. /**
  2164. * @brief Enable the Request Generation Trigger Event Overrun Interrupt on DMAMUX channel x.
  2165. * @rmtoll RGxCR OIE LL_DMAMUX_EnableIT_RGO
  2166. * @param DMAMUXx DMAMUXx Instance
  2167. * @param RequestGenChannel This parameter can be one of the following values:
  2168. * @arg @ref LL_DMAMUX_REQ_GEN_0
  2169. * @arg @ref LL_DMAMUX_REQ_GEN_1
  2170. * @arg @ref LL_DMAMUX_REQ_GEN_2
  2171. * @arg @ref LL_DMAMUX_REQ_GEN_3
  2172. * @arg @ref LL_DMAMUX_REQ_GEN_4
  2173. * @arg @ref LL_DMAMUX_REQ_GEN_5
  2174. * @arg @ref LL_DMAMUX_REQ_GEN_6
  2175. * @arg @ref LL_DMAMUX_REQ_GEN_7
  2176. * @retval None
  2177. */
  2178. __STATIC_INLINE void LL_DMAMUX_EnableIT_RGO(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
  2179. {
  2180. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  2181. SET_BIT(((DMAMUX_RequestGen_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_OFFSET + (DMAMUX_RGCR_SIZE * RequestGenChannel)))->RGCR, DMAMUX_RGxCR_OIE);
  2182. }
  2183. /**
  2184. * @brief Disable the Request Generation Trigger Event Overrun Interrupt on DMAMUX channel x.
  2185. * @rmtoll RGxCR OIE LL_DMAMUX_DisableIT_RGO
  2186. * @param DMAMUXx DMAMUXx Instance
  2187. * @param RequestGenChannel This parameter can be one of the following values:
  2188. * @arg @ref LL_DMAMUX_REQ_GEN_0
  2189. * @arg @ref LL_DMAMUX_REQ_GEN_1
  2190. * @arg @ref LL_DMAMUX_REQ_GEN_2
  2191. * @arg @ref LL_DMAMUX_REQ_GEN_3
  2192. * @arg @ref LL_DMAMUX_REQ_GEN_4
  2193. * @arg @ref LL_DMAMUX_REQ_GEN_5
  2194. * @arg @ref LL_DMAMUX_REQ_GEN_6
  2195. * @arg @ref LL_DMAMUX_REQ_GEN_7
  2196. * @retval None
  2197. */
  2198. __STATIC_INLINE void LL_DMAMUX_DisableIT_RGO(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
  2199. {
  2200. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  2201. CLEAR_BIT(((DMAMUX_RequestGen_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_OFFSET + (DMAMUX_RGCR_SIZE * RequestGenChannel)))->RGCR, DMAMUX_RGxCR_OIE);
  2202. }
  2203. /**
  2204. * @brief Check if the Request Generation Trigger Event Overrun Interrupt on DMAMUX channel x is enabled or disabled.
  2205. * @rmtoll RGxCR OIE LL_DMAMUX_IsEnabledIT_RGO
  2206. * @param DMAMUXx DMAMUXx Instance
  2207. * @param RequestGenChannel This parameter can be one of the following values:
  2208. * @arg @ref LL_DMAMUX_REQ_GEN_0
  2209. * @arg @ref LL_DMAMUX_REQ_GEN_1
  2210. * @arg @ref LL_DMAMUX_REQ_GEN_2
  2211. * @arg @ref LL_DMAMUX_REQ_GEN_3
  2212. * @arg @ref LL_DMAMUX_REQ_GEN_4
  2213. * @arg @ref LL_DMAMUX_REQ_GEN_5
  2214. * @arg @ref LL_DMAMUX_REQ_GEN_6
  2215. * @arg @ref LL_DMAMUX_REQ_GEN_7
  2216. * @retval State of bit (1 or 0).
  2217. */
  2218. __STATIC_INLINE uint32_t LL_DMAMUX_IsEnabledIT_RGO(DMAMUX_Channel_TypeDef *DMAMUXx, uint32_t RequestGenChannel)
  2219. {
  2220. uint32_t dmamux_base_addr = (uint32_t)DMAMUXx;
  2221. return ((READ_BIT(((DMAMUX_RequestGen_TypeDef *)(dmamux_base_addr + DMAMUX_REQ_GEN_OFFSET + (DMAMUX_RGCR_SIZE * RequestGenChannel)))->RGCR, DMAMUX_RGxCR_OIE) == (DMAMUX_RGxCR_OIE)) ? 1UL : 0UL);
  2222. }
  2223. /**
  2224. * @}
  2225. */
  2226. /**
  2227. * @}
  2228. */
  2229. /**
  2230. * @}
  2231. */
  2232. #endif /* DMAMUX1 || DMAMUX2 */
  2233. /**
  2234. * @}
  2235. */
  2236. #ifdef __cplusplus
  2237. }
  2238. #endif
  2239. #endif /* __STM32H7xx_LL_DMAMUX_H */