Back to home page

LXR

 
 

    


File indexing completed on 2025-05-11 08:23:37

0001 /**
0002   ******************************************************************************
0003   * @file    stm32h7xx_ll_hrtim.h
0004   * @author  MCD Application Team
0005   * @brief   Header file of HRTIM LL module.
0006   ******************************************************************************
0007   * @attention
0008   *
0009   * Copyright (c) 2017 STMicroelectronics.
0010   * All rights reserved.
0011   *
0012   * This software is licensed under terms that can be found in the LICENSE file
0013   * in the root directory of this software component.
0014   * If no LICENSE file comes with this software, it is provided AS-IS.
0015   *
0016   ******************************************************************************
0017   */
0018 
0019 /* Define to prevent recursive inclusion -------------------------------------*/
0020 #ifndef STM32H7xx_LL_HRTIM_H
0021 #define STM32H7xx_LL_HRTIM_H
0022 
0023 #ifdef __cplusplus
0024 extern "C" {
0025 #endif
0026 
0027 /* Includes ------------------------------------------------------------------*/
0028 #include "stm32h7xx.h"
0029 
0030 /** @addtogroup STM32H7xx_LL_Driver
0031   * @{
0032   */
0033 
0034 #if defined (HRTIM1)
0035 
0036 /** @defgroup HRTIM_LL HRTIM
0037   * @ingroup RTEMSBSPsARMSTM32H7
0038   * @{
0039   */
0040 
0041 /* Private types -------------------------------------------------------------*/
0042 /* Private variables ---------------------------------------------------------*/
0043 /** @defgroup HRTIM_LL_Private_Variables HRTIM Private Variables
0044   * @ingroup RTEMSBSPsARMSTM32H7
0045   * @{
0046   */
0047 static const uint16_t REG_OFFSET_TAB_TIMER[] =
0048 {
0049   0x00U,   /* 0: MASTER  */
0050   0x80U,   /* 1: TIMER A */
0051   0x100U,  /* 2: TIMER B */
0052   0x180U,  /* 3: TIMER C */
0053   0x200U,  /* 4: TIMER D */
0054   0x280U   /* 5: TIMER E */
0055 };
0056 
0057 static const uint8_t REG_OFFSET_TAB_ADCxR[] =
0058 {
0059   0x00U,   /* 0: HRTIM_ADC1R */
0060   0x04U,   /* 1: HRTIM_ADC2R */
0061   0x08U,   /* 2: HRTIM_ADC3R */
0062   0x0CU,   /* 3: HRTIM_ADC4R */
0063 };
0064 
0065 static const uint16_t REG_OFFSET_TAB_SETxR[] =
0066 {
0067   0x00U,   /* 0: TA1 */
0068   0x08U,   /* 1: TA2 */
0069   0x80U,   /* 2: TB1 */
0070   0x88U,   /* 3: TB2 */
0071   0x100U,  /* 4: TC1 */
0072   0x108U,  /* 5: TC2 */
0073   0x180U,  /* 6: TD1 */
0074   0x188U,  /* 7: TD2 */
0075   0x200U,  /* 8: TE1 */
0076   0x208U   /* 9: TE2 */
0077 };
0078 
0079 static const uint16_t REG_OFFSET_TAB_OUTxR[] =
0080 {
0081   0x00U,   /*  0: TA1 */
0082   0x00U,   /*  1: TA2 */
0083   0x80U,   /*  2: TB1 */
0084   0x80U,   /*  3: TB2 */
0085   0x100U,  /*  4: TC1 */
0086   0x100U,  /*  5: TC2 */
0087   0x180U,  /*  6: TD1 */
0088   0x180U,  /*  7: TD2 */
0089   0x200U,  /*  8: TE1 */
0090   0x200U   /*  9: TE2 */
0091 };
0092 
0093 static const uint8_t REG_OFFSET_TAB_EECR[] =
0094 {
0095   0x00U, /* LL_HRTIM_EVENT_1 */
0096   0x00U, /* LL_HRTIM_EVENT_2 */
0097   0x00U, /* LL_HRTIM_EVENT_3 */
0098   0x00U, /* LL_HRTIM_EVENT_4 */
0099   0x00U, /* LL_HRTIM_EVENT_5 */
0100   0x04U, /* LL_HRTIM_EVENT_6 */
0101   0x04U, /* LL_HRTIM_EVENT_7 */
0102   0x04U, /* LL_HRTIM_EVENT_8 */
0103   0x04U, /* LL_HRTIM_EVENT_9 */
0104   0x04U  /* LL_HRTIM_EVENT_10 */
0105 };
0106 
0107 static const uint8_t REG_OFFSET_TAB_FLTINR[] =
0108 {
0109   0x00U, /* LL_HRTIM_FAULT_1 */
0110   0x00U, /* LL_HRTIM_FAULT_2 */
0111   0x00U, /* LL_HRTIM_FAULT_3 */
0112   0x00U, /* LL_HRTIM_FAULT_4 */
0113   0x04U  /* LL_HRTIM_FAULT_5 */
0114 };
0115 
0116 static const uint32_t REG_MASK_TAB_UPDATETRIG[] =
0117 {
0118   0x20000000U,  /* 0: MASTER  */
0119   0x01FE0000U,  /* 1: TIMER A */
0120   0x01FE0000U,  /* 2: TIMER B */
0121   0x01FE0000U,  /* 3: TIMER C */
0122   0x01FE0000U,  /* 4: TIMER D */
0123   0x01FE0000U   /* 5: TIMER E */
0124 };
0125 
0126 static const uint8_t REG_SHIFT_TAB_UPDATETRIG[] =
0127 {
0128   12U, /* 0: MASTER  */
0129   0U,  /* 1: TIMER A */
0130   0U,  /* 2: TIMER B  */
0131   0U,  /* 3: TIMER C */
0132   0U,  /* 4: TIMER D  */
0133   0U   /* 5: TIMER E */
0134 };
0135 
0136 static const uint8_t REG_SHIFT_TAB_EExSRC[] =
0137 {
0138   0U,  /* LL_HRTIM_EVENT_1  */
0139   6U,  /* LL_HRTIM_EVENT_2  */
0140   12U, /* LL_HRTIM_EVENT_3  */
0141   18U, /* LL_HRTIM_EVENT_4  */
0142   24U, /* LL_HRTIM_EVENT_5  */
0143   0U,  /* LL_HRTIM_EVENT_6  */
0144   6U,  /* LL_HRTIM_EVENT_7  */
0145   12U, /* LL_HRTIM_EVENT_8  */
0146   18U, /* LL_HRTIM_EVENT_9  */
0147   24U  /* LL_HRTIM_EVENT_10 */
0148 };
0149 
0150 static const uint32_t REG_MASK_TAB_UPDATEGATING[] =
0151 {
0152   HRTIM_MCR_BRSTDMA,   /* 0: MASTER  */
0153   HRTIM_TIMCR_UPDGAT,  /* 1: TIMER A */
0154   HRTIM_TIMCR_UPDGAT,  /* 2: TIMER B  */
0155   HRTIM_TIMCR_UPDGAT,  /* 3: TIMER C */
0156   HRTIM_TIMCR_UPDGAT,  /* 4: TIMER D  */
0157   HRTIM_TIMCR_UPDGAT   /* 5: TIMER E */
0158 };
0159 
0160 static const uint8_t REG_SHIFT_TAB_UPDATEGATING[] =
0161 {
0162   2U, /* 0: MASTER  */
0163   0U, /* 1: TIMER A */
0164   0U, /* 2: TIMER B  */
0165   0U, /* 3: TIMER C */
0166   0U, /* 4: TIMER D  */
0167   0U  /* 5: TIMER E */
0168 };
0169 
0170 static const uint8_t REG_SHIFT_TAB_OUTxR[] =
0171 {
0172   0U,  /* 0: TA1  */
0173   16U, /* 1: TA2 */
0174   0U,  /* 2: TB1  */
0175   16U, /* 3: TB2 */
0176   0U,  /* 4: TC1  */
0177   16U, /* 5: TC2 */
0178   0U,  /* 6: TD1  */
0179   16U, /* 7: TD2 */
0180   0U,  /* 8: TE1  */
0181   16U  /* 9: TE2 */
0182 };
0183 
0184 static const uint8_t REG_SHIFT_TAB_OxSTAT[] =
0185 {
0186   0U,  /* 0: TA1  */
0187   1U,  /* 1: TA2 */
0188   0U,  /* 2: TB1  */
0189   1U,  /* 3: TB2 */
0190   0U,  /* 4: TC1  */
0191   1U,  /* 5: TC2 */
0192   0U,  /* 6: TD1  */
0193   1U,  /* 7: TD2 */
0194   0U,  /* 8: TE1  */
0195   1U   /* 9: TE2 */
0196 };
0197 
0198 static const uint8_t REG_SHIFT_TAB_FLTxE[] =
0199 {
0200   0U,   /* LL_HRTIM_FAULT_1 */
0201   8U,   /* LL_HRTIM_FAULT_2 */
0202   16U,  /* LL_HRTIM_FAULT_3 */
0203   24U,  /* LL_HRTIM_FAULT_4 */
0204   0U    /* LL_HRTIM_FAULT_5 */
0205 };
0206 
0207 /**
0208   * @}
0209   */
0210 
0211 
0212 /* Private constants ---------------------------------------------------------*/
0213 /** @defgroup HRTIM_LL_Private_Constants HRTIM Private Constants
0214   * @ingroup RTEMSBSPsARMSTM32H7
0215   * @{
0216   */
0217 #define HRTIM_CR1_UDIS_MASK   ((uint32_t)(HRTIM_CR1_MUDIS  |\
0218                                           HRTIM_CR1_TAUDIS |\
0219                                           HRTIM_CR1_TBUDIS |\
0220                                           HRTIM_CR1_TCUDIS |\
0221                                           HRTIM_CR1_TDUDIS |\
0222                                           HRTIM_CR1_TEUDIS))
0223 
0224 #define HRTIM_CR2_SWUPD_MASK   ((uint32_t)(HRTIM_CR2_MSWU |\
0225                                            HRTIM_CR2_TASWU |\
0226                                            HRTIM_CR2_TBSWU |\
0227                                            HRTIM_CR2_TCSWU |\
0228                                            HRTIM_CR2_TDSWU |\
0229                                            HRTIM_CR2_TESWU))
0230 
0231 #define HRTIM_CR2_SWRST_MASK   ((uint32_t)(HRTIM_CR2_MRST |\
0232                                            HRTIM_CR2_TARST |\
0233                                            HRTIM_CR2_TBRST |\
0234                                            HRTIM_CR2_TCRST |\
0235                                            HRTIM_CR2_TDRST |\
0236                                            HRTIM_CR2_TERST))
0237 
0238 #define HRTIM_OENR_OEN_MASK   ((uint32_t)(HRTIM_OENR_TA1OEN |\
0239                                           HRTIM_OENR_TA2OEN |\
0240                                           HRTIM_OENR_TB1OEN |\
0241                                           HRTIM_OENR_TB2OEN |\
0242                                           HRTIM_OENR_TC1OEN |\
0243                                           HRTIM_OENR_TC2OEN |\
0244                                           HRTIM_OENR_TD1OEN |\
0245                                           HRTIM_OENR_TD2OEN |\
0246                                           HRTIM_OENR_TE1OEN |\
0247                                           HRTIM_OENR_TE2OEN))
0248 
0249 #define HRTIM_OENR_ODIS_MASK  ((uint32_t)(HRTIM_ODISR_TA1ODIS  |\
0250                                           HRTIM_ODISR_TA2ODIS  |\
0251                                           HRTIM_ODISR_TB1ODIS  |\
0252                                           HRTIM_ODISR_TB2ODIS  |\
0253                                           HRTIM_ODISR_TC1ODIS  |\
0254                                           HRTIM_ODISR_TC2ODIS  |\
0255                                           HRTIM_ODISR_TD1ODIS  |\
0256                                           HRTIM_ODISR_TD2ODIS  |\
0257                                           HRTIM_ODISR_TE1ODIS  |\
0258                                           HRTIM_ODISR_TE2ODIS))
0259 
0260 #define HRTIM_OUT_CONFIG_MASK  ((uint32_t)(HRTIM_OUTR_POL1   |\
0261                                            HRTIM_OUTR_IDLM1  |\
0262                                            HRTIM_OUTR_IDLES1 |\
0263                                            HRTIM_OUTR_FAULT1 |\
0264                                            HRTIM_OUTR_CHP1   |\
0265                                            HRTIM_OUTR_DIDL1))
0266 
0267 #define HRTIM_EE_CONFIG_MASK   ((uint32_t)(HRTIM_EECR1_EE1SRC |\
0268                                            HRTIM_EECR1_EE1POL |\
0269                                            HRTIM_EECR1_EE1SNS |\
0270                                            HRTIM_EECR1_EE1FAST))
0271 
0272 #define HRTIM_FLT_CONFIG_MASK   ((uint32_t)(HRTIM_FLTINR1_FLT1P |\
0273                                             HRTIM_FLTINR1_FLT1SRC))
0274 
0275 #define HRTIM_BM_CONFIG_MASK   ((uint32_t)( HRTIM_BMCR_BMPRSC |\
0276                                             HRTIM_BMCR_BMCLK  |\
0277                                             HRTIM_BMCR_BMOM))
0278 
0279 /**
0280   * @}
0281   */
0282 
0283 
0284 /* Private macros ------------------------------------------------------------*/
0285 /* Exported types ------------------------------------------------------------*/
0286 /* Exported constants --------------------------------------------------------*/
0287 /** @defgroup HRTIM_LL_Exported_Constants HRTIM Exported Constants
0288   * @ingroup RTEMSBSPsARMSTM32H7
0289   * @{
0290   */
0291 
0292 /** @defgroup HRTIM_LL_EC_GET_FLAG Get Flags Defines
0293   * @ingroup RTEMSBSPsARMSTM32H7
0294   * @brief    Flags defines which can be used with LL_HRTIM_ReadReg function
0295   * @{
0296   */
0297 #define LL_HRTIM_ISR_FLT1                  HRTIM_ISR_FLT1
0298 #define LL_HRTIM_ISR_FLT2                  HRTIM_ISR_FLT2
0299 #define LL_HRTIM_ISR_FLT3                  HRTIM_ISR_FLT3
0300 #define LL_HRTIM_ISR_FLT4                  HRTIM_ISR_FLT4
0301 #define LL_HRTIM_ISR_FLT5                  HRTIM_ISR_FLT5
0302 #define LL_HRTIM_ISR_SYSFLT                HRTIM_ISR_SYSFLT
0303 #define LL_HRTIM_ISR_BMPER                 HRTIM_ISR_BMPER
0304 
0305 #define LL_HRTIM_MISR_MCMP1                HRTIM_MISR_MCMP1
0306 #define LL_HRTIM_MISR_MCMP2                HRTIM_MISR_MCMP2
0307 #define LL_HRTIM_MISR_MCMP3                HRTIM_MISR_MCMP3
0308 #define LL_HRTIM_MISR_MCMP4                HRTIM_MISR_MCMP4
0309 #define LL_HRTIM_MISR_MREP                 HRTIM_MISR_MREP
0310 #define LL_HRTIM_MISR_SYNC                 HRTIM_MISR_SYNC
0311 #define LL_HRTIM_MISR_MUPD                 HRTIM_MISR_MUPD
0312 
0313 #define LL_HRTIM_TIMISR_CMP1               HRTIM_TIMISR_CMP1
0314 #define LL_HRTIM_TIMISR_CMP2               HRTIM_TIMISR_CMP2
0315 #define LL_HRTIM_TIMISR_CMP3               HRTIM_TIMISR_CMP3
0316 #define LL_HRTIM_TIMISR_CMP4               HRTIM_TIMISR_CMP4
0317 #define LL_HRTIM_TIMISR_REP                HRTIM_TIMISR_REP
0318 #define LL_HRTIM_TIMISR_UPD                HRTIM_TIMISR_UPD
0319 #define LL_HRTIM_TIMISR_CPT1               HRTIM_TIMISR_CPT1
0320 #define LL_HRTIM_TIMISR_CPT2               HRTIM_TIMISR_CPT2
0321 #define LL_HRTIM_TIMISR_SET1               HRTIM_TIMISR_SET1
0322 #define LL_HRTIM_TIMISR_RST1               HRTIM_TIMISR_RST1
0323 #define LL_HRTIM_TIMISR_SET2               HRTIM_TIMISR_SET2
0324 #define LL_HRTIM_TIMISR_RST2               HRTIM_TIMISR_RST2
0325 #define LL_HRTIM_TIMISR_RST                HRTIM_TIMISR_RST
0326 #define LL_HRTIM_TIMISR_DLYPRT             HRTIM_TIMISR_DLYPRT
0327 /**
0328   * @}
0329   */
0330 
0331 /** @defgroup HRTIM_LL_EC_IT IT Defines
0332   * @ingroup RTEMSBSPsARMSTM32H7
0333   * @brief    IT defines which can be used with LL_HRTIM_ReadReg and LL_HRTIM_WriteReg functions
0334   * @{
0335   */
0336 #define LL_HRTIM_IER_FLT1IE                HRTIM_IER_FLT1IE
0337 #define LL_HRTIM_IER_FLT2IE                HRTIM_IER_FLT2IE
0338 #define LL_HRTIM_IER_FLT3IE                HRTIM_IER_FLT3IE
0339 #define LL_HRTIM_IER_FLT4IE                HRTIM_IER_FLT4IE
0340 #define LL_HRTIM_IER_FLT5IE                HRTIM_IER_FLT5IE
0341 #define LL_HRTIM_IER_SYSFLTIE              HRTIM_IER_SYSFLTIE
0342 #define LL_HRTIM_IER_BMPERIE               HRTIM_IER_BMPERIE
0343 
0344 #define LL_HRTIM_MDIER_MCMP1IE             HRTIM_MDIER_MCMP1IE
0345 #define LL_HRTIM_MDIER_MCMP2IE             HRTIM_MDIER_MCMP2IE
0346 #define LL_HRTIM_MDIER_MCMP3IE             HRTIM_MDIER_MCMP3IE
0347 #define LL_HRTIM_MDIER_MCMP4IE             HRTIM_MDIER_MCMP4IE
0348 #define LL_HRTIM_MDIER_MREPIE              HRTIM_MDIER_MREPIE
0349 #define LL_HRTIM_MDIER_SYNCIE              HRTIM_MDIER_SYNCIE
0350 #define LL_HRTIM_MDIER_MUPDIE              HRTIM_MDIER_MUPDIE
0351 
0352 #define LL_HRTIM_TIMDIER_CMP1IE            HRTIM_TIMDIER_CMP1IE
0353 #define LL_HRTIM_TIMDIER_CMP2IE            HRTIM_TIMDIER_CMP2IE
0354 #define LL_HRTIM_TIMDIER_CMP3IE            HRTIM_TIMDIER_CMP3IE
0355 #define LL_HRTIM_TIMDIER_CMP4IE            HRTIM_TIMDIER_CMP4IE
0356 #define LL_HRTIM_TIMDIER_REPIE             HRTIM_TIMDIER_REPIE
0357 #define LL_HRTIM_TIMDIER_UPDIE             HRTIM_TIMDIER_UPDIE
0358 #define LL_HRTIM_TIMDIER_CPT1IE            HRTIM_TIMDIER_CPT1IE
0359 #define LL_HRTIM_TIMDIER_CPT2IE            HRTIM_TIMDIER_CPT2IE
0360 #define LL_HRTIM_TIMDIER_SET1IE            HRTIM_TIMDIER_SET1IE
0361 #define LL_HRTIM_TIMDIER_RST1IE            HRTIM_TIMDIER_RST1IE
0362 #define LL_HRTIM_TIMDIER_SET2IE            HRTIM_TIMDIER_SET2IE
0363 #define LL_HRTIM_TIMDIER_RST2IE            HRTIM_TIMDIER_RST2IE
0364 #define LL_HRTIM_TIMDIER_RSTIE             HRTIM_TIMDIER_RSTIE
0365 #define LL_HRTIM_TIMDIER_DLYPRTIE          HRTIM_TIMDIER_DLYPRTIE
0366 /**
0367   * @}
0368   */
0369 
0370 /** @defgroup HRTIM_LL_EC_SYNCIN_SRC  SYNCHRONIZATION INPUT SOURCE
0371   * @ingroup RTEMSBSPsARMSTM32H7
0372   * @{
0373   * @brief Constants defining defining the synchronization input source.
0374   */
0375 #define LL_HRTIM_SYNCIN_SRC_NONE            0x00000000U                      /*!< HRTIM is not synchronized and runs in standalone mode */
0376 #define LL_HRTIM_SYNCIN_SRC_TIM_EVENT       (HRTIM_MCR_SYNC_IN_1)                        /*!< The HRTIM is synchronized with the on-chip timer */
0377 #define LL_HRTIM_SYNCIN_SRC_EXTERNAL_EVENT  (HRTIM_MCR_SYNC_IN_1 | HRTIM_MCR_SYNC_IN_0)  /*!< A positive pulse on SYNCIN input triggers the HRTIM */
0378 /**
0379   * @}
0380   */
0381 
0382 /** @defgroup HRTIM_LL_EC_SYNCOUT_SRC  SYNCHRONIZATION OUTPUT SOURCE
0383   * @ingroup RTEMSBSPsARMSTM32H7
0384   * @{
0385   * @brief Constants defining the source and event to be sent on the synchronization output.
0386   */
0387 #define LL_HRTIM_SYNCOUT_SRC_MASTER_START  0x00000000U                                    /*!< A pulse is sent on HRTIM_SCOUT output and hrtim_out_sync2 upon master timer start event      */
0388 #define LL_HRTIM_SYNCOUT_SRC_MASTER_CMP1   (HRTIM_MCR_SYNC_SRC_0)                         /*!< A pulse is sent on HRTIM_SCOUT output and hrtim_out_sync2 upon master timer compare 1 event  */
0389 #define LL_HRTIM_SYNCOUT_SRC_TIMA_START    (HRTIM_MCR_SYNC_SRC_1)                         /*!< A pulse is sent on HRTIM_SCOUT output and hrtim_out_sync2 upon timer A start or reset events */
0390 #define LL_HRTIM_SYNCOUT_SRC_TIMA_CMP1     (HRTIM_MCR_SYNC_SRC_1 | HRTIM_MCR_SYNC_SRC_0)  /*!< A pulse is sent on HRTIM_SCOUT output and hrtim_out_sync2 upon timer A compare 1 event       */
0391 /**
0392   * @}
0393   */
0394 
0395 /** @defgroup HRTIM_LL_EC_SYNCOUT_POLARITY  SYNCHRONIZATION OUTPUT POLARITY
0396   * @ingroup RTEMSBSPsARMSTM32H7
0397   * @{
0398   * @brief Constants defining the routing and conditioning of the synchronization output event.
0399   */
0400 #define LL_HRTIM_SYNCOUT_DISABLED     0x00000000U                         /*!< Synchronization output event is disabled */
0401 #define LL_HRTIM_SYNCOUT_POSITIVE_PULSE (HRTIM_MCR_SYNC_OUT_1)                        /*!< SCOUT pin has a low idle level and issues a positive pulse of 16 fHRTIM clock cycles length for the synchronization */
0402 #define LL_HRTIM_SYNCOUT_NEGATIVE_PULSE (HRTIM_MCR_SYNC_OUT_1 | HRTIM_MCR_SYNC_OUT_0) /*!< SCOUT pin has a high idle level and issues a negative pulse of 16 fHRTIM clock cycles length for the synchronization */
0403 /**
0404   * @}
0405   */
0406 
0407 /** @defgroup HRTIM_LL_EC_TIMER  TIMER ID
0408   * @ingroup RTEMSBSPsARMSTM32H7
0409   * @{
0410   * @brief Constants identifying a timing unit.
0411   */
0412 #define LL_HRTIM_TIMER_NONE                0U   /*!< Master timer identifier */
0413 #define LL_HRTIM_TIMER_MASTER              HRTIM_MCR_MCEN   /*!< Master timer identifier */
0414 #define LL_HRTIM_TIMER_A                   HRTIM_MCR_TACEN  /*!< Timer A identifier */
0415 #define LL_HRTIM_TIMER_B                   HRTIM_MCR_TBCEN  /*!< Timer B identifier */
0416 #define LL_HRTIM_TIMER_C                   HRTIM_MCR_TCCEN  /*!< Timer C identifier */
0417 #define LL_HRTIM_TIMER_D                   HRTIM_MCR_TDCEN  /*!< Timer D identifier */
0418 #define LL_HRTIM_TIMER_E                   HRTIM_MCR_TECEN  /*!< Timer E identifier */
0419 #define LL_HRTIM_TIMER_X                  (HRTIM_MCR_TACEN |\
0420                                            HRTIM_MCR_TBCEN | HRTIM_MCR_TCCEN |\
0421                                            HRTIM_MCR_TDCEN | HRTIM_MCR_TECEN )
0422 #define LL_HRTIM_TIMER_ALL                (LL_HRTIM_TIMER_MASTER | LL_HRTIM_TIMER_X)
0423 
0424 /**
0425   * @}
0426   */
0427 
0428 /** @defgroup HRTIM_LL_EC_OUTPUT  OUTPUT ID
0429   * @ingroup RTEMSBSPsARMSTM32H7
0430   * @{
0431   * @brief Constants identifying an HRTIM output.
0432   */
0433 #define LL_HRTIM_OUTPUT_TA1                HRTIM_OENR_TA1OEN  /*!< Timer A - Output 1 identifier */
0434 #define LL_HRTIM_OUTPUT_TA2                HRTIM_OENR_TA2OEN  /*!< Timer A - Output 2 identifier */
0435 #define LL_HRTIM_OUTPUT_TB1                HRTIM_OENR_TB1OEN  /*!< Timer B - Output 1 identifier */
0436 #define LL_HRTIM_OUTPUT_TB2                HRTIM_OENR_TB2OEN  /*!< Timer B - Output 2 identifier */
0437 #define LL_HRTIM_OUTPUT_TC1                HRTIM_OENR_TC1OEN  /*!< Timer C - Output 1 identifier */
0438 #define LL_HRTIM_OUTPUT_TC2                HRTIM_OENR_TC2OEN  /*!< Timer C - Output 2 identifier */
0439 #define LL_HRTIM_OUTPUT_TD1                HRTIM_OENR_TD1OEN  /*!< Timer D - Output 1 identifier */
0440 #define LL_HRTIM_OUTPUT_TD2                HRTIM_OENR_TD2OEN  /*!< Timer D - Output 2 identifier */
0441 #define LL_HRTIM_OUTPUT_TE1                HRTIM_OENR_TE1OEN  /*!< Timer E - Output 1 identifier */
0442 #define LL_HRTIM_OUTPUT_TE2                HRTIM_OENR_TE2OEN  /*!< Timer E - Output 2 identifier */
0443 /**
0444   * @}
0445   */
0446 
0447 /** @defgroup HRTIM_LL_EC_COMPAREUNIT  COMPARE UNIT ID
0448   * @ingroup RTEMSBSPsARMSTM32H7
0449   * @{
0450   * @brief Constants identifying a compare unit.
0451   */
0452 #define LL_HRTIM_COMPAREUNIT_2             HRTIM_TIMCR_DELCMP2  /*!< Compare unit 2 identifier */
0453 #define LL_HRTIM_COMPAREUNIT_4             HRTIM_TIMCR_DELCMP4  /*!< Compare unit 4 identifier */
0454 /**
0455   * @}
0456   */
0457 
0458 /** @defgroup HRTIM_LL_EC_CAPTUREUNIT  CAPTURE UNIT ID
0459   * @ingroup RTEMSBSPsARMSTM32H7
0460   * @{
0461   * @brief Constants identifying a capture unit.
0462   */
0463 #define LL_HRTIM_CAPTUREUNIT_1             0  /*!< Capture unit 1 identifier */
0464 #define LL_HRTIM_CAPTUREUNIT_2             1  /*!< Capture unit 2 identifier */
0465 /**
0466   * @}
0467   */
0468 
0469 /** @defgroup HRTIM_LL_EC_FAULT  FAULT ID
0470   * @ingroup RTEMSBSPsARMSTM32H7
0471   * @{
0472   * @brief Constants identifying a fault channel.
0473   */
0474 #define LL_HRTIM_FAULT_1      HRTIM_FLTR_FLT1EN     /*!< Fault channel 1 identifier */
0475 #define LL_HRTIM_FAULT_2      HRTIM_FLTR_FLT2EN     /*!< Fault channel 2 identifier */
0476 #define LL_HRTIM_FAULT_3      HRTIM_FLTR_FLT3EN     /*!< Fault channel 3 identifier */
0477 #define LL_HRTIM_FAULT_4      HRTIM_FLTR_FLT4EN     /*!< Fault channel 4 identifier */
0478 #define LL_HRTIM_FAULT_5      HRTIM_FLTR_FLT5EN     /*!< Fault channel 5 identifier */
0479 /**
0480   * @}
0481   */
0482 
0483 /** @defgroup HRTIM_LL_EC_EVENT  EXTERNAL EVENT ID
0484   * @ingroup RTEMSBSPsARMSTM32H7
0485   * @{
0486   * @brief Constants identifying an external event channel.
0487   */
0488 #define LL_HRTIM_EVENT_1        ((uint32_t)0x00000001U)     /*!< External event channel 1 identifier */
0489 #define LL_HRTIM_EVENT_2        ((uint32_t)0x00000002U)     /*!< External event channel 2 identifier */
0490 #define LL_HRTIM_EVENT_3        ((uint32_t)0x00000004U)     /*!< External event channel 3 identifier */
0491 #define LL_HRTIM_EVENT_4        ((uint32_t)0x00000008U)     /*!< External event channel 4 identifier */
0492 #define LL_HRTIM_EVENT_5        ((uint32_t)0x00000010U)     /*!< External event channel 5 identifier */
0493 #define LL_HRTIM_EVENT_6        ((uint32_t)0x00000020U)     /*!< External event channel 6 identifier */
0494 #define LL_HRTIM_EVENT_7        ((uint32_t)0x00000040U)     /*!< External event channel 7 identifier */
0495 #define LL_HRTIM_EVENT_8        ((uint32_t)0x00000080U)     /*!< External event channel 8 identifier */
0496 #define LL_HRTIM_EVENT_9        ((uint32_t)0x00000100U)     /*!< External event channel 9 identifier */
0497 #define LL_HRTIM_EVENT_10       ((uint32_t)0x00000200U)     /*!< External event channel 10 identifier */
0498 /**
0499   * @}
0500   */
0501 
0502 /** @defgroup HRTIM_LL_EC_OUTPUTSTATE  OUTPUT STATE
0503   * @ingroup RTEMSBSPsARMSTM32H7
0504   * @{
0505   * @brief Constants defining the state of an HRTIM output.
0506   */
0507 #define LL_HRTIM_OUTPUTSTATE_IDLE          ((uint32_t)0x00000001U) /*!< Main operating mode, where the output can take the active or inactive level as programmed in the crossbar unit */
0508 #define LL_HRTIM_OUTPUTSTATE_RUN           ((uint32_t)0x00000002U) /*!< Default operating state (e.g. after an HRTIM reset, when the outputs are disabled by software or during a burst mode operation) */
0509 #define LL_HRTIM_OUTPUTSTATE_FAULT         ((uint32_t)0x00000003U) /*!< Safety state, entered in case of a shut-down request on FAULTx inputs */
0510 /**
0511   * @}
0512   */
0513 
0514 /** @defgroup HRTIM_LL_EC_ADCTRIG  ADC TRIGGER
0515   * @ingroup RTEMSBSPsARMSTM32H7
0516   * @{
0517   * @brief Constants identifying an ADC trigger.
0518   */
0519 #define LL_HRTIM_ADCTRIG_1              ((uint32_t)0x00000000U) /*!< ADC trigger 1 identifier */
0520 #define LL_HRTIM_ADCTRIG_2              ((uint32_t)0x00000001U)  /*!< ADC trigger 2 identifier */
0521 #define LL_HRTIM_ADCTRIG_3              ((uint32_t)0x00000002U)  /*!< ADC trigger 3 identifier */
0522 #define LL_HRTIM_ADCTRIG_4              ((uint32_t)0x00000003U)  /*!< ADC trigger 4 identifier */
0523 /**
0524   * @}
0525   */
0526 
0527 /** @defgroup HRTIM_LL_EC_ADCTRIG_UPDATE ADC TRIGGER UPDATE
0528   * @ingroup RTEMSBSPsARMSTM32H7
0529   * @{
0530   * @brief constants defining the source triggering the update of the HRTIM_ADCxR register (transfer from preload to active register).
0531   */
0532 #define LL_HRTIM_ADCTRIG_UPDATE_MASTER  0x00000000U                       /*!< HRTIM_ADCxR register update is triggered by the Master timer */
0533 #define LL_HRTIM_ADCTRIG_UPDATE_TIMER_A (HRTIM_CR1_ADC1USRC_0)                        /*!< HRTIM_ADCxR register update is triggered by the Timer A */
0534 #define LL_HRTIM_ADCTRIG_UPDATE_TIMER_B (HRTIM_CR1_ADC1USRC_1)                        /*!< HRTIM_ADCxR register update is triggered by the Timer B */
0535 #define LL_HRTIM_ADCTRIG_UPDATE_TIMER_C (HRTIM_CR1_ADC1USRC_1 | HRTIM_CR1_ADC1USRC_0) /*!< HRTIM_ADCxR register update is triggered by the Timer C */
0536 #define LL_HRTIM_ADCTRIG_UPDATE_TIMER_D (HRTIM_CR1_ADC1USRC_2)                        /*!< HRTIM_ADCxR register update is triggered by the Timer D */
0537 #define LL_HRTIM_ADCTRIG_UPDATE_TIMER_E (HRTIM_CR1_ADC1USRC_2 | HRTIM_CR1_ADC1USRC_0) /*!< HRTIM_ADCxR register update is triggered by the Timer E */
0538 /**
0539   * @}
0540   */
0541 
0542 /** @defgroup HRTIM_LL_EC_ADCTRIG_SRC13  ADC TRIGGER 1/3 SOURCE
0543   * @ingroup RTEMSBSPsARMSTM32H7
0544   * @{
0545   * @brief constants defining the events triggering ADC conversion for ADC Triggers 1 and 3.
0546   */
0547 #define LL_HRTIM_ADCTRIG_SRC13_NONE           0x00000000U              /*!< No ADC trigger event */
0548 #define LL_HRTIM_ADCTRIG_SRC13_MCMP1          HRTIM_ADC1R_AD1MC1       /*!< ADC Trigger on master compare 1 */
0549 #define LL_HRTIM_ADCTRIG_SRC13_MCMP2          HRTIM_ADC1R_AD1MC2       /*!< ADC Trigger on master compare 2 */
0550 #define LL_HRTIM_ADCTRIG_SRC13_MCMP3          HRTIM_ADC1R_AD1MC3       /*!< ADC Trigger on master compare 3 */
0551 #define LL_HRTIM_ADCTRIG_SRC13_MCMP4          HRTIM_ADC1R_AD1MC4       /*!< ADC Trigger on master compare 4 */
0552 #define LL_HRTIM_ADCTRIG_SRC13_MPER           HRTIM_ADC1R_AD1MPER      /*!< ADC Trigger on master period */
0553 #define LL_HRTIM_ADCTRIG_SRC13_EEV1           HRTIM_ADC1R_AD1EEV1      /*!< ADC Trigger on external event 1 */
0554 #define LL_HRTIM_ADCTRIG_SRC13_EEV2           HRTIM_ADC1R_AD1EEV2      /*!< ADC Trigger on external event 2 */
0555 #define LL_HRTIM_ADCTRIG_SRC13_EEV3           HRTIM_ADC1R_AD1EEV3      /*!< ADC Trigger on external event 3 */
0556 #define LL_HRTIM_ADCTRIG_SRC13_EEV4           HRTIM_ADC1R_AD1EEV4      /*!< ADC Trigger on external event 4 */
0557 #define LL_HRTIM_ADCTRIG_SRC13_EEV5           HRTIM_ADC1R_AD1EEV5      /*!< ADC Trigger on external event 5 */
0558 #define LL_HRTIM_ADCTRIG_SRC13_TIMACMP2       HRTIM_ADC1R_AD1TAC2      /*!< ADC Trigger on Timer A compare 2 */
0559 #define LL_HRTIM_ADCTRIG_SRC13_TIMACMP3       HRTIM_ADC1R_AD1TAC3      /*!< ADC Trigger on Timer A compare 3 */
0560 #define LL_HRTIM_ADCTRIG_SRC13_TIMACMP4       HRTIM_ADC1R_AD1TAC4      /*!< ADC Trigger on Timer A compare 4 */
0561 #define LL_HRTIM_ADCTRIG_SRC13_TIMAPER        HRTIM_ADC1R_AD1TAPER     /*!< ADC Trigger on Timer A period */
0562 #define LL_HRTIM_ADCTRIG_SRC13_TIMARST        HRTIM_ADC1R_AD1TARST     /*!< ADC Trigger on Timer A reset */
0563 #define LL_HRTIM_ADCTRIG_SRC13_TIMBCMP2       HRTIM_ADC1R_AD1TBC2      /*!< ADC Trigger on Timer B compare 2 */
0564 #define LL_HRTIM_ADCTRIG_SRC13_TIMBCMP3       HRTIM_ADC1R_AD1TBC3      /*!< ADC Trigger on Timer B compare 3 */
0565 #define LL_HRTIM_ADCTRIG_SRC13_TIMBCMP4       HRTIM_ADC1R_AD1TBC4      /*!< ADC Trigger on Timer B compare 4 */
0566 #define LL_HRTIM_ADCTRIG_SRC13_TIMBPER        HRTIM_ADC1R_AD1TBPER     /*!< ADC Trigger on Timer B period */
0567 #define LL_HRTIM_ADCTRIG_SRC13_TIMBRST        HRTIM_ADC1R_AD1TBRST     /*!< ADC Trigger on Timer B reset */
0568 #define LL_HRTIM_ADCTRIG_SRC13_TIMCCMP2       HRTIM_ADC1R_AD1TCC2      /*!< ADC Trigger on Timer C compare 2 */
0569 #define LL_HRTIM_ADCTRIG_SRC13_TIMCCMP3       HRTIM_ADC1R_AD1TCC3      /*!< ADC Trigger on Timer C compare 3 */
0570 #define LL_HRTIM_ADCTRIG_SRC13_TIMCCMP4       HRTIM_ADC1R_AD1TCC4      /*!< ADC Trigger on Timer C compare 4 */
0571 #define LL_HRTIM_ADCTRIG_SRC13_TIMCPER        HRTIM_ADC1R_AD1TCPER     /*!< ADC Trigger on Timer C period */
0572 #define LL_HRTIM_ADCTRIG_SRC13_TIMDCMP2       HRTIM_ADC1R_AD1TDC2      /*!< ADC Trigger on Timer D compare 2 */
0573 #define LL_HRTIM_ADCTRIG_SRC13_TIMDCMP3       HRTIM_ADC1R_AD1TDC3      /*!< ADC Trigger on Timer D compare 3 */
0574 #define LL_HRTIM_ADCTRIG_SRC13_TIMDCMP4       HRTIM_ADC1R_AD1TDC4      /*!< ADC Trigger on Timer D compare 4 */
0575 #define LL_HRTIM_ADCTRIG_SRC13_TIMDPER        HRTIM_ADC1R_AD1TDPER     /*!< ADC Trigger on Timer D period */
0576 #define LL_HRTIM_ADCTRIG_SRC13_TIMECMP2       HRTIM_ADC1R_AD1TEC2      /*!< ADC Trigger on Timer E compare 2 */
0577 #define LL_HRTIM_ADCTRIG_SRC13_TIMECMP3       HRTIM_ADC1R_AD1TEC3      /*!< ADC Trigger on Timer E compare 3 */
0578 #define LL_HRTIM_ADCTRIG_SRC13_TIMECMP4       HRTIM_ADC1R_AD1TEC4      /*!< ADC Trigger on Timer E compare 4 */
0579 #define LL_HRTIM_ADCTRIG_SRC13_TIMEPER        HRTIM_ADC1R_AD1TEPER     /*!< ADC Trigger on Timer E period */
0580 /**
0581   * @}
0582   */
0583 
0584 /** @defgroup HRTIM_LL_EC_ADCTRIG_SRC24  ADC TRIGGER 2/4 SOURCE
0585   * @ingroup RTEMSBSPsARMSTM32H7
0586   * @{
0587   * @brief constants defining the events triggering ADC conversion for ADC Triggers 2 and 4.
0588   */
0589 #define LL_HRTIM_ADCTRIG_SRC24_NONE           0x00000000U            /*!< No ADC trigger event */
0590 #define LL_HRTIM_ADCTRIG_SRC24_MCMP1          HRTIM_ADC2R_AD2MC1     /*!< ADC Trigger on master compare 1 */
0591 #define LL_HRTIM_ADCTRIG_SRC24_MCMP2          HRTIM_ADC2R_AD2MC2     /*!< ADC Trigger on master compare 2 */
0592 #define LL_HRTIM_ADCTRIG_SRC24_MCMP3          HRTIM_ADC2R_AD2MC3     /*!< ADC Trigger on master compare 3 */
0593 #define LL_HRTIM_ADCTRIG_SRC24_MCMP4          HRTIM_ADC2R_AD2MC4     /*!< ADC Trigger on master compare 4 */
0594 #define LL_HRTIM_ADCTRIG_SRC24_MPER           HRTIM_ADC2R_AD2MPER    /*!< ADC Trigger on master period */
0595 #define LL_HRTIM_ADCTRIG_SRC24_EEV6           HRTIM_ADC2R_AD2EEV6    /*!< ADC Trigger on external event 6 */
0596 #define LL_HRTIM_ADCTRIG_SRC24_EEV7           HRTIM_ADC2R_AD2EEV7    /*!< ADC Trigger on external event 7 */
0597 #define LL_HRTIM_ADCTRIG_SRC24_EEV8           HRTIM_ADC2R_AD2EEV8    /*!< ADC Trigger on external event 8 */
0598 #define LL_HRTIM_ADCTRIG_SRC24_EEV9           HRTIM_ADC2R_AD2EEV9    /*!< ADC Trigger on external event 9 */
0599 #define LL_HRTIM_ADCTRIG_SRC24_EEV10          HRTIM_ADC2R_AD2EEV10   /*!< ADC Trigger on external event 10 */
0600 #define LL_HRTIM_ADCTRIG_SRC24_TIMACMP2       HRTIM_ADC2R_AD2TAC2    /*!< ADC Trigger on Timer A compare 2 */
0601 #define LL_HRTIM_ADCTRIG_SRC24_TIMACMP3       HRTIM_ADC2R_AD2TAC3    /*!< ADC Trigger on Timer A compare 3 */
0602 #define LL_HRTIM_ADCTRIG_SRC24_TIMACMP4       HRTIM_ADC2R_AD2TAC4    /*!< ADC Trigger on Timer A compare 4 */
0603 #define LL_HRTIM_ADCTRIG_SRC24_TIMAPER        HRTIM_ADC2R_AD2TAPER   /*!< ADC Trigger on Timer A period */
0604 #define LL_HRTIM_ADCTRIG_SRC24_TIMBCMP2       HRTIM_ADC2R_AD2TBC2    /*!< ADC Trigger on Timer B compare 2 */
0605 #define LL_HRTIM_ADCTRIG_SRC24_TIMBCMP3       HRTIM_ADC2R_AD2TBC3    /*!< ADC Trigger on Timer B compare 3 */
0606 #define LL_HRTIM_ADCTRIG_SRC24_TIMBCMP4       HRTIM_ADC2R_AD2TBC4    /*!< ADC Trigger on Timer B compare 4 */
0607 #define LL_HRTIM_ADCTRIG_SRC24_TIMBPER        HRTIM_ADC2R_AD2TBPER   /*!< ADC Trigger on Timer B period */
0608 #define LL_HRTIM_ADCTRIG_SRC24_TIMCCMP2       HRTIM_ADC2R_AD2TCC2    /*!< ADC Trigger on Timer C compare 2 */
0609 #define LL_HRTIM_ADCTRIG_SRC24_TIMCCMP3       HRTIM_ADC2R_AD2TCC3    /*!< ADC Trigger on Timer C compare 3 */
0610 #define LL_HRTIM_ADCTRIG_SRC24_TIMCCMP4       HRTIM_ADC2R_AD2TCC4    /*!< ADC Trigger on Timer C compare 4 */
0611 #define LL_HRTIM_ADCTRIG_SRC24_TIMCPER        HRTIM_ADC2R_AD2TCPER   /*!< ADC Trigger on Timer C period */
0612 #define LL_HRTIM_ADCTRIG_SRC24_TIMCRST        HRTIM_ADC2R_AD2TCRST   /*!< ADC Trigger on Timer C reset */
0613 #define LL_HRTIM_ADCTRIG_SRC24_TIMDCMP2       HRTIM_ADC2R_AD2TDC2    /*!< ADC Trigger on Timer D compare 2 */
0614 #define LL_HRTIM_ADCTRIG_SRC24_TIMDCMP3       HRTIM_ADC2R_AD2TDC3    /*!< ADC Trigger on Timer D compare 3 */
0615 #define LL_HRTIM_ADCTRIG_SRC24_TIMDCMP4       HRTIM_ADC2R_AD2TDC4    /*!< ADC Trigger on Timer D compare 4 */
0616 #define LL_HRTIM_ADCTRIG_SRC24_TIMDPER        HRTIM_ADC2R_AD2TDPER   /*!< ADC Trigger on Timer D period */
0617 #define LL_HRTIM_ADCTRIG_SRC24_TIMDRST        HRTIM_ADC2R_AD2TDRST   /*!< ADC Trigger on Timer D reset */
0618 #define LL_HRTIM_ADCTRIG_SRC24_TIMECMP2       HRTIM_ADC2R_AD2TEC2    /*!< ADC Trigger on Timer E compare 2 */
0619 #define LL_HRTIM_ADCTRIG_SRC24_TIMECMP3       HRTIM_ADC2R_AD2TEC3    /*!< ADC Trigger on Timer E compare 3 */
0620 #define LL_HRTIM_ADCTRIG_SRC24_TIMECMP4       HRTIM_ADC2R_AD2TEC4    /*!< ADC Trigger on Timer E compare 4 */
0621 #define LL_HRTIM_ADCTRIG_SRC24_TIMERST        HRTIM_ADC2R_AD2TERST   /*!< ADC Trigger on Timer E reset */
0622 /**
0623   * @}
0624   */
0625 
0626 /** @defgroup HRTIM_LL_EC_PRESCALERRATIO  PRESCALER RATIO
0627   * @ingroup RTEMSBSPsARMSTM32H7
0628   * @{
0629   * @brief Constants defining timer high-resolution clock prescaler ratio.
0630   */
0631 #define LL_HRTIM_PRESCALERRATIO_DIV1       ((uint32_t)0x00000005U)  /*!< fHRCK: fHRTIM = 144 MHz - Resolution: 6.95 ns - Min PWM frequency: 2.2 kHz (fHRTIM=144MHz)      */
0632 #define LL_HRTIM_PRESCALERRATIO_DIV2       ((uint32_t)0x00000006U)  /*!< fHRCK: fHRTIM / 2 = 72 MHz - Resolution: 13.88 ns- Min PWM frequency: 1.1 kHz (fHRTIM=144MHz)      */
0633 #define LL_HRTIM_PRESCALERRATIO_DIV4       ((uint32_t)0x00000007U)  /*!< fHRCK: fHRTIM / 4 = 36 MHz - Resolution: 27.7 ns- Min PWM frequency: 550Hz (fHRTIM=144MHz)      */
0634 /**
0635   * @}
0636   */
0637 
0638 /** @defgroup HRTIM_LL_EC_MODE  COUNTER MODE
0639   * @ingroup RTEMSBSPsARMSTM32H7
0640   * @{
0641   * @brief Constants defining timer counter operating mode.
0642   */
0643 #define LL_HRTIM_MODE_CONTINUOUS           ((uint32_t)0x00000008U)  /*!< The timer operates in continuous (free-running) mode */
0644 #define LL_HRTIM_MODE_SINGLESHOT           0x00000000U              /*!< The timer operates in non retriggerable single-shot mode */
0645 #define LL_HRTIM_MODE_RETRIGGERABLE        ((uint32_t)0x00000010U)  /*!< The timer operates in retriggerable single-shot mode */
0646 /**
0647   * @}
0648   */
0649 
0650 /** @defgroup HRTIM_LL_EC_DACTRIG  DAC TRIGGER
0651   * @ingroup RTEMSBSPsARMSTM32H7
0652   * @{
0653   * @brief Constants defining on which output the DAC synchronization event is sent.
0654   */
0655 #define LL_HRTIM_DACTRIG_NONE           0x00000000U                     /*!< No DAC synchronization event generated */
0656 #define LL_HRTIM_DACTRIG_DACTRIGOUT_1   (HRTIM_MCR_DACSYNC_0)                       /*!< DAC synchronization event generated on DACTrigOut1 output upon timer update */
0657 #define LL_HRTIM_DACTRIG_DACTRIGOUT_2   (HRTIM_MCR_DACSYNC_1)                       /*!< DAC synchronization event generated on DACTrigOut2 output upon timer update */
0658 #define LL_HRTIM_DACTRIG_DACTRIGOUT_3   (HRTIM_MCR_DACSYNC_1 | HRTIM_MCR_DACSYNC_0) /*!< DAC synchronization event generated on DACTrigOut3 output upon timer update */
0659 /**
0660   * @}
0661   */
0662 
0663 /** @defgroup HRTIM_LL_EC_UPDATETRIG  UPDATE TRIGGER
0664   * @ingroup RTEMSBSPsARMSTM32H7
0665   * @{
0666   * @brief Constants defining whether the registers update is done synchronously with any other timer or master update.
0667   */
0668 #define LL_HRTIM_UPDATETRIG_NONE        0x00000000U            /*!< Register update is disabled */
0669 #define LL_HRTIM_UPDATETRIG_MASTER      HRTIM_TIMCR_MSTU       /*!< Register update is triggered by the master timer update */
0670 #define LL_HRTIM_UPDATETRIG_TIMER_A     HRTIM_TIMCR_TAU        /*!< Register update is triggered by the timer A update */
0671 #define LL_HRTIM_UPDATETRIG_TIMER_B     HRTIM_TIMCR_TBU        /*!< Register update is triggered by the timer B update */
0672 #define LL_HRTIM_UPDATETRIG_TIMER_C     HRTIM_TIMCR_TCU        /*!< Register update is triggered by the timer C update*/
0673 #define LL_HRTIM_UPDATETRIG_TIMER_D     HRTIM_TIMCR_TDU        /*!< Register update is triggered by the timer D update */
0674 #define LL_HRTIM_UPDATETRIG_TIMER_E     HRTIM_TIMCR_TEU        /*!< Register update is triggered by the timer E update */
0675 #define LL_HRTIM_UPDATETRIG_REPETITION  HRTIM_TIMCR_TREPU      /*!< Register update is triggered when the counter rolls over and HRTIM_REPx = 0*/
0676 #define LL_HRTIM_UPDATETRIG_RESET       HRTIM_TIMCR_TRSTU      /*!< Register update is triggered by counter reset or roll-over to 0 after reaching the period value in continuous mode */
0677 /**
0678   * @}
0679   */
0680 
0681 /** @defgroup HRTIM_LL_EC_UPDATEGATING  UPDATE GATING
0682   * @ingroup RTEMSBSPsARMSTM32H7
0683   * @{
0684   * @brief Constants defining how the update occurs relatively to the burst DMA transaction and the external update request on update enable inputs 1 to 3.
0685   */
0686 #define LL_HRTIM_UPDATEGATING_INDEPENDENT     0x00000000U                                               /*!< Update done independently from the DMA burst transfer completion */
0687 #define LL_HRTIM_UPDATEGATING_DMABURST        (HRTIM_TIMCR_UPDGAT_0)                                                /*!< Update done when the DMA burst transfer is completed */
0688 #define LL_HRTIM_UPDATEGATING_DMABURST_UPDATE (HRTIM_TIMCR_UPDGAT_1)                                                /*!< Update done on timer roll-over following a DMA burst transfer completion*/
0689 #define LL_HRTIM_UPDATEGATING_UPDEN1          (HRTIM_TIMCR_UPDGAT_1 | HRTIM_TIMCR_UPDGAT_0)                         /*!< Slave timer only - Update done on a rising edge of HRTIM update enable input 1 */
0690 #define LL_HRTIM_UPDATEGATING_UPDEN2          (HRTIM_TIMCR_UPDGAT_2)                                                /*!< Slave timer only - Update done on a rising edge of HRTIM update enable input 2 */
0691 #define LL_HRTIM_UPDATEGATING_UPDEN3          (HRTIM_TIMCR_UPDGAT_2 | HRTIM_TIMCR_UPDGAT_0)                         /*!< Slave timer only - Update done on a rising edge of HRTIM update enable input 3 */
0692 #define LL_HRTIM_UPDATEGATING_UPDEN1_UPDATE   (HRTIM_TIMCR_UPDGAT_2 | HRTIM_TIMCR_UPDGAT_1)                         /*!< Slave timer only -  Update done on the update event following a rising edge of HRTIM update enable input 1 */
0693 #define LL_HRTIM_UPDATEGATING_UPDEN2_UPDATE   (HRTIM_TIMCR_UPDGAT_2 | HRTIM_TIMCR_UPDGAT_1 | HRTIM_TIMCR_UPDGAT_0)  /*!< Slave timer only - Update done on the update event following a rising edge of HRTIM update enable input 2 */
0694 #define LL_HRTIM_UPDATEGATING_UPDEN3_UPDATE   (HRTIM_TIMCR_UPDGAT_3)                                                /*!< Slave timer only - Update done on the update event following a rising edge of HRTIM update enable input 3 */
0695 /**
0696   * @}
0697   */
0698 
0699 /** @defgroup HRTIM_LL_EC_COMPAREMODE  COMPARE MODE
0700   * @ingroup RTEMSBSPsARMSTM32H7
0701   * @{
0702   * @brief Constants defining whether the compare register is behaving in regular mode (compare match issued as soon as counter equal compare) or in auto-delayed mode.
0703   */
0704 #define LL_HRTIM_COMPAREMODE_REGULAR          0x00000000U                         /*!< standard compare mode */
0705 #define LL_HRTIM_COMPAREMODE_DELAY_NOTIMEOUT  (HRTIM_TIMCR_DELCMP2_0)                         /*!< Compare event generated only if a capture has occurred */
0706 #define LL_HRTIM_COMPAREMODE_DELAY_CMP1       (HRTIM_TIMCR_DELCMP2_1)                         /*!< Compare event generated if a capture has occurred or after a Compare 1 match (timeout if capture event is missing) */
0707 #define LL_HRTIM_COMPAREMODE_DELAY_CMP3       (HRTIM_TIMCR_DELCMP2_1 | HRTIM_TIMCR_DELCMP2_0) /*!< Compare event generated if a capture has occurred or after a Compare 3 match (timeout if capture event is missing) */
0708 /**
0709   * @}
0710   */
0711 
0712 /** @defgroup HRTIM_LL_EC_RESETTRIG  RESET TRIGGER
0713   * @ingroup RTEMSBSPsARMSTM32H7
0714   * @{
0715   * @brief Constants defining the events that can be selected to trigger the reset of the timer counter.
0716   */
0717 #define LL_HRTIM_RESETTRIG_NONE        0x00000000U            /*!< No counter reset trigger */
0718 #define LL_HRTIM_RESETTRIG_UPDATE      HRTIM_RSTR_UPDATE      /*!< The timer counter is reset upon update event */
0719 #define LL_HRTIM_RESETTRIG_CMP2        HRTIM_RSTR_CMP2        /*!< The timer counter is reset upon Timer Compare 2 event */
0720 #define LL_HRTIM_RESETTRIG_CMP4        HRTIM_RSTR_CMP4        /*!< The timer counter is reset upon Timer Compare 4 event */
0721 #define LL_HRTIM_RESETTRIG_MASTER_PER  HRTIM_RSTR_MSTPER      /*!< The timer counter is reset upon master timer period event */
0722 #define LL_HRTIM_RESETTRIG_MASTER_CMP1 HRTIM_RSTR_MSTCMP1     /*!< The timer counter is reset upon master timer Compare 1 event */
0723 #define LL_HRTIM_RESETTRIG_MASTER_CMP2 HRTIM_RSTR_MSTCMP2     /*!< The timer counter is reset upon master timer Compare 2 event */
0724 #define LL_HRTIM_RESETTRIG_MASTER_CMP3 HRTIM_RSTR_MSTCMP3     /*!< The timer counter is reset upon master timer Compare 3 event */
0725 #define LL_HRTIM_RESETTRIG_MASTER_CMP4 HRTIM_RSTR_MSTCMP4     /*!< The timer counter is reset upon master timer Compare 4 event */
0726 #define LL_HRTIM_RESETTRIG_EEV_1       HRTIM_RSTR_EXTEVNT1    /*!< The timer counter is reset upon external event 1 */
0727 #define LL_HRTIM_RESETTRIG_EEV_2       HRTIM_RSTR_EXTEVNT2    /*!< The timer counter is reset upon external event 2 */
0728 #define LL_HRTIM_RESETTRIG_EEV_3       HRTIM_RSTR_EXTEVNT3    /*!< The timer counter is reset upon external event 3 */
0729 #define LL_HRTIM_RESETTRIG_EEV_4       HRTIM_RSTR_EXTEVNT4    /*!< The timer counter is reset upon external event 4 */
0730 #define LL_HRTIM_RESETTRIG_EEV_5       HRTIM_RSTR_EXTEVNT5    /*!< The timer counter is reset upon external event 5 */
0731 #define LL_HRTIM_RESETTRIG_EEV_6       HRTIM_RSTR_EXTEVNT6    /*!< The timer counter is reset upon external event 6 */
0732 #define LL_HRTIM_RESETTRIG_EEV_7       HRTIM_RSTR_EXTEVNT7    /*!< The timer counter is reset upon external event 7 */
0733 #define LL_HRTIM_RESETTRIG_EEV_8       HRTIM_RSTR_EXTEVNT8    /*!< The timer counter is reset upon external event 8 */
0734 #define LL_HRTIM_RESETTRIG_EEV_9       HRTIM_RSTR_EXTEVNT9    /*!< The timer counter is reset upon external event 9 */
0735 #define LL_HRTIM_RESETTRIG_EEV_10      HRTIM_RSTR_EXTEVNT10   /*!< The timer counter is reset upon external event 10 */
0736 #define LL_HRTIM_RESETTRIG_OTHER1_CMP1 HRTIM_RSTR_TIMBCMP1    /*!< The timer counter is reset upon other timer Compare 1 event */
0737 #define LL_HRTIM_RESETTRIG_OTHER1_CMP2 HRTIM_RSTR_TIMBCMP2    /*!< The timer counter is reset upon other timer Compare 2 event */
0738 #define LL_HRTIM_RESETTRIG_OTHER1_CMP4 HRTIM_RSTR_TIMBCMP4    /*!< The timer counter is reset upon other timer Compare 4 event */
0739 #define LL_HRTIM_RESETTRIG_OTHER2_CMP1 HRTIM_RSTR_TIMCCMP1    /*!< The timer counter is reset upon other timer Compare 1 event */
0740 #define LL_HRTIM_RESETTRIG_OTHER2_CMP2 HRTIM_RSTR_TIMCCMP2    /*!< The timer counter is reset upon other timer Compare 2 event */
0741 #define LL_HRTIM_RESETTRIG_OTHER2_CMP4 HRTIM_RSTR_TIMCCMP4    /*!< The timer counter is reset upon other timer Compare 4 event */
0742 #define LL_HRTIM_RESETTRIG_OTHER3_CMP1 HRTIM_RSTR_TIMDCMP1    /*!< The timer counter is reset upon other timer Compare 1 event */
0743 #define LL_HRTIM_RESETTRIG_OTHER3_CMP2 HRTIM_RSTR_TIMDCMP2    /*!< The timer counter is reset upon other timer Compare 2 event */
0744 #define LL_HRTIM_RESETTRIG_OTHER3_CMP4 HRTIM_RSTR_TIMDCMP4    /*!< The timer counter is reset upon other timer Compare 4 event */
0745 #define LL_HRTIM_RESETTRIG_OTHER4_CMP1 HRTIM_RSTR_TIMECMP1    /*!< The timer counter is reset upon other timer Compare 1 event */
0746 #define LL_HRTIM_RESETTRIG_OTHER4_CMP2 HRTIM_RSTR_TIMECMP2    /*!< The timer counter is reset upon other timer Compare 2 event */
0747 #define LL_HRTIM_RESETTRIG_OTHER4_CMP4 HRTIM_RSTR_TIMECMP4    /*!< The timer counter is reset upon other timer Compare 4 event */
0748 /**
0749   * @}
0750   */
0751 
0752 /** @defgroup HRTIM_LL_EC_CAPTURETRIG  CAPTURE TRIGGER
0753   * @ingroup RTEMSBSPsARMSTM32H7
0754   * @{
0755   * @brief Constants defining the events that can be selected to trigger the capture of the timing unit counter.
0756   */
0757 #define LL_HRTIM_CAPTURETRIG_NONE         ((uint32_t)0x00000000U)/*!< Capture trigger is disabled */
0758 #define LL_HRTIM_CAPTURETRIG_UPDATE       HRTIM_CPT1CR_UPDCPT    /*!< The update event triggers the Capture */
0759 #define LL_HRTIM_CAPTURETRIG_EEV_1        HRTIM_CPT1CR_EXEV1CPT  /*!< The External event 1 triggers the Capture */
0760 #define LL_HRTIM_CAPTURETRIG_EEV_2        HRTIM_CPT1CR_EXEV2CPT  /*!< The External event 2 triggers the Capture */
0761 #define LL_HRTIM_CAPTURETRIG_EEV_3        HRTIM_CPT1CR_EXEV3CPT  /*!< The External event 3 triggers the Capture */
0762 #define LL_HRTIM_CAPTURETRIG_EEV_4        HRTIM_CPT1CR_EXEV4CPT  /*!< The External event 4 triggers the Capture */
0763 #define LL_HRTIM_CAPTURETRIG_EEV_5        HRTIM_CPT1CR_EXEV5CPT  /*!< The External event 5 triggers the Capture */
0764 #define LL_HRTIM_CAPTURETRIG_EEV_6        HRTIM_CPT1CR_EXEV6CPT  /*!< The External event 6 triggers the Capture */
0765 #define LL_HRTIM_CAPTURETRIG_EEV_7        HRTIM_CPT1CR_EXEV7CPT  /*!< The External event 7 triggers the Capture */
0766 #define LL_HRTIM_CAPTURETRIG_EEV_8        HRTIM_CPT1CR_EXEV8CPT  /*!< The External event 8 triggers the Capture */
0767 #define LL_HRTIM_CAPTURETRIG_EEV_9        HRTIM_CPT1CR_EXEV9CPT  /*!< The External event 9 triggers the Capture */
0768 #define LL_HRTIM_CAPTURETRIG_EEV_10       HRTIM_CPT1CR_EXEV10CPT /*!< The External event 10 triggers the Capture */
0769 #define LL_HRTIM_CAPTURETRIG_TA1_SET      HRTIM_CPT1CR_TA1SET    /*!< Capture is triggered by TA1 output inactive to active transition */
0770 #define LL_HRTIM_CAPTURETRIG_TA1_RESET    HRTIM_CPT1CR_TA1RST    /*!< Capture is triggered by TA1 output active to inactive transition */
0771 #define LL_HRTIM_CAPTURETRIG_TIMA_CMP1    HRTIM_CPT1CR_TIMACMP1  /*!< Timer A Compare 1 triggers Capture */
0772 #define LL_HRTIM_CAPTURETRIG_TIMA_CMP2    HRTIM_CPT1CR_TIMACMP2  /*!< Timer A Compare 2 triggers Capture */
0773 #define LL_HRTIM_CAPTURETRIG_TB1_SET      HRTIM_CPT1CR_TB1SET    /*!< Capture is triggered by TB1 output inactive to active transition */
0774 #define LL_HRTIM_CAPTURETRIG_TB1_RESET    HRTIM_CPT1CR_TB1RST    /*!< Capture is triggered by TB1 output active to inactive transition */
0775 #define LL_HRTIM_CAPTURETRIG_TIMB_CMP1    HRTIM_CPT1CR_TIMBCMP1  /*!< Timer B Compare 1 triggers Capture */
0776 #define LL_HRTIM_CAPTURETRIG_TIMB_CMP2    HRTIM_CPT1CR_TIMBCMP2  /*!< Timer B Compare 2 triggers Capture */
0777 #define LL_HRTIM_CAPTURETRIG_TC1_SET      HRTIM_CPT1CR_TC1SET    /*!< Capture is triggered by TC1 output inactive to active transition */
0778 #define LL_HRTIM_CAPTURETRIG_TC1_RESET    HRTIM_CPT1CR_TC1RST    /*!< Capture is triggered by TC1 output active to inactive transition */
0779 #define LL_HRTIM_CAPTURETRIG_TIMC_CMP1    HRTIM_CPT1CR_TIMCCMP1  /*!< Timer C Compare 1 triggers Capture */
0780 #define LL_HRTIM_CAPTURETRIG_TIMC_CMP2    HRTIM_CPT1CR_TIMCCMP2  /*!< Timer C Compare 2 triggers Capture */
0781 #define LL_HRTIM_CAPTURETRIG_TD1_SET      HRTIM_CPT1CR_TD1SET    /*!< Capture is triggered by TD1 output inactive to active transition */
0782 #define LL_HRTIM_CAPTURETRIG_TD1_RESET    HRTIM_CPT1CR_TD1RST    /*!< Capture is triggered by TD1 output active to inactive transition */
0783 #define LL_HRTIM_CAPTURETRIG_TIMD_CMP1    HRTIM_CPT1CR_TIMDCMP1  /*!< Timer D Compare 1 triggers Capture */
0784 #define LL_HRTIM_CAPTURETRIG_TIMD_CMP2    HRTIM_CPT1CR_TIMDCMP2  /*!< Timer D Compare 2 triggers Capture */
0785 #define LL_HRTIM_CAPTURETRIG_TE1_SET      HRTIM_CPT1CR_TE1SET    /*!< Capture is triggered by TE1 output inactive to active transition */
0786 #define LL_HRTIM_CAPTURETRIG_TE1_RESET    HRTIM_CPT1CR_TE1RST    /*!< Capture is triggered by TE1 output active to inactive transition */
0787 #define LL_HRTIM_CAPTURETRIG_TIME_CMP1    HRTIM_CPT1CR_TIMECMP1  /*!< Timer E Compare 1 triggers Capture */
0788 #define LL_HRTIM_CAPTURETRIG_TIME_CMP2    HRTIM_CPT1CR_TIMECMP2  /*!< Timer E Compare 2 triggers Capture */
0789 /**
0790   * @}
0791   */
0792 
0793 /** @defgroup HRTIM_LL_EC_DLYPRT  DELAYED PROTECTION (DLYPRT) MODE
0794   * @ingroup RTEMSBSPsARMSTM32H7
0795   * @{
0796   * @brief Constants defining all possible delayed protection modes for a timer (also define the source and outputs on which the delayed protection schemes are applied).
0797   */
0798 #define LL_HRTIM_DLYPRT_DELAYOUT1_EEV6  0x00000000U                                            /*!< Timers A, B, C: Output 1 delayed Idle on external Event 6 */
0799 #define LL_HRTIM_DLYPRT_DELAYOUT2_EEV6  (HRTIM_OUTR_DLYPRT_0)                                             /*!< Timers A, B, C: Output 2 delayed Idle on external Event 6 */
0800 #define LL_HRTIM_DLYPRT_DELAYBOTH_EEV6  (HRTIM_OUTR_DLYPRT_1)                                             /*!< Timers A, B, C: Output 1 and output 2 delayed Idle on external Event 6 */
0801 #define LL_HRTIM_DLYPRT_BALANCED_EEV6   (HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRT_0)                       /*!< Timers A, B, C: Balanced Idle on external Event 6 */
0802 #define LL_HRTIM_DLYPRT_DELAYOUT1_EEV7  (HRTIM_OUTR_DLYPRT_2)                                             /*!< Timers A, B, C: Output 1 delayed Idle on external Event 7 */
0803 #define LL_HRTIM_DLYPRT_DELAYOUT2_EEV7  (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_0)                       /*!< Timers A, B, C: Output 2 delayed Idle on external Event 7 */
0804 #define LL_HRTIM_DLYPRT_DELAYBOTH_EEV7  (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_1)                       /*!< Timers A, B, C: Output 1 and output2 delayed Idle on external Event 7 */
0805 #define LL_HRTIM_DLYPRT_BALANCED_EEV7   (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRT_0) /*!< Timers A, B, C: Balanced Idle on external Event 7 */
0806 
0807 #define LL_HRTIM_DLYPRT_DELAYOUT1_EEV8  0x00000000U                                             /*!< Timers D, E: Output 1 delayed Idle on external Event 8 */
0808 #define LL_HRTIM_DLYPRT_DELAYOUT2_EEV8  (HRTIM_OUTR_DLYPRT_0)                                               /*!< Timers D, E: Output 2 delayed Idle on external Event 8 */
0809 #define LL_HRTIM_DLYPRT_DELAYBOTH_EEV8  (HRTIM_OUTR_DLYPRT_1)                                               /*!< Timers D, E: Output 1 and output 2 delayed Idle on external Event 8 */
0810 #define LL_HRTIM_DLYPRT_BALANCED_EEV8   (HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRT_0)                         /*!< Timers D, E: Balanced Idle on external Event 8 */
0811 #define LL_HRTIM_DLYPRT_DELAYOUT1_EEV9  (HRTIM_OUTR_DLYPRT_2)                                               /*!< Timers D, E: Output 1 delayed Idle on external Event 9 */
0812 #define LL_HRTIM_DLYPRT_DELAYOUT2_EEV9  (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_0)                         /*!< Timers D, E: Output 2 delayed Idle on external Event 9 */
0813 #define LL_HRTIM_DLYPRT_DELAYBOTH_EEV9  (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_1)                         /*!< Timers D, E: Output 1 and output2 delayed Idle on external Event 9 */
0814 #define LL_HRTIM_DLYPRT_BALANCED_EEV9   (HRTIM_OUTR_DLYPRT_2 | HRTIM_OUTR_DLYPRT_1 | HRTIM_OUTR_DLYPRT_0)   /*!< Timers D, E: Balanced Idle on external Event 9 */
0815 /**
0816   * @}
0817   */
0818 
0819 /** @defgroup HRTIM_LL_EC_BURSTMODE  BURST MODE
0820   * @ingroup RTEMSBSPsARMSTM32H7
0821   * @{
0822   * @brief Constants defining how the timer behaves during a burst mode operation.
0823   */
0824 #define LL_HRTIM_BURSTMODE_MAINTAINCLOCK (uint32_t)0x000000 /*!< Timer counter clock is maintained and the timer operates normally */
0825 #define LL_HRTIM_BURSTMODE_RESETCOUNTER  (HRTIM_BMCR_MTBM)  /*!< Timer counter clock is stopped and the counter is reset */
0826 /**
0827   * @}
0828   */
0829 
0830 /** @defgroup HRTIM_LL_EC_BURSTDMA  BURST DMA
0831   * @ingroup RTEMSBSPsARMSTM32H7
0832   * @{
0833   * @brief Constants defining the registers that can be written during a burst DMA operation.
0834   */
0835 #define LL_HRTIM_BURSTDMA_NONE     0x00000000U               /*!< No register is updated by Burst DMA accesses */
0836 #define LL_HRTIM_BURSTDMA_MCR      (HRTIM_BDMUPR_MCR)        /*!< MCR register is updated by Burst DMA accesses */
0837 #define LL_HRTIM_BURSTDMA_MICR     (HRTIM_BDMUPR_MICR)       /*!< MICR register is updated by Burst DMA accesses */
0838 #define LL_HRTIM_BURSTDMA_MDIER    (HRTIM_BDMUPR_MDIER)      /*!< MDIER register is updated by Burst DMA accesses */
0839 #define LL_HRTIM_BURSTDMA_MCNT     (HRTIM_BDMUPR_MCNT)       /*!< MCNTR register is updated by Burst DMA accesses */
0840 #define LL_HRTIM_BURSTDMA_MPER     (HRTIM_BDMUPR_MPER)       /*!< MPER register is updated by Burst DMA accesses */
0841 #define LL_HRTIM_BURSTDMA_MREP     (HRTIM_BDMUPR_MREP)       /*!< MREPR register is updated by Burst DMA accesses */
0842 #define LL_HRTIM_BURSTDMA_MCMP1    (HRTIM_BDMUPR_MCMP1)      /*!< MCMP1R register is updated by Burst DMA accesses */
0843 #define LL_HRTIM_BURSTDMA_MCMP2    (HRTIM_BDMUPR_MCMP2)      /*!< MCMP2R register is updated by Burst DMA accesses */
0844 #define LL_HRTIM_BURSTDMA_MCMP3    (HRTIM_BDMUPR_MCMP3)      /*!< MCMP3R register is updated by Burst DMA accesses */
0845 #define LL_HRTIM_BURSTDMA_MCMP4    (HRTIM_BDMUPR_MCMP4)      /*!< MCMP4R register is updated by Burst DMA accesses */
0846 #define LL_HRTIM_BURSTDMA_TIMMCR   (HRTIM_BDTUPR_TIMCR)      /*!< TIMxCR register is updated by Burst DMA accesses */
0847 #define LL_HRTIM_BURSTDMA_TIMICR   (HRTIM_BDTUPR_TIMICR)     /*!< TIMxICR register is updated by Burst DMA accesses */
0848 #define LL_HRTIM_BURSTDMA_TIMDIER  (HRTIM_BDTUPR_TIMDIER)    /*!< TIMxDIER register is updated by Burst DMA accesses */
0849 #define LL_HRTIM_BURSTDMA_TIMCNT   (HRTIM_BDTUPR_TIMCNT)     /*!< CNTxCR register is updated by Burst DMA accesses */
0850 #define LL_HRTIM_BURSTDMA_TIMPER   (HRTIM_BDTUPR_TIMPER)     /*!< PERxR register is updated by Burst DMA accesses */
0851 #define LL_HRTIM_BURSTDMA_TIMREP   (HRTIM_BDTUPR_TIMREP)     /*!< REPxR register is updated by Burst DMA accesses */
0852 #define LL_HRTIM_BURSTDMA_TIMCMP1  (HRTIM_BDTUPR_TIMCMP1)    /*!< CMP1xR register is updated by Burst DMA accesses */
0853 #define LL_HRTIM_BURSTDMA_TIMCMP2  (HRTIM_BDTUPR_TIMCMP2)    /*!< CMP2xR register is updated by Burst DMA accesses */
0854 #define LL_HRTIM_BURSTDMA_TIMCMP3  (HRTIM_BDTUPR_TIMCMP3)    /*!< CMP3xR register is updated by Burst DMA accesses */
0855 #define LL_HRTIM_BURSTDMA_TIMCMP4  (HRTIM_BDTUPR_TIMCMP4)    /*!< CMP4xR register is updated by Burst DMA accesses */
0856 #define LL_HRTIM_BURSTDMA_TIMDTR   (HRTIM_BDTUPR_TIMDTR)     /*!< DTxR register is updated by Burst DMA accesses */
0857 #define LL_HRTIM_BURSTDMA_TIMSET1R (HRTIM_BDTUPR_TIMSET1R)   /*!< SET1R register is updated by Burst DMA accesses */
0858 #define LL_HRTIM_BURSTDMA_TIMRST1R (HRTIM_BDTUPR_TIMRST1R)   /*!< RST1R register is updated by Burst DMA accesses */
0859 #define LL_HRTIM_BURSTDMA_TIMSET2R (HRTIM_BDTUPR_TIMSET2R)   /*!< SET2R register is updated by Burst DMA accesses */
0860 #define LL_HRTIM_BURSTDMA_TIMRST2R (HRTIM_BDTUPR_TIMRST2R)   /*!< RST1R register is updated by Burst DMA accesses */
0861 #define LL_HRTIM_BURSTDMA_TIMEEFR1 (HRTIM_BDTUPR_TIMEEFR1)   /*!< EEFxR1 register is updated by Burst DMA accesses */
0862 #define LL_HRTIM_BURSTDMA_TIMEEFR2 (HRTIM_BDTUPR_TIMEEFR2)   /*!< EEFxR2 register is updated by Burst DMA accesses */
0863 #define LL_HRTIM_BURSTDMA_TIMRSTR  (HRTIM_BDTUPR_TIMRSTR)    /*!< RSTxR register is updated by Burst DMA accesses */
0864 #define LL_HRTIM_BURSTDMA_TIMCHPR  (HRTIM_BDTUPR_TIMCHPR)    /*!< CHPxR register is updated by Burst DMA accesses */
0865 #define LL_HRTIM_BURSTDMA_TIMOUTR  (HRTIM_BDTUPR_TIMOUTR)    /*!< OUTxR register is updated by Burst DMA accesses */
0866 #define LL_HRTIM_BURSTDMA_TIMFLTR  (HRTIM_BDTUPR_TIMFLTR)    /*!< FLTxR register is updated by Burst DMA accesses */
0867 /**
0868   * @}
0869   */
0870 
0871 /** @defgroup HRTIM_LL_EC_CPPSTAT  CURRENT PUSH-PULL STATUS
0872   * @ingroup RTEMSBSPsARMSTM32H7
0873   * @{
0874   * @brief Constants defining on which output the signal is currently applied in push-pull mode.
0875   */
0876 #define LL_HRTIM_CPPSTAT_OUTPUT1   ((uint32_t) 0x00000000U) /*!< Signal applied on output 1 and output 2 forced inactive */
0877 #define LL_HRTIM_CPPSTAT_OUTPUT2   (HRTIM_TIMISR_CPPSTAT)  /*!< Signal applied on output 2 and output 1 forced inactive */
0878 /**
0879   * @}
0880   */
0881 
0882 /** @defgroup HRTIM_LL_EC_IPPSTAT  IDLE PUSH-PULL STATUS
0883   * @ingroup RTEMSBSPsARMSTM32H7
0884   * @{
0885   * @brief Constants defining on which output the signal was applied, in push-pull mode balanced fault mode or delayed idle mode, when the protection was triggered.
0886   */
0887 #define LL_HRTIM_IPPSTAT_OUTPUT1   ((uint32_t) 0x00000000U)    /*!< Protection occurred when the output 1 was active and output 2 forced inactive */
0888 #define LL_HRTIM_IPPSTAT_OUTPUT2   (HRTIM_TIMISR_IPPSTAT)     /*!< Protection occurred when the output 2 was active and output 1 forced inactive */
0889 /**
0890   * @}
0891   */
0892 
0893 /** @defgroup HRTIM_LL_EC_TIM_EEFLTR TIMER EXTERNAL EVENT FILTER
0894   * @ingroup RTEMSBSPsARMSTM32H7
0895   * @{
0896   * @brief Constants defining the event filtering applied to external events by a timer.
0897   */
0898 #define LL_HRTIM_EEFLTR_NONE             (0x00000000U)
0899 #define LL_HRTIM_EEFLTR_BLANKINGCMP1     (HRTIM_EEFR1_EE1FLTR_0)                                                                         /*!< Blanking from counter reset/roll-over to Compare 1 */
0900 #define LL_HRTIM_EEFLTR_BLANKINGCMP2     (HRTIM_EEFR1_EE1FLTR_1)                                                                         /*!< Blanking from counter reset/roll-over to Compare 2 */
0901 #define LL_HRTIM_EEFLTR_BLANKINGCMP3     (HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0)                                                 /*!< Blanking from counter reset/roll-over to Compare 3 */
0902 #define LL_HRTIM_EEFLTR_BLANKINGCMP4     (HRTIM_EEFR1_EE1FLTR_2)                                                                         /*!< Blanking from counter reset/roll-over to Compare 4 */
0903 #define LL_HRTIM_EEFLTR_BLANKINGFLTR1    (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0)                                                 /*!< Blanking from another timing unit: TIMFLTR1 source */
0904 #define LL_HRTIM_EEFLTR_BLANKINGFLTR2    (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1)                                                 /*!< Blanking from another timing unit: TIMFLTR2 source */
0905 #define LL_HRTIM_EEFLTR_BLANKINGFLTR3    (HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0)                         /*!< Blanking from another timing unit: TIMFLTR3 source */
0906 #define LL_HRTIM_EEFLTR_BLANKINGFLTR4    (HRTIM_EEFR1_EE1FLTR_3)                                                                         /*!< Blanking from another timing unit: TIMFLTR4 source */
0907 #define LL_HRTIM_EEFLTR_BLANKINGFLTR5    (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_0)                                                 /*!< Blanking from another timing unit: TIMFLTR5 source */
0908 #define LL_HRTIM_EEFLTR_BLANKINGFLTR6    (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1)                                                 /*!< Blanking from another timing unit: TIMFLTR6 source */
0909 #define LL_HRTIM_EEFLTR_BLANKINGFLTR7    (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0)                         /*!< Blanking from another timing unit: TIMFLTR7 source */
0910 #define LL_HRTIM_EEFLTR_BLANKINGFLTR8    (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2)                                                 /*!< Blanking from another timing unit: TIMFLTR8 source */
0911 #define LL_HRTIM_EEFLTR_WINDOWINGCMP2    (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_0)                         /*!< Windowing from counter reset/roll-over to Compare 2 */
0912 #define LL_HRTIM_EEFLTR_WINDOWINGCMP3    (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1)                         /*!< Windowing from counter reset/roll-over to Compare 3 */
0913 #define LL_HRTIM_EEFLTR_WINDOWINGTIM     (HRTIM_EEFR1_EE1FLTR_3 | HRTIM_EEFR1_EE1FLTR_2 | HRTIM_EEFR1_EE1FLTR_1 | HRTIM_EEFR1_EE1FLTR_0) /*!< Windowing from another timing unit: TIMWIN source */
0914 /**
0915   * @}
0916   */
0917 
0918 /** @defgroup HRTIM_LL_EC_TIM_LATCHSTATUS TIMER EXTERNAL EVENT LATCH STATUS
0919   * @ingroup RTEMSBSPsARMSTM32H7
0920   * @{
0921   * @brief Constants defining whether or not the external event is memorized (latched) and generated as soon as the blanking period is completed or the window ends.
0922   */
0923 #define LL_HRTIM_EELATCH_DISABLED    0x00000000U             /*!< Event is ignored if it happens during a blank, or passed through during a window */
0924 #define LL_HRTIM_EELATCH_ENABLED     HRTIM_EEFR1_EE1LTCH     /*!< Event is latched and delayed till the end of the blanking or windowing period */
0925 /**
0926   * @}
0927   */
0928 
0929 /** @defgroup HRTIM_LL_EC_DT_PRESCALER DEADTIME PRESCALER
0930   * @ingroup RTEMSBSPsARMSTM32H7
0931   * @{
0932   * @brief Constants defining division ratio between the timer clock frequency (fHRTIM) and the deadtime generator clock (fDTG).
0933   */
0934 #define LL_HRTIM_DT_PRESCALER_MUL8    0x00000000U                                         /*!< fDTG = fHRTIM * 8 */
0935 #define LL_HRTIM_DT_PRESCALER_MUL4    (HRTIM_DTR_DTPRSC_0)                                            /*!< fDTG = fHRTIM * 4 */
0936 #define LL_HRTIM_DT_PRESCALER_MUL2    (HRTIM_DTR_DTPRSC_1)                                            /*!< fDTG = fHRTIM * 2 */
0937 #define LL_HRTIM_DT_PRESCALER_DIV1    (HRTIM_DTR_DTPRSC_1 | HRTIM_DTR_DTPRSC_0)                       /*!< fDTG = fHRTIM */
0938 #define LL_HRTIM_DT_PRESCALER_DIV2    (HRTIM_DTR_DTPRSC_2)                                            /*!< fDTG = fHRTIM / 2 */
0939 #define LL_HRTIM_DT_PRESCALER_DIV4    (HRTIM_DTR_DTPRSC_2 | HRTIM_DTR_DTPRSC_0)                       /*!< fDTG = fHRTIM / 4 */
0940 #define LL_HRTIM_DT_PRESCALER_DIV8    (HRTIM_DTR_DTPRSC_2 | HRTIM_DTR_DTPRSC_1)                       /*!< fDTG = fHRTIM / 8 */
0941 #define LL_HRTIM_DT_PRESCALER_DIV16   (HRTIM_DTR_DTPRSC_2 | HRTIM_DTR_DTPRSC_1 | HRTIM_DTR_DTPRSC_0)  /*!< fDTG = fHRTIM / 16 */
0942 /**
0943   * @}
0944   */
0945 
0946 /** @defgroup HRTIM_LL_EC_DT_RISING_SIGN DEADTIME RISING SIGN
0947   * @ingroup RTEMSBSPsARMSTM32H7
0948   * @{
0949   * @brief Constants defining whether the deadtime is positive or negative (overlapping signal) on rising edge.
0950   */
0951 #define LL_HRTIM_DT_RISING_POSITIVE    0x00000000U             /*!< Positive deadtime on rising edge */
0952 #define LL_HRTIM_DT_RISING_NEGATIVE    (HRTIM_DTR_SDTR)        /*!< Negative deadtime on rising edge */
0953 /**
0954   * @}
0955   */
0956 
0957 /** @defgroup HRTIM_LL_EC_DT_FALLING_SIGN DEADTIME FALLING SIGN
0958   * @ingroup RTEMSBSPsARMSTM32H7
0959   * @{
0960   * @brief Constants defining whether the deadtime is positive or negative (overlapping signal) on falling edge.
0961   */
0962 #define LL_HRTIM_DT_FALLING_POSITIVE    0x00000000U             /*!< Positive deadtime on falling edge */
0963 #define LL_HRTIM_DT_FALLING_NEGATIVE    (HRTIM_DTR_SDTF)        /*!< Negative deadtime on falling edge */
0964 /**
0965   * @}
0966   */
0967 
0968 /** @defgroup HRTIM_LL_EC_CHP_PRESCALER CHOPPER MODE PRESCALER
0969   * @ingroup RTEMSBSPsARMSTM32H7
0970   * @{
0971   * @brief Constants defining the frequency of the generated high frequency carrier (fCHPFRQ).
0972   */
0973 #define LL_HRTIM_CHP_PRESCALER_DIV16  0x00000000U                                                                     /*!< fCHPFRQ = fHRTIM / 16  */
0974 #define LL_HRTIM_CHP_PRESCALER_DIV32  (HRTIM_CHPR_CARFRQ_0)                                                                    /*!< fCHPFRQ = fHRTIM / 32  */
0975 #define LL_HRTIM_CHP_PRESCALER_DIV48  (HRTIM_CHPR_CARFRQ_1)                                                                    /*!< fCHPFRQ = fHRTIM / 48  */
0976 #define LL_HRTIM_CHP_PRESCALER_DIV64  (HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0)                                              /*!< fCHPFRQ = fHRTIM / 64  */
0977 #define LL_HRTIM_CHP_PRESCALER_DIV80  (HRTIM_CHPR_CARFRQ_2)                                                                    /*!< fCHPFRQ = fHRTIM / 80  */
0978 #define LL_HRTIM_CHP_PRESCALER_DIV96  (HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_0)                                              /*!< fCHPFRQ = fHRTIM / 96  */
0979 #define LL_HRTIM_CHP_PRESCALER_DIV112 (HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1)                                              /*!< fCHPFRQ = fHRTIM / 112  */
0980 #define LL_HRTIM_CHP_PRESCALER_DIV128 (HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0)                        /*!< fCHPFRQ = fHRTIM / 128  */
0981 #define LL_HRTIM_CHP_PRESCALER_DIV144 (HRTIM_CHPR_CARFRQ_3)                                                                    /*!< fCHPFRQ = fHRTIM / 144  */
0982 #define LL_HRTIM_CHP_PRESCALER_DIV160 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_0)                                              /*!< fCHPFRQ = fHRTIM / 160  */
0983 #define LL_HRTIM_CHP_PRESCALER_DIV176 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_1)                                              /*!< fCHPFRQ = fHRTIM / 176  */
0984 #define LL_HRTIM_CHP_PRESCALER_DIV192 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0)                        /*!< fCHPFRQ = fHRTIM / 192  */
0985 #define LL_HRTIM_CHP_PRESCALER_DIV208 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2)                                              /*!< fCHPFRQ = fHRTIM / 208  */
0986 #define LL_HRTIM_CHP_PRESCALER_DIV224 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_0)                        /*!< fCHPFRQ = fHRTIM / 224  */
0987 #define LL_HRTIM_CHP_PRESCALER_DIV240 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1)                        /*!< fCHPFRQ = fHRTIM / 240  */
0988 #define LL_HRTIM_CHP_PRESCALER_DIV256 (HRTIM_CHPR_CARFRQ_3 | HRTIM_CHPR_CARFRQ_2 | HRTIM_CHPR_CARFRQ_1 | HRTIM_CHPR_CARFRQ_0)  /*!< fCHPFRQ = fHRTIM / 256  */
0989 /**
0990   * @}
0991   */
0992 
0993 /** @defgroup HRTIM_LL_EC_CHP_DUTYCYCLE CHOPPER MODE DUTY CYCLE
0994   * @ingroup RTEMSBSPsARMSTM32H7
0995   * @{
0996   * @brief Constants defining the duty cycle of the generated high frequency carrier. Duty cycle can be adjusted by 1/8 step (from 0/8 up to 7/8).
0997   */
0998 #define LL_HRTIM_CHP_DUTYCYCLE_0    0x00000000U                                              /*!< Only 1st pulse is present */
0999 #define LL_HRTIM_CHP_DUTYCYCLE_125  (HRTIM_CHPR_CARDTY_0)                                             /*!< Duty cycle of the carrier signal is 12.5 % */
1000 #define LL_HRTIM_CHP_DUTYCYCLE_250  (HRTIM_CHPR_CARDTY_1)                                             /*!< Duty cycle of the carrier signal is 25 % */
1001 #define LL_HRTIM_CHP_DUTYCYCLE_375  (HRTIM_CHPR_CARDTY_1 | HRTIM_CHPR_CARDTY_0)                       /*!< Duty cycle of the carrier signal is 37.5 % */
1002 #define LL_HRTIM_CHP_DUTYCYCLE_500  (HRTIM_CHPR_CARDTY_2)                                             /*!< Duty cycle of the carrier signal is 50 % */
1003 #define LL_HRTIM_CHP_DUTYCYCLE_625  (HRTIM_CHPR_CARDTY_2 | HRTIM_CHPR_CARDTY_0)                       /*!< Duty cycle of the carrier signal is 62.5 % */
1004 #define LL_HRTIM_CHP_DUTYCYCLE_750  (HRTIM_CHPR_CARDTY_2 | HRTIM_CHPR_CARDTY_1)                       /*!< Duty cycle of the carrier signal is 75 % */
1005 #define LL_HRTIM_CHP_DUTYCYCLE_875  (HRTIM_CHPR_CARDTY_2 | HRTIM_CHPR_CARDTY_1 | HRTIM_CHPR_CARDTY_0) /*!< Duty cycle of the carrier signal is 87.5 % */
1006 /**
1007   * @}
1008   */
1009 
1010 /** @defgroup HRTIM_LL_EC_CHP_PULSEWIDTH CHOPPER MODE PULSE WIDTH
1011   * @ingroup RTEMSBSPsARMSTM32H7
1012   * @{
1013   * @brief Constants defining the pulse width of the first pulse of the generated high frequency carrier.
1014   */
1015 #define LL_HRTIM_CHP_PULSEWIDTH_16   0x00000000U                                                                 /*!< tSTPW = tHRTIM x 16  */
1016 #define LL_HRTIM_CHP_PULSEWIDTH_32   (HRTIM_CHPR_STRPW_0)                                                                 /*!< tSTPW = tHRTIM x 32  */
1017 #define LL_HRTIM_CHP_PULSEWIDTH_48   (HRTIM_CHPR_STRPW_1)                                                                 /*!< tSTPW = tHRTIM x 48  */
1018 #define LL_HRTIM_CHP_PULSEWIDTH_64   (HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0)                                            /*!< tSTPW = tHRTIM x 64  */
1019 #define LL_HRTIM_CHP_PULSEWIDTH_80   (HRTIM_CHPR_STRPW_2)                                                                 /*!< tSTPW = tHRTIM x 80  */
1020 #define LL_HRTIM_CHP_PULSEWIDTH_96   (HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_0)                                            /*!< tSTPW = tHRTIM x 96  */
1021 #define LL_HRTIM_CHP_PULSEWIDTH_112  (HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1)                                            /*!< tSTPW = tHRTIM x 112  */
1022 #define LL_HRTIM_CHP_PULSEWIDTH_128  (HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0)                       /*!< tSTPW = tHRTIM x 128  */
1023 #define LL_HRTIM_CHP_PULSEWIDTH_144  (HRTIM_CHPR_STRPW_3)                                                                 /*!< tSTPW = tHRTIM x 144  */
1024 #define LL_HRTIM_CHP_PULSEWIDTH_160  (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_0)                                            /*!< tSTPW = tHRTIM x 160  */
1025 #define LL_HRTIM_CHP_PULSEWIDTH_176  (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_1)                                            /*!< tSTPW = tHRTIM x 176  */
1026 #define LL_HRTIM_CHP_PULSEWIDTH_192  (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0)                       /*!< tSTPW = tHRTIM x 192  */
1027 #define LL_HRTIM_CHP_PULSEWIDTH_208  (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2)                                            /*!< tSTPW = tHRTIM x 208  */
1028 #define LL_HRTIM_CHP_PULSEWIDTH_224  (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_0)                       /*!< tSTPW = tHRTIM x 224  */
1029 #define LL_HRTIM_CHP_PULSEWIDTH_240  (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1)                       /*!< tSTPW = tHRTIM x 240  */
1030 #define LL_HRTIM_CHP_PULSEWIDTH_256  (HRTIM_CHPR_STRPW_3 | HRTIM_CHPR_STRPW_2 | HRTIM_CHPR_STRPW_1 | HRTIM_CHPR_STRPW_0)  /*!< tSTPW = tHRTIM x 256  */
1031 /**
1032   * @}
1033   */
1034 
1035 /** @defgroup HRTIM_LL_EC_CROSSBAR_INPUT CROSSBAR INPUT
1036   * @ingroup RTEMSBSPsARMSTM32H7
1037   * @{
1038   * @brief Constants defining the events that can be selected to configure the set/reset crossbar of a timer output.
1039   */
1040 #define LL_HRTIM_CROSSBAR_NONE       0x00000000U             /*!< Reset the output set crossbar */
1041 #define LL_HRTIM_CROSSBAR_RESYNC     (HRTIM_SET1R_RESYNC)    /*!< Timer reset event coming solely from software or SYNC input forces an output level transition */
1042 #define LL_HRTIM_CROSSBAR_TIMPER     (HRTIM_SET1R_PER)       /*!< Timer period event forces an output level transition */
1043 #define LL_HRTIM_CROSSBAR_TIMCMP1    (HRTIM_SET1R_CMP1)      /*!< Timer compare 1 event forces an output level transition */
1044 #define LL_HRTIM_CROSSBAR_TIMCMP2    (HRTIM_SET1R_CMP2)      /*!< Timer compare 2 event forces an output level transition */
1045 #define LL_HRTIM_CROSSBAR_TIMCMP3    (HRTIM_SET1R_CMP3)      /*!< Timer compare 3 event forces an output level transition */
1046 #define LL_HRTIM_CROSSBAR_TIMCMP4    (HRTIM_SET1R_CMP4)      /*!< Timer compare 4 event forces an output level transition */
1047 #define LL_HRTIM_CROSSBAR_MASTERPER  (HRTIM_SET1R_MSTPER)    /*!< The master timer period event forces an output level transition */
1048 #define LL_HRTIM_CROSSBAR_MASTERCMP1 (HRTIM_SET1R_MSTCMP1)   /*!< Master Timer compare 1 event forces an output level transition */
1049 #define LL_HRTIM_CROSSBAR_MASTERCMP2 (HRTIM_SET1R_MSTCMP2)   /*!< Master Timer compare 2 event forces an output level transition */
1050 #define LL_HRTIM_CROSSBAR_MASTERCMP3 (HRTIM_SET1R_MSTCMP3)   /*!< Master Timer compare 3 event forces an output level transition */
1051 #define LL_HRTIM_CROSSBAR_MASTERCMP4 (HRTIM_SET1R_MSTCMP4)   /*!< Master Timer compare 4 event forces an output level transition */
1052 #define LL_HRTIM_CROSSBAR_TIMEV_1    (HRTIM_SET1R_TIMEVNT1)  /*!< Timer event 1 forces an output level transition */
1053 #define LL_HRTIM_CROSSBAR_TIMEV_2    (HRTIM_SET1R_TIMEVNT2)  /*!< Timer event 2 forces an output level transition */
1054 #define LL_HRTIM_CROSSBAR_TIMEV_3    (HRTIM_SET1R_TIMEVNT3)  /*!< Timer event 3 forces an output level transition */
1055 #define LL_HRTIM_CROSSBAR_TIMEV_4    (HRTIM_SET1R_TIMEVNT4)  /*!< Timer event 4 forces an output level transition */
1056 #define LL_HRTIM_CROSSBAR_TIMEV_5    (HRTIM_SET1R_TIMEVNT5)  /*!< Timer event 5 forces an output level transition */
1057 #define LL_HRTIM_CROSSBAR_TIMEV_6    (HRTIM_SET1R_TIMEVNT6)  /*!< Timer event 6 forces an output level transition */
1058 #define LL_HRTIM_CROSSBAR_TIMEV_7    (HRTIM_SET1R_TIMEVNT7)  /*!< Timer event 7 forces an output level transition */
1059 #define LL_HRTIM_CROSSBAR_TIMEV_8    (HRTIM_SET1R_TIMEVNT8)  /*!< Timer event 8 forces an output level transition */
1060 #define LL_HRTIM_CROSSBAR_TIMEV_9    (HRTIM_SET1R_TIMEVNT9)  /*!< Timer event 9 forces an output level transition */
1061 #define LL_HRTIM_CROSSBAR_EEV_1      (HRTIM_SET1R_EXTVNT1)   /*!< External event 1 forces an output level transition */
1062 #define LL_HRTIM_CROSSBAR_EEV_2      (HRTIM_SET1R_EXTVNT2)   /*!< External event 2 forces an output level transition */
1063 #define LL_HRTIM_CROSSBAR_EEV_3      (HRTIM_SET1R_EXTVNT3)   /*!< External event 3 forces an output level transition */
1064 #define LL_HRTIM_CROSSBAR_EEV_4      (HRTIM_SET1R_EXTVNT4)   /*!< External event 4 forces an output level transition */
1065 #define LL_HRTIM_CROSSBAR_EEV_5      (HRTIM_SET1R_EXTVNT5)   /*!< External event 5 forces an output level transition */
1066 #define LL_HRTIM_CROSSBAR_EEV_6      (HRTIM_SET1R_EXTVNT6)   /*!< External event 6 forces an output level transition */
1067 #define LL_HRTIM_CROSSBAR_EEV_7      (HRTIM_SET1R_EXTVNT7)   /*!< External event 7 forces an output level transition */
1068 #define LL_HRTIM_CROSSBAR_EEV_8      (HRTIM_SET1R_EXTVNT8)   /*!< External event 8 forces an output level transition */
1069 #define LL_HRTIM_CROSSBAR_EEV_9      (HRTIM_SET1R_EXTVNT9)   /*!< External event 9 forces an output level transition */
1070 #define LL_HRTIM_CROSSBAR_EEV_10     (HRTIM_SET1R_EXTVNT10)  /*!< External event 10 forces an output level transition */
1071 #define LL_HRTIM_CROSSBAR_UPDATE     (HRTIM_SET1R_UPDATE)    /*!< Timer register update event forces an output level transition */
1072 /**
1073   * @}
1074   */
1075 
1076 /** @defgroup HRTIM_LL_EC_OUT_POLARITY OUPUT_POLARITY
1077   * @ingroup RTEMSBSPsARMSTM32H7
1078   * @{
1079   * @brief Constants defining the polarity of a timer output.
1080   */
1081 #define LL_HRTIM_OUT_POSITIVE_POLARITY    0x00000000U             /*!< Output is active HIGH */
1082 #define LL_HRTIM_OUT_NEGATIVE_POLARITY    (HRTIM_OUTR_POL1)       /*!< Output is active LOW */
1083 /**
1084   * @}
1085   */
1086 
1087 /** @defgroup HRTIM_LL_EC_OUT_IDLEMODE OUTPUT IDLE MODE
1088   * @ingroup RTEMSBSPsARMSTM32H7
1089   * @{
1090   * @brief Constants defining whether or not the timer output transition to its IDLE state when burst mode is entered.
1091   */
1092 #define LL_HRTIM_OUT_NO_IDLE             0x00000000U            /*!< The output is not affected by the burst mode operation */
1093 #define LL_HRTIM_OUT_IDLE_WHEN_BURST     (HRTIM_OUTR_IDLM1)     /*!< The output is in idle state when requested by the burst mode controller */
1094 /**
1095   * @}
1096   */
1097 
1098 /** @defgroup HRTIM_LL_EC_HALF_MODE HALF MODE
1099   * @ingroup RTEMSBSPsARMSTM32H7
1100   * @{
1101   * @brief Constants defining the half mode of an HRTIM Timer instance.
1102   */
1103 #define LL_HRTIM_HALF_MODE_DISABLED          0x000U              /*!< HRTIM Half Mode is disabled */
1104 #define LL_HRTIM_HALF_MODE_ENABLE            HRTIM_MCR_HALF      /*!< HRTIM Half Mode is Half */
1105 /**
1106   * @}
1107   */
1108 
1109 /** @defgroup HRTIM_LL_EC_OUT_IDLELEVEL OUTPUT IDLE LEVEL
1110   * @ingroup RTEMSBSPsARMSTM32H7
1111   * @{
1112   * @brief Constants defining the output level when output is in IDLE state
1113   */
1114 #define LL_HRTIM_OUT_IDLELEVEL_INACTIVE   0x00000000U           /*!< Output at inactive level when in IDLE state */
1115 #define LL_HRTIM_OUT_IDLELEVEL_ACTIVE     (HRTIM_OUTR_IDLES1)   /*!< Output at active level when in IDLE state */
1116 /**
1117   * @}
1118   */
1119 
1120 /** @defgroup HRTIM_LL_EC_OUT_FAULTSTATE OUTPUT FAULT STATE
1121   * @ingroup RTEMSBSPsARMSTM32H7
1122   * @{
1123   * @brief Constants defining the output level when output is in FAULT state.
1124   */
1125 #define LL_HRTIM_OUT_FAULTSTATE_NO_ACTION 0x00000000U                      /*!< The output is not affected by the fault input */
1126 #define LL_HRTIM_OUT_FAULTSTATE_ACTIVE    (HRTIM_OUTR_FAULT1_0)                        /*!< Output at active level when in FAULT state */
1127 #define LL_HRTIM_OUT_FAULTSTATE_INACTIVE  (HRTIM_OUTR_FAULT1_1)                        /*!< Output at inactive level when in FAULT state */
1128 #define LL_HRTIM_OUT_FAULTSTATE_HIGHZ     (HRTIM_OUTR_FAULT1_1 | HRTIM_OUTR_FAULT1_0)  /*!< Output is tri-stated when in FAULT state */
1129 /**
1130   * @}
1131   */
1132 
1133 /** @defgroup HRTIM_LL_EC_OUT_CHOPPERMODE OUTPUT CHOPPER MODE
1134   * @ingroup RTEMSBSPsARMSTM32H7
1135   * @{
1136   * @brief Constants defining whether or not chopper mode is enabled for a timer output.
1137   */
1138 #define LL_HRTIM_OUT_CHOPPERMODE_DISABLED   0x00000000U             /*!< Output signal is not altered  */
1139 #define LL_HRTIM_OUT_CHOPPERMODE_ENABLED    (HRTIM_OUTR_CHP1)       /*!< Output signal is chopped by a carrier signal  */
1140 /**
1141   * @}
1142   */
1143 
1144 /** @defgroup HRTIM_LL_EC_OUT_BM_ENTRYMODE OUTPUT BURST MODE ENTRY MODE
1145   * @ingroup RTEMSBSPsARMSTM32H7
1146   * @{
1147   * @brief Constants defining the idle state entry mode during a burst mode operation. It is possible to delay the burst mode entry and force the output to an inactive state
1148 during a programmable period before the output takes its idle state.
1149   */
1150 #define LL_HRTIM_OUT_BM_ENTRYMODE_REGULAR   0x00000000U            /*!< The programmed Idle state is applied immediately to the Output */
1151 #define LL_HRTIM_OUT_BM_ENTRYMODE_DELAYED   (HRTIM_OUTR_DIDL1)     /*!< Deadtime is inserted on output before entering the idle mode */
1152 /**
1153   * @}
1154   */
1155 /** @defgroup HRTIM_LL_EC_OUT_LEVEL OUTPUT LEVEL
1156   * @ingroup RTEMSBSPsARMSTM32H7
1157   * @{
1158   * @brief Constants defining the level of a timer output.
1159   */
1160 #define LL_HRTIM_OUT_LEVEL_INACTIVE   0x00000000U            /*!< Corresponds to a logic level 0 for a positive polarity (High) and to a logic level 1 for a negative polarity (Low) */
1161 #define LL_HRTIM_OUT_LEVEL_ACTIVE     ((uint32_t)0x00000001) /*!< Corresponds to a logic level 1 for a positive polarity (High) and to a logic level 0 for a negative polarity (Low) */
1162 /**
1163   * @}
1164   */
1165 
1166 /** @defgroup HRTIM_LL_EC_EE_SRC EXTERNAL EVENT SOURCE
1167   * @ingroup RTEMSBSPsARMSTM32H7
1168   * @{
1169   * @brief Constants defining available sources associated to external events.
1170   */
1171 #define LL_HRTIM_EE_SRC_1         0x00000000U                                    /*!< External event source 1 (EExSrc1)*/
1172 #define LL_HRTIM_EE_SRC_2         (HRTIM_EECR1_EE1SRC_0)                         /*!< External event source 2 (EExSrc2) */
1173 #define LL_HRTIM_EE_SRC_3         (HRTIM_EECR1_EE1SRC_1)                         /*!< External event source 3 (EExSrc3) */
1174 #define LL_HRTIM_EE_SRC_4         (HRTIM_EECR1_EE1SRC_1 | HRTIM_EECR1_EE1SRC_0)  /*!< External event source 4 (EExSrc4) */
1175 /**
1176   * @}
1177   */
1178 /** @defgroup HRTIM_LL_EC_EE_POLARITY EXTERNAL EVENT POLARITY
1179   * @ingroup RTEMSBSPsARMSTM32H7
1180   * @{
1181   * @brief Constants defining the polarity of an external event.
1182   */
1183 #define LL_HRTIM_EE_POLARITY_HIGH    0x00000000U             /*!< External event is active high */
1184 #define LL_HRTIM_EE_POLARITY_LOW     (HRTIM_EECR1_EE1POL)    /*!< External event is active low */
1185 /**
1186   * @}
1187   */
1188 
1189 /** @defgroup HRTIM_LL_EC_EE_SENSITIVITY EXTERNAL EVENT SENSITIVITY
1190   * @ingroup RTEMSBSPsARMSTM32H7
1191   * @{
1192   * @brief Constants defining the sensitivity (level-sensitive or edge-sensitive) of an external event.
1193   */
1194 #define LL_HRTIM_EE_SENSITIVITY_LEVEL          0x00000000U                        /*!< External event is active on level */
1195 #define LL_HRTIM_EE_SENSITIVITY_RISINGEDGE     (HRTIM_EECR1_EE1SNS_0)                         /*!< External event is active on Rising edge */
1196 #define LL_HRTIM_EE_SENSITIVITY_FALLINGEDGE    (HRTIM_EECR1_EE1SNS_1)                         /*!< External event is active on Falling edge */
1197 #define LL_HRTIM_EE_SENSITIVITY_BOTHEDGES      (HRTIM_EECR1_EE1SNS_1 | HRTIM_EECR1_EE1SNS_0)  /*!< External event is active on Rising and Falling edges */
1198 /**
1199   * @}
1200   */
1201 
1202 /** @defgroup HRTIM_LL_EC_EE_FASTMODE EXTERNAL EVENT FAST MODE
1203   * @ingroup RTEMSBSPsARMSTM32H7
1204   * @{
1205   * @brief Constants defining whether or not an external event is programmed in fast mode.
1206   */
1207 #define LL_HRTIM_EE_FASTMODE_DISABLE         0x00000000U              /*!< External Event is re-synchronized by the HRTIM logic before acting on outputs */
1208 #define LL_HRTIM_EE_FASTMODE_ENABLE          (HRTIM_EECR1_EE1FAST)    /*!< External Event is acting asynchronously on outputs (low latency mode) */
1209 /**
1210   * @}
1211   */
1212 
1213 /** @defgroup HRTIM_LL_EC_EE_FILTER EXTERNAL EVENT DIGITAL FILTER
1214   * @ingroup RTEMSBSPsARMSTM32H7
1215   * @{
1216   * @brief Constants defining the frequency used to sample an external event input (fSAMPLING) and the length (N) of the digital filter applied.
1217   */
1218 #define LL_HRTIM_EE_FILTER_NONE      0x00000000U                                                               /*!< Filter disabled */
1219 #define LL_HRTIM_EE_FILTER_1         (HRTIM_EECR3_EE6F_0)                                                                  /*!< fSAMPLING = fHRTIM, N=2 */
1220 #define LL_HRTIM_EE_FILTER_2         (HRTIM_EECR3_EE6F_1)                                                                  /*!< fSAMPLING = fHRTIM, N=4 */
1221 #define LL_HRTIM_EE_FILTER_3         (HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0)                                             /*!< fSAMPLING = fHRTIM, N=8 */
1222 #define LL_HRTIM_EE_FILTER_4         (HRTIM_EECR3_EE6F_2)                                                                  /*!< fSAMPLING = fEEVS/2, N=6 */
1223 #define LL_HRTIM_EE_FILTER_5         (HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_0)                                             /*!< fSAMPLING = fEEVS/2, N=8 */
1224 #define LL_HRTIM_EE_FILTER_6         (HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_1)                                             /*!< fSAMPLING = fEEVS/4, N=6 */
1225 #define LL_HRTIM_EE_FILTER_7         (HRTIM_EECR3_EE6F_2 | HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0)                        /*!< fSAMPLING = fEEVS/4, N=8 */
1226 #define LL_HRTIM_EE_FILTER_8         (HRTIM_EECR3_EE6F_3)                                                                  /*!< fSAMPLING = fEEVS/8, N=6 */
1227 #define LL_HRTIM_EE_FILTER_9         (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_0)                                             /*!< fSAMPLING = fEEVS/8, N=8 */
1228 #define LL_HRTIM_EE_FILTER_10        (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_1)                                             /*!< fSAMPLING = fEEVS/16, N=5 */
1229 #define LL_HRTIM_EE_FILTER_11        (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0)                        /*!< fSAMPLING = fEEVS/16, N=6 */
1230 #define LL_HRTIM_EE_FILTER_12        (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2)                                             /*!< fSAMPLING = fEEVS/16, N=8 */
1231 #define LL_HRTIM_EE_FILTER_13        (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2  | HRTIM_EECR3_EE6F_0)                       /*!< fSAMPLING = fEEVS/32, N=5 */
1232 #define LL_HRTIM_EE_FILTER_14        (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2  | HRTIM_EECR3_EE6F_1)                       /*!< fSAMPLING = fEEVS/32, N=6 */
1233 #define LL_HRTIM_EE_FILTER_15        (HRTIM_EECR3_EE6F_3 | HRTIM_EECR3_EE6F_2  | HRTIM_EECR3_EE6F_1 | HRTIM_EECR3_EE6F_0)  /*!< fSAMPLING = fEEVS/32, N=8 */
1234 /**
1235   * @}
1236   */
1237 
1238 /** @defgroup HRTIM_LL_EC_EE_PRESCALER EXTERNAL EVENT PRESCALER
1239   * @ingroup RTEMSBSPsARMSTM32H7
1240   * @{
1241   * @brief Constants defining division ratio between the timer clock frequency (fHRTIM) and the external event signal sampling clock (fEEVS) used by the digital filters.
1242   */
1243 #define LL_HRTIM_EE_PRESCALER_DIV1    0x00000000U                     /*!< fEEVS = fHRTIM */
1244 #define LL_HRTIM_EE_PRESCALER_DIV2    (HRTIM_EECR3_EEVSD_0)                       /*!< fEEVS = fHRTIM / 2 */
1245 #define LL_HRTIM_EE_PRESCALER_DIV4    (HRTIM_EECR3_EEVSD_1)                       /*!< fEEVS = fHRTIM / 4 */
1246 #define LL_HRTIM_EE_PRESCALER_DIV8    (HRTIM_EECR3_EEVSD_1 | HRTIM_EECR3_EEVSD_0) /*!< fEEVS = fHRTIM / 8 */
1247 /**
1248   * @}
1249   */
1250 
1251 /** @defgroup HRTIM_LL_EC_FLT_SRC FAULT SOURCE
1252   * @ingroup RTEMSBSPsARMSTM32H7
1253   * @{
1254   * @brief Constants defining whether a faults is be triggered by any external or internal fault source.
1255   */
1256 #define LL_HRTIM_FLT_SRC_DIGITALINPUT         0x00000000U                /*!< Fault input is FLT input pin */
1257 #define LL_HRTIM_FLT_SRC_INTERNAL             HRTIM_FLTINR1_FLT1SRC      /*!< Fault input is FLT_Int signal (e.g. internal comparator) */
1258 /**
1259   * @}
1260   */
1261 
1262 /** @defgroup HRTIM_LL_EC_FLT_POLARITY FAULT POLARITY
1263   * @ingroup RTEMSBSPsARMSTM32H7
1264   * @{
1265   * @brief Constants defining the polarity of a fault event.
1266   */
1267 #define LL_HRTIM_FLT_POLARITY_LOW     0x00000000U                /*!< Fault input is active low */
1268 #define LL_HRTIM_FLT_POLARITY_HIGH    (HRTIM_FLTINR1_FLT1P)      /*!< Fault input is active high */
1269 /**
1270   * @}
1271   */
1272 
1273 /** @defgroup HRTIM_LL_EC_FLT_FILTER FAULT DIGITAL FILTER
1274   * @ingroup RTEMSBSPsARMSTM32H7
1275   * @{
1276   * @brief Constants defining the frequency used to sample the fault input (fSAMPLING) and the length (N) of the digital filter applied.
1277   */
1278 #define LL_HRTIM_FLT_FILTER_NONE      0x00000000U                                                                          /*!< Filter disabled */
1279 #define LL_HRTIM_FLT_FILTER_1         (HRTIM_FLTINR1_FLT1F_0)                                                                          /*!< fSAMPLING= fHRTIM, N=2 */
1280 #define LL_HRTIM_FLT_FILTER_2         (HRTIM_FLTINR1_FLT1F_1)                                                                          /*!< fSAMPLING= fHRTIM, N=4 */
1281 #define LL_HRTIM_FLT_FILTER_3         (HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0)                                                  /*!< fSAMPLING= fHRTIM, N=8 */
1282 #define LL_HRTIM_FLT_FILTER_4         (HRTIM_FLTINR1_FLT1F_2)                                                                          /*!< fSAMPLING= fFLTS/2, N=6 */
1283 #define LL_HRTIM_FLT_FILTER_5         (HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_0)                                                  /*!< fSAMPLING= fFLTS/2, N=8 */
1284 #define LL_HRTIM_FLT_FILTER_6         (HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1)                                                  /*!< fSAMPLING= fFLTS/4, N=6 */
1285 #define LL_HRTIM_FLT_FILTER_7         (HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0)                          /*!< fSAMPLING= fFLTS/4, N=8 */
1286 #define LL_HRTIM_FLT_FILTER_8         (HRTIM_FLTINR1_FLT1F_3)                                                                          /*!< fSAMPLING= fFLTS/8, N=6 */
1287 #define LL_HRTIM_FLT_FILTER_9         (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_0)                                                  /*!< fSAMPLING= fFLTS/8, N=8 */
1288 #define LL_HRTIM_FLT_FILTER_10        (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_1)                                                  /*!< fSAMPLING= fFLTS/16, N=5 */
1289 #define LL_HRTIM_FLT_FILTER_11        (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0)                          /*!< fSAMPLING= fFLTS/16, N=6 */
1290 #define LL_HRTIM_FLT_FILTER_12        (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2)                                                  /*!< fSAMPLING= fFLTS/16, N=8 */
1291 #define LL_HRTIM_FLT_FILTER_13        (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_0)                          /*!< fSAMPLING= fFLTS/32, N=5 */
1292 #define LL_HRTIM_FLT_FILTER_14        (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1)                          /*!< fSAMPLING= fFLTS/32, N=6 */
1293 #define LL_HRTIM_FLT_FILTER_15        (HRTIM_FLTINR1_FLT1F_3 | HRTIM_FLTINR1_FLT1F_2 | HRTIM_FLTINR1_FLT1F_1 | HRTIM_FLTINR1_FLT1F_0)  /*!< fSAMPLING= fFLTS/32, N=8 */
1294 /**
1295   * @}
1296   */
1297 
1298 /** @defgroup HRTIM_LL_EC_FLT_PRESCALER BURST FAULT PRESCALER
1299   * @ingroup RTEMSBSPsARMSTM32H7
1300   * @{
1301   * @brief Constants defining the division ratio between the timer clock frequency (fHRTIM) and the fault signal sampling clock (fFLTS) used  by the digital filters.
1302   */
1303 #define LL_HRTIM_FLT_PRESCALER_DIV1    0x00000000U                                     /*!< fFLTS = fHRTIM */
1304 #define LL_HRTIM_FLT_PRESCALER_DIV2    (HRTIM_FLTINR2_FLTSD_0)                         /*!< fFLTS = fHRTIM / 2 */
1305 #define LL_HRTIM_FLT_PRESCALER_DIV4    (HRTIM_FLTINR2_FLTSD_1)                         /*!< fFLTS = fHRTIM / 4 */
1306 #define LL_HRTIM_FLT_PRESCALER_DIV8    (HRTIM_FLTINR2_FLTSD_1 | HRTIM_FLTINR2_FLTSD_0) /*!< fFLTS = fHRTIM / 8 */
1307 /**
1308   * @}
1309   */
1310 
1311 /** @defgroup HRTIM_LL_EC_BM_MODE BURST MODE OPERATING MODE
1312   * @ingroup RTEMSBSPsARMSTM32H7
1313   * @{
1314   * @brief Constants defining if the burst mode is entered once or if it is continuously operating.
1315   */
1316 #define LL_HRTIM_BM_MODE_SINGLESHOT  0x00000000U            /*!< Burst mode operates in single shot mode */
1317 #define LL_HRTIM_BM_MODE_CONTINOUS   (HRTIM_BMCR_BMOM)      /*!< Burst mode operates in continuous mode */
1318 /**
1319   * @}
1320   */
1321 
1322 /** @defgroup HRTIM_LL_EC_BM_CLKSRC BURST MODE CLOCK SOURCE
1323   * @ingroup RTEMSBSPsARMSTM32H7
1324   * @{
1325   * @brief Constants defining the clock source for the burst mode counter.
1326   */
1327 #define LL_HRTIM_BM_CLKSRC_MASTER     0x00000000U                                         /*!< Master timer counter reset/roll-over is used as clock source for the burst mode counter */
1328 #define LL_HRTIM_BM_CLKSRC_TIMER_A    (HRTIM_BMCR_BMCLK_0)                                            /*!< Timer A counter reset/roll-over is used as clock source for the burst mode counter */
1329 #define LL_HRTIM_BM_CLKSRC_TIMER_B    (HRTIM_BMCR_BMCLK_1)                                            /*!< Timer B counter reset/roll-over is used as clock source for the burst mode counter */
1330 #define LL_HRTIM_BM_CLKSRC_TIMER_C    (HRTIM_BMCR_BMCLK_1 | HRTIM_BMCR_BMCLK_0)                       /*!< Timer C counter reset/roll-over is used as clock source for the burst mode counter */
1331 #define LL_HRTIM_BM_CLKSRC_TIMER_D    (HRTIM_BMCR_BMCLK_2)                                            /*!< Timer D counter reset/roll-over is used as clock source for the burst mode counter */
1332 #define LL_HRTIM_BM_CLKSRC_TIMER_E    (HRTIM_BMCR_BMCLK_2 | HRTIM_BMCR_BMCLK_0)                       /*!< Timer E counter reset/roll-over is used as clock source for the burst mode counter */
1333 #define LL_HRTIM_BM_CLKSRC_TIM16_OC   (HRTIM_BMCR_BMCLK_2 | HRTIM_BMCR_BMCLK_1)                       /*!< On-chip Event 1 (BMClk[1]), acting as a burst mode counter clock */
1334 #define LL_HRTIM_BM_CLKSRC_TIM17_OC   (HRTIM_BMCR_BMCLK_2 | HRTIM_BMCR_BMCLK_1 | HRTIM_BMCR_BMCLK_0)  /*!< On-chip Event 2 (BMClk[2]), acting as a burst mode counter clock */
1335 #define LL_HRTIM_BM_CLKSRC_TIM7_TRGO  (HRTIM_BMCR_BMCLK_3)                                            /*!< On-chip Event 3 (BMClk[3]), acting as a burst mode counter clock */
1336 #define LL_HRTIM_BM_CLKSRC_FHRTIM     (HRTIM_BMCR_BMCLK_3 | HRTIM_BMCR_BMCLK_1)                       /*!< Prescaled fHRTIM clock is used as clock source for the burst mode counter */
1337 /**
1338   * @}
1339   */
1340 
1341 /** @defgroup HRTIM_LL_EC_BM_PRESCALER BURST MODE PRESCALER
1342   * @ingroup RTEMSBSPsARMSTM32H7
1343   * @{
1344   * @brief Constants defining the prescaling ratio of the fHRTIM clock for the burst mode controller (fBRST).
1345   */
1346 #define LL_HRTIM_BM_PRESCALER_DIV1     0x00000000U                                                                 /*!< fBRST = fHRTIM */
1347 #define LL_HRTIM_BM_PRESCALER_DIV2     (HRTIM_BMCR_BMPRSC_0)                                                                   /*!< fBRST = fHRTIM/2 */
1348 #define LL_HRTIM_BM_PRESCALER_DIV4     (HRTIM_BMCR_BMPRSC_1)                                                                   /*!< fBRST = fHRTIM/4 */
1349 #define LL_HRTIM_BM_PRESCALER_DIV8     (HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0)                                             /*!< fBRST = fHRTIM/8 */
1350 #define LL_HRTIM_BM_PRESCALER_DIV16    (HRTIM_BMCR_BMPRSC_2)                                                                   /*!< fBRST = fHRTIM/16 */
1351 #define LL_HRTIM_BM_PRESCALER_DIV32    (HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_0)                                             /*!< fBRST = fHRTIM/32 */
1352 #define LL_HRTIM_BM_PRESCALER_DIV64    (HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1)                                             /*!< fBRST = fHRTIM/64 */
1353 #define LL_HRTIM_BM_PRESCALER_DIV128   (HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0)                       /*!< fBRST = fHRTIM/128 */
1354 #define LL_HRTIM_BM_PRESCALER_DIV256   (HRTIM_BMCR_BMPRSC_3)                                                                   /*!< fBRST = fHRTIM/256 */
1355 #define LL_HRTIM_BM_PRESCALER_DIV512   (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_0)                                             /*!< fBRST = fHRTIM/512 */
1356 #define LL_HRTIM_BM_PRESCALER_DIV1024  (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_1)                                             /*!< fBRST = fHRTIM/1024 */
1357 #define LL_HRTIM_BM_PRESCALER_DIV2048  (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0)                       /*!< fBRST = fHRTIM/2048*/
1358 #define LL_HRTIM_BM_PRESCALER_DIV4096  (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2)                                             /*!< fBRST = fHRTIM/4096 */
1359 #define LL_HRTIM_BM_PRESCALER_DIV8192  (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_0)                       /*!< fBRST = fHRTIM/8192 */
1360 #define LL_HRTIM_BM_PRESCALER_DIV16384 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1)                       /*!< fBRST = fHRTIM/16384 */
1361 #define LL_HRTIM_BM_PRESCALER_DIV32768 (HRTIM_BMCR_BMPRSC_3 | HRTIM_BMCR_BMPRSC_2 | HRTIM_BMCR_BMPRSC_1 | HRTIM_BMCR_BMPRSC_0) /*!< fBRST = fHRTIM/32768 */
1362 /**
1363   * @}
1364   */
1365 
1366 /** @defgroup HRTIM_LL_EC_BM_TRIG HRTIM BURST MODE TRIGGER
1367   * @ingroup RTEMSBSPsARMSTM32H7
1368   * @{
1369   * @brief Constants defining the events that can be used to trig the burst mode operation.
1370   */
1371 #define LL_HRTIM_BM_TRIG_NONE               0x00000000U             /*!<  No trigger */
1372 #define LL_HRTIM_BM_TRIG_MASTER_RESET       (HRTIM_BMTRGR_MSTRST)   /*!<  Master timer reset event is starting the burst mode operation */
1373 #define LL_HRTIM_BM_TRIG_MASTER_REPETITION  (HRTIM_BMTRGR_MSTREP)   /*!<  Master timer repetition event is starting the burst mode operation */
1374 #define LL_HRTIM_BM_TRIG_MASTER_CMP1        (HRTIM_BMTRGR_MSTCMP1)  /*!<  Master timer compare 1 event is starting the burst mode operation */
1375 #define LL_HRTIM_BM_TRIG_MASTER_CMP2        (HRTIM_BMTRGR_MSTCMP2)  /*!<  Master timer compare 2 event is starting the burst mode operation */
1376 #define LL_HRTIM_BM_TRIG_MASTER_CMP3        (HRTIM_BMTRGR_MSTCMP3)  /*!<  Master timer compare 3 event is starting the burst mode operation */
1377 #define LL_HRTIM_BM_TRIG_MASTER_CMP4        (HRTIM_BMTRGR_MSTCMP4)  /*!<  Master timer compare 4 event is starting the burst mode operation */
1378 #define LL_HRTIM_BM_TRIG_TIMA_RESET         (HRTIM_BMTRGR_TARST)    /*!< Timer A reset event is starting the burst mode operation */
1379 #define LL_HRTIM_BM_TRIG_TIMA_REPETITION    (HRTIM_BMTRGR_TAREP)    /*!< Timer A repetition event is starting the burst mode operation */
1380 #define LL_HRTIM_BM_TRIG_TIMA_CMP1          (HRTIM_BMTRGR_TACMP1)   /*!< Timer A compare 1 event is starting the burst mode operation */
1381 #define LL_HRTIM_BM_TRIG_TIMA_CMP2          (HRTIM_BMTRGR_TACMP2)   /*!< Timer A compare 2 event is starting the burst mode operation */
1382 #define LL_HRTIM_BM_TRIG_TIMB_RESET         (HRTIM_BMTRGR_TBRST)    /*!< Timer B reset event is starting the burst mode operation */
1383 #define LL_HRTIM_BM_TRIG_TIMB_REPETITION    (HRTIM_BMTRGR_TBREP)    /*!< Timer B repetition event is starting the burst mode operation */
1384 #define LL_HRTIM_BM_TRIG_TIMB_CMP1          (HRTIM_BMTRGR_TBCMP1)   /*!< Timer B compare 1 event is starting the burst mode operation */
1385 #define LL_HRTIM_BM_TRIG_TIMB_CMP2          (HRTIM_BMTRGR_TBCMP2)   /*!< Timer B compare 2 event is starting the burst mode operation */
1386 #define LL_HRTIM_BM_TRIG_TIMC_RESET         (HRTIM_BMTRGR_TCRST)    /*!< Timer C resetevent is starting the burst mode operation  */
1387 #define LL_HRTIM_BM_TRIG_TIMC_REPETITION    (HRTIM_BMTRGR_TCREP)    /*!< Timer C repetition event is starting the burst mode operation */
1388 #define LL_HRTIM_BM_TRIG_TIMC_CMP1          (HRTIM_BMTRGR_TCCMP1)   /*!< Timer C compare 1 event is starting the burst mode operation */
1389 #define LL_HRTIM_BM_TRIG_TIMC_CMP2          (HRTIM_BMTRGR_TCCMP2)   /*!< Timer C compare 2 event is starting the burst mode operation */
1390 #define LL_HRTIM_BM_TRIG_TIMD_RESET         (HRTIM_BMTRGR_TDRST)    /*!< Timer D reset event is starting the burst mode operation */
1391 #define LL_HRTIM_BM_TRIG_TIMD_REPETITION    (HRTIM_BMTRGR_TDREP)    /*!< Timer D repetition event is starting the burst mode operation */
1392 #define LL_HRTIM_BM_TRIG_TIMD_CMP1          (HRTIM_BMTRGR_TDCMP1)   /*!< Timer D compare 1 event is starting the burst mode operation */
1393 #define LL_HRTIM_BM_TRIG_TIMD_CMP2          (HRTIM_BMTRGR_TDCMP2)   /*!< Timer D compare 2 event is starting the burst mode operation */
1394 #define LL_HRTIM_BM_TRIG_TIME_RESET         (HRTIM_BMTRGR_TERST)    /*!< Timer E reset event is starting the burst mode operation */
1395 #define LL_HRTIM_BM_TRIG_TIME_REPETITION    (HRTIM_BMTRGR_TEREP)    /*!< Timer E repetition event is starting the burst mode operation */
1396 #define LL_HRTIM_BM_TRIG_TIME_CMP1          (HRTIM_BMTRGR_TECMP1)   /*!< Timer E compare 1 event is starting the burst mode operation */
1397 #define LL_HRTIM_BM_TRIG_TIME_CMP2          (HRTIM_BMTRGR_TECMP2)   /*!< Timer E compare 2 event is starting the burst mode operation */
1398 #define LL_HRTIM_BM_TRIG_TIMA_EVENT7        (HRTIM_BMTRGR_TAEEV7)   /*!< Timer A period following an external event 7 (conditioned by TIMA filters) is starting the burst mode operation  */
1399 #define LL_HRTIM_BM_TRIG_TIMD_EVENT8        (HRTIM_BMTRGR_TDEEV8)   /*!< Timer D period following an external event 8 (conditioned by TIMD filters) is starting the burst mode operation  */
1400 #define LL_HRTIM_BM_TRIG_EVENT_7            (HRTIM_BMTRGR_EEV7)     /*!< External event 7 conditioned by TIMA filters is starting the burst mode operation */
1401 #define LL_HRTIM_BM_TRIG_EVENT_8            (HRTIM_BMTRGR_EEV8)     /*!< External event 8 conditioned by TIMD filters is starting the burst mode operation */
1402 #define LL_HRTIM_BM_TRIG_EVENT_ONCHIP       (HRTIM_BMTRGR_OCHPEV)   /*!< A rising edge on an on-chip Event (for instance from GP timer or comparator) triggers the burst mode operation */
1403 /**
1404   * @}
1405   */
1406 
1407 /** @defgroup HRTIM_LL_EC_BM_STATUS HRTIM BURST MODE STATUS
1408   * @ingroup RTEMSBSPsARMSTM32H7
1409   * @{
1410   * @brief Constants defining the operating state of the burst mode controller.
1411   */
1412 #define LL_HRTIM_BM_STATUS_NORMAL             0x00000000U           /*!< Normal operation */
1413 #define LL_HRTIM_BM_STATUS_BURST_ONGOING      HRTIM_BMCR_BMSTAT     /*!< Burst operation on-going */
1414 /**
1415   * @}
1416   */
1417 
1418 /**
1419   * @}
1420   */
1421 
1422 /* Exported macro ------------------------------------------------------------*/
1423 /** @defgroup HRTIM_LL_Exported_Macros HRTIM Exported Macros
1424   * @ingroup RTEMSBSPsARMSTM32H7
1425   * @{
1426   */
1427 
1428 /** @defgroup HRTIM_LL_EM_WRITE_READ Common Write and read registers Macros
1429   * @ingroup RTEMSBSPsARMSTM32H7
1430   * @{
1431   */
1432 
1433 /**
1434   * @brief  Write a value in HRTIM register
1435   * @param  __INSTANCE__ HRTIM Instance
1436   * @param  __REG__ Register to be written
1437   * @param  __VALUE__ Value to be written in the register
1438   * @retval None
1439   */
1440 #define LL_HRTIM_WriteReg(__INSTANCE__, __REG__, __VALUE__) WRITE_REG(__INSTANCE__->__REG__, (__VALUE__))
1441 
1442 /**
1443   * @brief  Read a value in HRTIM register
1444   * @param  __INSTANCE__ HRTIM Instance
1445   * @param  __REG__ Register to be read
1446   * @retval Register value
1447   */
1448 #define LL_HRTIM_ReadReg(__INSTANCE__, __REG__) READ_REG(__INSTANCE__->__REG__)
1449 /**
1450   * @}
1451   */
1452 
1453 /** @defgroup HRTIM_LL_EM_Exported_Macros Exported_Macros
1454   * @ingroup RTEMSBSPsARMSTM32H7
1455   * @{
1456   */
1457 /**
1458   * @brief  HELPER macro returning the output state from output enable/disable status
1459   * @param  __OUTPUT_STATUS_EN__ output enable status
1460   * @param  __OUTPUT_STATUS_DIS__ output Disable status
1461   * @retval Returned value can be one of the following values:
1462   *         @arg @ref LL_HRTIM_OUTPUTSTATE_IDLE
1463   *         @arg @ref LL_HRTIM_OUTPUTSTATE_RUN
1464   *         @arg @ref LL_HRTIM_OUTPUTSTATE_FAULT
1465   */
1466 #define __LL_HRTIM_GET_OUTPUT_STATE(__OUTPUT_STATUS_EN__, __OUTPUT_STATUS_DIS__)\
1467   (((__OUTPUT_STATUS_EN__) == 1) ?  LL_HRTIM_OUTPUTSTATE_RUN :\
1468    ((__OUTPUT_STATUS_DIS__) == 0) ? LL_HRTIM_OUTPUTSTATE_IDLE : LL_HRTIM_OUTPUTSTATE_FAULT)
1469 /**
1470   * @}
1471   */
1472 
1473 /**
1474   * @}
1475   */
1476 
1477 /* Exported functions --------------------------------------------------------*/
1478 /** @defgroup HRTIM_LL_Exported_Functions HRTIM Exported Functions
1479   * @ingroup RTEMSBSPsARMSTM32H7
1480   * @{
1481   */
1482 /** @defgroup HRTIM_LL_EF_HRTIM_Control HRTIM_Control
1483   * @ingroup RTEMSBSPsARMSTM32H7
1484   * @{
1485   */
1486 
1487 /**
1488   * @brief  Select the HRTIM synchronization input source.
1489   * @note This function must not be called when  the concerned timer(s) is (are) enabled .
1490   * @rmtoll MCR          SYNCIN        LL_HRTIM_SetSyncInSrc
1491   * @param  HRTIMx High Resolution Timer instance
1492   * @param  SyncInSrc This parameter can be one of the following values:
1493   *         @arg @ref LL_HRTIM_SYNCIN_SRC_NONE
1494   *         @arg @ref LL_HRTIM_SYNCIN_SRC_TIM_EVENT
1495   *         @arg @ref LL_HRTIM_SYNCIN_SRC_EXTERNAL_EVENT
1496   * @retval None
1497   */
1498 __STATIC_INLINE void LL_HRTIM_SetSyncInSrc(HRTIM_TypeDef *HRTIMx, uint32_t SyncInSrc)
1499 {
1500   MODIFY_REG(HRTIMx->sMasterRegs.MCR, HRTIM_MCR_SYNC_IN, SyncInSrc);
1501 }
1502 
1503 /**
1504   * @brief  Get actual HRTIM synchronization input source.
1505   * @rmtoll MCR          SYNCIN        LL_HRTIM_SetSyncInSrc
1506   * @param  HRTIMx High Resolution Timer instance
1507   * @retval SyncInSrc Returned value can be one of the following values:
1508   *         @arg @ref LL_HRTIM_SYNCIN_SRC_NONE
1509   *         @arg @ref LL_HRTIM_SYNCIN_SRC_TIM_EVENT
1510   *         @arg @ref LL_HRTIM_SYNCIN_SRC_EXTERNAL_EVENT
1511   */
1512 __STATIC_INLINE uint32_t LL_HRTIM_GetSyncInSrc(const HRTIM_TypeDef *HRTIMx)
1513 {
1514   return (READ_BIT(HRTIMx->sMasterRegs.MCR, HRTIM_MCR_SYNC_IN));
1515 }
1516 
1517 /**
1518   * @brief  Configure the HRTIM synchronization output.
1519   * @rmtoll MCR          SYNCSRC      LL_HRTIM_ConfigSyncOut\n
1520   *         MCR          SYNCOUT      LL_HRTIM_ConfigSyncOut
1521   * @param  HRTIMx High Resolution Timer instance
1522   * @param  Config This parameter can be one of the following values:
1523   *         @arg @ref LL_HRTIM_SYNCOUT_DISABLED
1524   *         @arg @ref LL_HRTIM_SYNCOUT_POSITIVE_PULSE
1525   *         @arg @ref LL_HRTIM_SYNCOUT_NEGATIVE_PULSE
1526   * @param  Src This parameter can be one of the following values:
1527   *         @arg @ref LL_HRTIM_SYNCOUT_SRC_MASTER_START
1528   *         @arg @ref LL_HRTIM_SYNCOUT_SRC_MASTER_CMP1
1529   *         @arg @ref LL_HRTIM_SYNCOUT_SRC_TIMA_START
1530   *         @arg @ref LL_HRTIM_SYNCOUT_SRC_TIMA_CMP1
1531   * @retval None
1532   */
1533 __STATIC_INLINE void LL_HRTIM_ConfigSyncOut(HRTIM_TypeDef *HRTIMx, uint32_t Config, uint32_t Src)
1534 {
1535   MODIFY_REG(HRTIMx->sMasterRegs.MCR, (HRTIM_MCR_SYNC_OUT | HRTIM_MCR_SYNC_SRC), (Config | Src));
1536 }
1537 
1538 /**
1539   * @brief  Set the routing and conditioning of the synchronization output event.
1540   * @rmtoll MCR          SYNCOUT      LL_HRTIM_SetSyncOutConfig
1541   * @note This function can be called only when the master timer is enabled.
1542   * @param  HRTIMx High Resolution Timer instance
1543   * @param  SyncOutConfig This parameter can be one of the following values:
1544   *         @arg @ref LL_HRTIM_SYNCOUT_DISABLED
1545   *         @arg @ref LL_HRTIM_SYNCOUT_POSITIVE_PULSE
1546   *         @arg @ref LL_HRTIM_SYNCOUT_NEGATIVE_PULSE
1547   * @retval None
1548   */
1549 __STATIC_INLINE void LL_HRTIM_SetSyncOutConfig(HRTIM_TypeDef *HRTIMx, uint32_t SyncOutConfig)
1550 {
1551   MODIFY_REG(HRTIMx->sMasterRegs.MCR, HRTIM_MCR_SYNC_OUT, SyncOutConfig);
1552 }
1553 
1554 /**
1555   * @brief  Get actual routing and conditioning of the synchronization output event.
1556   * @rmtoll MCR          SYNCOUT      LL_HRTIM_GetSyncOutConfig
1557   * @param  HRTIMx High Resolution Timer instance
1558   * @retval SyncOutConfig Returned value can be one of the following values:
1559   *         @arg @ref LL_HRTIM_SYNCOUT_DISABLED
1560   *         @arg @ref LL_HRTIM_SYNCOUT_POSITIVE_PULSE
1561   *         @arg @ref LL_HRTIM_SYNCOUT_NEGATIVE_PULSE
1562   */
1563 __STATIC_INLINE uint32_t LL_HRTIM_GetSyncOutConfig(const HRTIM_TypeDef *HRTIMx)
1564 {
1565   return (READ_BIT(HRTIMx->sMasterRegs.MCR, HRTIM_MCR_SYNC_OUT));
1566 }
1567 
1568 /**
1569   * @brief  Set the source and event to be sent on the HRTIM synchronization output.
1570   * @rmtoll MCR          SYNCSRC      LL_HRTIM_SetSyncOutSrc
1571   * @param  HRTIMx High Resolution Timer instance
1572   * @param  SyncOutSrc This parameter can be one of the following values:
1573   *         @arg @ref LL_HRTIM_SYNCOUT_SRC_MASTER_START
1574   *         @arg @ref LL_HRTIM_SYNCOUT_SRC_MASTER_CMP1
1575   *         @arg @ref LL_HRTIM_SYNCOUT_SRC_TIMA_START
1576   *         @arg @ref LL_HRTIM_SYNCOUT_SRC_TIMA_CMP1
1577   * @retval None
1578   */
1579 __STATIC_INLINE void LL_HRTIM_SetSyncOutSrc(HRTIM_TypeDef *HRTIMx, uint32_t SyncOutSrc)
1580 {
1581   MODIFY_REG(HRTIMx->sMasterRegs.MCR, HRTIM_MCR_SYNC_SRC, SyncOutSrc);
1582 }
1583 
1584 /**
1585   * @brief  Get actual  source and event sent on the HRTIM synchronization output.
1586   * @rmtoll MCR          SYNCSRC      LL_HRTIM_GetSyncOutSrc
1587   * @param  HRTIMx High Resolution Timer instance
1588   * @retval SyncOutSrc Returned value can be one of the following values:
1589   *         @arg @ref LL_HRTIM_SYNCOUT_SRC_MASTER_START
1590   *         @arg @ref LL_HRTIM_SYNCOUT_SRC_MASTER_CMP1
1591   *         @arg @ref LL_HRTIM_SYNCOUT_SRC_TIMA_START
1592   *         @arg @ref LL_HRTIM_SYNCOUT_SRC_TIMA_CMP1
1593   */
1594 __STATIC_INLINE uint32_t LL_HRTIM_GetSyncOutSrc(const HRTIM_TypeDef *HRTIMx)
1595 {
1596   return (READ_BIT(HRTIMx->sMasterRegs.MCR, HRTIM_MCR_SYNC_SRC));
1597 }
1598 
1599 /**
1600   * @brief  Disable (temporarily) update event generation.
1601   * @rmtoll CR1          MUDIS         LL_HRTIM_SuspendUpdate\n
1602   *         CR1          TAUDIS        LL_HRTIM_SuspendUpdate\n
1603   *         CR1          TBUDIS        LL_HRTIM_SuspendUpdate\n
1604   *         CR1          TCUDIS        LL_HRTIM_SuspendUpdate\n
1605   *         CR1          TDUDIS        LL_HRTIM_SuspendUpdate\n
1606   *         CR1          TEUDIS        LL_HRTIM_SuspendUpdate
1607   * @note Allow to temporarily disable the transfer from preload to active
1608   *      registers, whatever the selected update event. This allows to modify
1609   *      several registers in multiple timers.
1610   * @param  HRTIMx High Resolution Timer instance
1611   * @param  Timers This parameter can be a combination of the following values:
1612   *         @arg @ref LL_HRTIM_TIMER_MASTER
1613   *         @arg @ref LL_HRTIM_TIMER_A
1614   *         @arg @ref LL_HRTIM_TIMER_B
1615   *         @arg @ref LL_HRTIM_TIMER_C
1616   *         @arg @ref LL_HRTIM_TIMER_D
1617   *         @arg @ref LL_HRTIM_TIMER_E
1618   * @retval None
1619   */
1620 __STATIC_INLINE void LL_HRTIM_SuspendUpdate(HRTIM_TypeDef *HRTIMx, uint32_t Timers)
1621 {
1622   SET_BIT(HRTIMx->sCommonRegs.CR1, ((Timers >> HRTIM_MCR_MCEN_Pos) & HRTIM_CR1_UDIS_MASK));
1623 }
1624 
1625 /**
1626   * @brief  Enable update event generation.
1627   * @rmtoll CR1          MUDIS         LL_HRTIM_ResumeUpdate\n
1628   *         CR1          TAUDIS        LL_HRTIM_ResumeUpdate\n
1629   *         CR1          TBUDIS        LL_HRTIM_ResumeUpdate\n
1630   *         CR1          TCUDIS        LL_HRTIM_ResumeUpdate\n
1631   *         CR1          TDUDIS        LL_HRTIM_ResumeUpdate\n
1632   *         CR1          TEUDIS        LL_HRTIM_ResumeUpdate
1633   * @note The regular update event takes place.
1634   * @param  HRTIMx High Resolution Timer instance
1635   * @param  Timers This parameter can be a combination of the following values:
1636   *         @arg @ref LL_HRTIM_TIMER_MASTER
1637   *         @arg @ref LL_HRTIM_TIMER_A
1638   *         @arg @ref LL_HRTIM_TIMER_B
1639   *         @arg @ref LL_HRTIM_TIMER_C
1640   *         @arg @ref LL_HRTIM_TIMER_D
1641   *         @arg @ref LL_HRTIM_TIMER_E
1642   * @retval None
1643   */
1644 __STATIC_INLINE void LL_HRTIM_ResumeUpdate(HRTIM_TypeDef *HRTIMx, uint32_t Timers)
1645 {
1646   CLEAR_BIT(HRTIMx->sCommonRegs.CR1, ((Timers >> HRTIM_MCR_MCEN_Pos) & HRTIM_CR1_UDIS_MASK));
1647 }
1648 
1649 /**
1650   * @brief  Force an immediate transfer from the preload to the active register .
1651   * @rmtoll CR2          MSWU          LL_HRTIM_ForceUpdate\n
1652   *         CR2          TASWU         LL_HRTIM_ForceUpdate\n
1653   *         CR2          TBSWU         LL_HRTIM_ForceUpdate\n
1654   *         CR2          TCSWU         LL_HRTIM_ForceUpdate\n
1655   *         CR2          TDSWU         LL_HRTIM_ForceUpdate\n
1656   *         CR2          TESWU         LL_HRTIM_ForceUpdate
1657   * @note Any pending update request is cancelled.
1658   * @param  HRTIMx High Resolution Timer instance
1659   * @param  Timers This parameter can be a combination of the following values:
1660   *         @arg @ref LL_HRTIM_TIMER_MASTER
1661   *         @arg @ref LL_HRTIM_TIMER_A
1662   *         @arg @ref LL_HRTIM_TIMER_B
1663   *         @arg @ref LL_HRTIM_TIMER_C
1664   *         @arg @ref LL_HRTIM_TIMER_D
1665   *         @arg @ref LL_HRTIM_TIMER_E
1666   * @retval None
1667   */
1668 __STATIC_INLINE void LL_HRTIM_ForceUpdate(HRTIM_TypeDef *HRTIMx, uint32_t Timers)
1669 {
1670   SET_BIT(HRTIMx->sCommonRegs.CR2, ((Timers >> HRTIM_MCR_MCEN_Pos) & HRTIM_CR2_SWUPD_MASK));
1671 }
1672 
1673 /**
1674   * @brief  Reset the HRTIM timer(s) counter.
1675   * @rmtoll CR2          MRST          LL_HRTIM_CounterReset\n
1676   *         CR2          TARST         LL_HRTIM_CounterReset\n
1677   *         CR2          TBRST         LL_HRTIM_CounterReset\n
1678   *         CR2          TCRST         LL_HRTIM_CounterReset\n
1679   *         CR2          TDRST         LL_HRTIM_CounterReset\n
1680   *         CR2          TERST         LL_HRTIM_CounterReset
1681   * @param  HRTIMx High Resolution Timer instance
1682   * @param  Timers This parameter can be a combination of the following values:
1683   *         @arg @ref LL_HRTIM_TIMER_MASTER
1684   *         @arg @ref LL_HRTIM_TIMER_A
1685   *         @arg @ref LL_HRTIM_TIMER_B
1686   *         @arg @ref LL_HRTIM_TIMER_C
1687   *         @arg @ref LL_HRTIM_TIMER_D
1688   *         @arg @ref LL_HRTIM_TIMER_E
1689   * @retval None
1690   */
1691 __STATIC_INLINE void LL_HRTIM_CounterReset(HRTIM_TypeDef *HRTIMx, uint32_t Timers)
1692 {
1693   SET_BIT(HRTIMx->sCommonRegs.CR2, (((Timers >> HRTIM_MCR_MCEN_Pos) << HRTIM_CR2_MRST_Pos) & HRTIM_CR2_SWRST_MASK));
1694 }
1695 
1696 /**
1697   * @brief  Enable the HRTIM timer(s) output(s) .
1698   * @rmtoll OENR         TA1OEN        LL_HRTIM_EnableOutput\n
1699   *         OENR         TA2OEN        LL_HRTIM_EnableOutput\n
1700   *         OENR         TB1OEN        LL_HRTIM_EnableOutput\n
1701   *         OENR         TB2OEN        LL_HRTIM_EnableOutput\n
1702   *         OENR         TC1OEN        LL_HRTIM_EnableOutput\n
1703   *         OENR         TC2OEN        LL_HRTIM_EnableOutput\n
1704   *         OENR         TD1OEN        LL_HRTIM_EnableOutput\n
1705   *         OENR         TD2OEN        LL_HRTIM_EnableOutput\n
1706   *         OENR         TE1OEN        LL_HRTIM_EnableOutput\n
1707   *         OENR         TE2OEN        LL_HRTIM_EnableOutput
1708   * @param  HRTIMx High Resolution Timer instance
1709   * @param  Outputs This parameter can be a combination of the following values:
1710   *         @arg @ref LL_HRTIM_OUTPUT_TA1
1711   *         @arg @ref LL_HRTIM_OUTPUT_TA2
1712   *         @arg @ref LL_HRTIM_OUTPUT_TB1
1713   *         @arg @ref LL_HRTIM_OUTPUT_TB2
1714   *         @arg @ref LL_HRTIM_OUTPUT_TC1
1715   *         @arg @ref LL_HRTIM_OUTPUT_TC2
1716   *         @arg @ref LL_HRTIM_OUTPUT_TD1
1717   *         @arg @ref LL_HRTIM_OUTPUT_TD2
1718   *         @arg @ref LL_HRTIM_OUTPUT_TE1
1719   *         @arg @ref LL_HRTIM_OUTPUT_TE2
1720   * @retval None
1721   */
1722 __STATIC_INLINE void LL_HRTIM_EnableOutput(HRTIM_TypeDef *HRTIMx, uint32_t Outputs)
1723 {
1724   SET_BIT(HRTIMx->sCommonRegs.OENR, (Outputs & HRTIM_OENR_OEN_MASK));
1725 }
1726 
1727 /**
1728   * @brief  Disable the HRTIM timer(s) output(s) .
1729   * @rmtoll OENR         TA1OEN        LL_HRTIM_DisableOutput\n
1730   *         OENR         TA2OEN        LL_HRTIM_DisableOutput\n
1731   *         OENR         TB1OEN        LL_HRTIM_DisableOutput\n
1732   *         OENR         TB2OEN        LL_HRTIM_DisableOutput\n
1733   *         OENR         TC1OEN        LL_HRTIM_DisableOutput\n
1734   *         OENR         TC2OEN        LL_HRTIM_DisableOutput\n
1735   *         OENR         TD1OEN        LL_HRTIM_DisableOutput\n
1736   *         OENR         TD2OEN        LL_HRTIM_DisableOutput\n
1737   *         OENR         TE1OEN        LL_HRTIM_DisableOutput\n
1738   *         OENR         TE2OEN        LL_HRTIM_DisableOutput
1739   * @param  HRTIMx High Resolution Timer instance
1740   * @param  Outputs This parameter can be a combination of the following values:
1741   *         @arg @ref LL_HRTIM_OUTPUT_TA1
1742   *         @arg @ref LL_HRTIM_OUTPUT_TA2
1743   *         @arg @ref LL_HRTIM_OUTPUT_TB1
1744   *         @arg @ref LL_HRTIM_OUTPUT_TB2
1745   *         @arg @ref LL_HRTIM_OUTPUT_TC1
1746   *         @arg @ref LL_HRTIM_OUTPUT_TC2
1747   *         @arg @ref LL_HRTIM_OUTPUT_TD1
1748   *         @arg @ref LL_HRTIM_OUTPUT_TD2
1749   *         @arg @ref LL_HRTIM_OUTPUT_TE1
1750   *         @arg @ref LL_HRTIM_OUTPUT_TE2
1751   * @retval None
1752   */
1753 __STATIC_INLINE void LL_HRTIM_DisableOutput(HRTIM_TypeDef *HRTIMx, uint32_t Outputs)
1754 {
1755   SET_BIT(HRTIMx->sCommonRegs.ODISR, (Outputs & HRTIM_OENR_ODIS_MASK));
1756 }
1757 
1758 /**
1759   * @brief  Indicates whether the HRTIM timer output is enabled.
1760   * @rmtoll OENR         TA1OEN        LL_HRTIM_IsEnabledOutput\n
1761   *         OENR         TA2OEN        LL_HRTIM_IsEnabledOutput\n
1762   *         OENR         TB1OEN        LL_HRTIM_IsEnabledOutput\n
1763   *         OENR         TB2OEN        LL_HRTIM_IsEnabledOutput\n
1764   *         OENR         TC1OEN        LL_HRTIM_IsEnabledOutput\n
1765   *         OENR         TC2OEN        LL_HRTIM_IsEnabledOutput\n
1766   *         OENR         TD1OEN        LL_HRTIM_IsEnabledOutput\n
1767   *         OENR         TD2OEN        LL_HRTIM_IsEnabledOutput\n
1768   *         OENR         TE1OEN        LL_HRTIM_IsEnabledOutput\n
1769   *         OENR         TE2OEN        LL_HRTIM_IsEnabledOutput
1770   * @param  HRTIMx High Resolution Timer instance
1771   * @param  Output This parameter can be one of the following values:
1772   *         @arg @ref LL_HRTIM_OUTPUT_TA1
1773   *         @arg @ref LL_HRTIM_OUTPUT_TA2
1774   *         @arg @ref LL_HRTIM_OUTPUT_TB1
1775   *         @arg @ref LL_HRTIM_OUTPUT_TB2
1776   *         @arg @ref LL_HRTIM_OUTPUT_TC1
1777   *         @arg @ref LL_HRTIM_OUTPUT_TC2
1778   *         @arg @ref LL_HRTIM_OUTPUT_TD1
1779   *         @arg @ref LL_HRTIM_OUTPUT_TD2
1780   *         @arg @ref LL_HRTIM_OUTPUT_TE1
1781   *         @arg @ref LL_HRTIM_OUTPUT_TE2
1782   * @retval State of TxyOEN bit in HRTIM_OENR register (1 or 0).
1783   */
1784 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledOutput(const HRTIM_TypeDef *HRTIMx, uint32_t Output)
1785 {
1786   return ((READ_BIT(HRTIMx->sCommonRegs.OENR, Output) == Output) ? 1UL : 0UL);
1787 }
1788 
1789 /**
1790   * @brief  Indicates whether the HRTIM timer output is disabled.
1791   * @rmtoll ODISR        TA1ODIS        LL_HRTIM_IsDisabledOutput\n
1792   *         ODISR        TA2ODIS        LL_HRTIM_IsDisabledOutput\n
1793   *         ODISR        TB1ODIS        LL_HRTIM_IsDisabledOutput\n
1794   *         ODISR        TB2ODIS        LL_HRTIM_IsDisabledOutput\n
1795   *         ODISR        TC1ODIS        LL_HRTIM_IsDisabledOutput\n
1796   *         ODISR        TC2ODIS        LL_HRTIM_IsDisabledOutput\n
1797   *         ODISR        TD1ODIS        LL_HRTIM_IsDisabledOutput\n
1798   *         ODISR        TD2ODIS        LL_HRTIM_IsDisabledOutput\n
1799   *         ODISR        TE1ODIS        LL_HRTIM_IsDisabledOutput\n
1800   *         ODISR        TE2ODIS        LL_HRTIM_IsDisabledOutput
1801   * @param  HRTIMx High Resolution Timer instance
1802   * @param  Output This parameter can be one of the following values:
1803   *         @arg @ref LL_HRTIM_OUTPUT_TA1
1804   *         @arg @ref LL_HRTIM_OUTPUT_TA2
1805   *         @arg @ref LL_HRTIM_OUTPUT_TB1
1806   *         @arg @ref LL_HRTIM_OUTPUT_TB2
1807   *         @arg @ref LL_HRTIM_OUTPUT_TC1
1808   *         @arg @ref LL_HRTIM_OUTPUT_TC2
1809   *         @arg @ref LL_HRTIM_OUTPUT_TD1
1810   *         @arg @ref LL_HRTIM_OUTPUT_TD2
1811   *         @arg @ref LL_HRTIM_OUTPUT_TE1
1812   *         @arg @ref LL_HRTIM_OUTPUT_TE2
1813   * @retval State of TxyODS bit in HRTIM_OENR register (1 or 0).
1814   */
1815 __STATIC_INLINE uint32_t LL_HRTIM_IsDisabledOutput(const HRTIM_TypeDef *HRTIMx, uint32_t Output)
1816 {
1817   return ((READ_BIT(HRTIMx->sCommonRegs.OENR, Output) == 0U) ? 1UL : 0UL);
1818 }
1819 
1820 /**
1821   * @brief  Configure an ADC trigger.
1822   * @rmtoll CR1          ADC1USRC        LL_HRTIM_ConfigADCTrig\n
1823   *         CR1          ADC2USRC        LL_HRTIM_ConfigADCTrig\n
1824   *         CR1          ADC3USRC        LL_HRTIM_ConfigADCTrig\n
1825   *         CR1          ADC4USRC        LL_HRTIM_ConfigADCTrig\n
1826   *         ADC1R        ADC1MC1         LL_HRTIM_ConfigADCTrig\n
1827   *         ADC1R        ADC1MC2         LL_HRTIM_ConfigADCTrig\n
1828   *         ADC1R        ADC1MC3         LL_HRTIM_ConfigADCTrig\n
1829   *         ADC1R        ADC1MC4         LL_HRTIM_ConfigADCTrig\n
1830   *         ADC1R        ADC1MPER        LL_HRTIM_ConfigADCTrig\n
1831   *         ADC1R        ADC1EEV1        LL_HRTIM_ConfigADCTrig\n
1832   *         ADC1R        ADC1EEV2        LL_HRTIM_ConfigADCTrig\n
1833   *         ADC1R        ADC1EEV3        LL_HRTIM_ConfigADCTrig\n
1834   *         ADC1R        ADC1EEV4        LL_HRTIM_ConfigADCTrig\n
1835   *         ADC1R        ADC1EEV5        LL_HRTIM_ConfigADCTrig\n
1836   *         ADC1R        ADC1TAC2        LL_HRTIM_ConfigADCTrig\n
1837   *         ADC1R        ADC1TAC3        LL_HRTIM_ConfigADCTrig\n
1838   *         ADC1R        ADC1TAC4        LL_HRTIM_ConfigADCTrig\n
1839   *         ADC1R        ADC1TAPER       LL_HRTIM_ConfigADCTrig\n
1840   *         ADC1R        ADC1TARST       LL_HRTIM_ConfigADCTrig\n
1841   *         ADC1R        ADC1TBC2        LL_HRTIM_ConfigADCTrig\n
1842   *         ADC1R        ADC1TBC3        LL_HRTIM_ConfigADCTrig\n
1843   *         ADC1R        ADC1TBC4        LL_HRTIM_ConfigADCTrig\n
1844   *         ADC1R        ADC1TBPER       LL_HRTIM_ConfigADCTrig\n
1845   *         ADC1R        ADC1TBRST       LL_HRTIM_ConfigADCTrig\n
1846   *         ADC1R        ADC1TCC2        LL_HRTIM_ConfigADCTrig\n
1847   *         ADC1R        ADC1TCC3        LL_HRTIM_ConfigADCTrig\n
1848   *         ADC1R        ADC1TCC4        LL_HRTIM_ConfigADCTrig\n
1849   *         ADC1R        ADC1TCPER       LL_HRTIM_ConfigADCTrig\n
1850   *         ADC1R        ADC1TDC2        LL_HRTIM_ConfigADCTrig\n
1851   *         ADC1R        ADC1TDC3        LL_HRTIM_ConfigADCTrig\n
1852   *         ADC1R        ADC1TDC4        LL_HRTIM_ConfigADCTrig\n
1853   *         ADC1R        ADC1TDPER       LL_HRTIM_ConfigADCTrig\n
1854   *         ADC1R        ADC1TEC2        LL_HRTIM_ConfigADCTrig\n
1855   *         ADC1R        ADC1TEC3        LL_HRTIM_ConfigADCTrig\n
1856   *         ADC1R        ADC1TEC4        LL_HRTIM_ConfigADCTrig\n
1857   *         ADC1R        ADC1TEPER       LL_HRTIM_ConfigADCTrig\n
1858   *         ADC2R        ADC2MC1         LL_HRTIM_ConfigADCTrig\n
1859   *         ADC2R        ADC2MC2         LL_HRTIM_ConfigADCTrig\n
1860   *         ADC2R        ADC2MC3         LL_HRTIM_ConfigADCTrig\n
1861   *         ADC2R        ADC2MC4         LL_HRTIM_ConfigADCTrig\n
1862   *         ADC2R        ADC2MPER        LL_HRTIM_ConfigADCTrig\n
1863   *         ADC2R        ADC2EEV6        LL_HRTIM_ConfigADCTrig\n
1864   *         ADC2R        ADC2EEV7        LL_HRTIM_ConfigADCTrig\n
1865   *         ADC2R        ADC2EEV8        LL_HRTIM_ConfigADCTrig\n
1866   *         ADC2R        ADC2EEV9        LL_HRTIM_ConfigADCTrig\n
1867   *         ADC2R        ADC2EEV10       LL_HRTIM_ConfigADCTrig\n
1868   *         ADC2R        ADC2TAC2        LL_HRTIM_ConfigADCTrig\n
1869   *         ADC2R        ADC2TAC3        LL_HRTIM_ConfigADCTrig\n
1870   *         ADC2R        ADC2TAC4        LL_HRTIM_ConfigADCTrig\n
1871   *         ADC2R        ADC2TAPER       LL_HRTIM_ConfigADCTrig\n
1872   *         ADC2R        ADC2TBC2        LL_HRTIM_ConfigADCTrig\n
1873   *         ADC2R        ADC2TBC3        LL_HRTIM_ConfigADCTrig\n
1874   *         ADC2R        ADC2TBC4        LL_HRTIM_ConfigADCTrig\n
1875   *         ADC2R        ADC2TBPER       LL_HRTIM_ConfigADCTrig\n
1876   *         ADC2R        ADC2TCC2        LL_HRTIM_ConfigADCTrig\n
1877   *         ADC2R        ADC2TCC3        LL_HRTIM_ConfigADCTrig\n
1878   *         ADC2R        ADC2TCC4        LL_HRTIM_ConfigADCTrig\n
1879   *         ADC2R        ADC2TCPER       LL_HRTIM_ConfigADCTrig\n
1880   *         ADC2R        ADC2TCRST       LL_HRTIM_ConfigADCTrig\n
1881   *         ADC2R        ADC2TDC2        LL_HRTIM_ConfigADCTrig\n
1882   *         ADC2R        ADC2TDC3        LL_HRTIM_ConfigADCTrig\n
1883   *         ADC2R        ADC2TDC4        LL_HRTIM_ConfigADCTrig\n
1884   *         ADC2R        ADC2TDPER       LL_HRTIM_ConfigADCTrig\n
1885   *         ADC2R        ADC2TDRST       LL_HRTIM_ConfigADCTrig\n
1886   *         ADC2R        ADC2TEC2        LL_HRTIM_ConfigADCTrig\n
1887   *         ADC2R        ADC2TEC3        LL_HRTIM_ConfigADCTrig\n
1888   *         ADC2R        ADC2TEC4        LL_HRTIM_ConfigADCTrig\n
1889   *         ADC2R        ADC2TERST       LL_HRTIM_ConfigADCTrig\n
1890   *         ADC3R        ADC3MC1         LL_HRTIM_ConfigADCTrig\n
1891   *         ADC3R        ADC3MC2         LL_HRTIM_ConfigADCTrig\n
1892   *         ADC3R        ADC3MC3         LL_HRTIM_ConfigADCTrig\n
1893   *         ADC3R        ADC3MC4         LL_HRTIM_ConfigADCTrig\n
1894   *         ADC3R        ADC3MPER        LL_HRTIM_ConfigADCTrig\n
1895   *         ADC3R        ADC3EEV1        LL_HRTIM_ConfigADCTrig\n
1896   *         ADC3R        ADC3EEV2        LL_HRTIM_ConfigADCTrig\n
1897   *         ADC3R        ADC3EEV3        LL_HRTIM_ConfigADCTrig\n
1898   *         ADC3R        ADC3EEV4        LL_HRTIM_ConfigADCTrig\n
1899   *         ADC3R        ADC3EEV5        LL_HRTIM_ConfigADCTrig\n
1900   *         ADC3R        ADC3TAC2        LL_HRTIM_ConfigADCTrig\n
1901   *         ADC3R        ADC3TAC3        LL_HRTIM_ConfigADCTrig\n
1902   *         ADC3R        ADC3TAC4        LL_HRTIM_ConfigADCTrig\n
1903   *         ADC3R        ADC3TAPER       LL_HRTIM_ConfigADCTrig\n
1904   *         ADC3R        ADC3TARST       LL_HRTIM_ConfigADCTrig\n
1905   *         ADC3R        ADC3TBC2        LL_HRTIM_ConfigADCTrig\n
1906   *         ADC3R        ADC3TBC3        LL_HRTIM_ConfigADCTrig\n
1907   *         ADC3R        ADC3TBC4        LL_HRTIM_ConfigADCTrig\n
1908   *         ADC3R        ADC3TBPER       LL_HRTIM_ConfigADCTrig\n
1909   *         ADC3R        ADC3TBRST       LL_HRTIM_ConfigADCTrig\n
1910   *         ADC3R        ADC3TCC2        LL_HRTIM_ConfigADCTrig\n
1911   *         ADC3R        ADC3TCC3        LL_HRTIM_ConfigADCTrig\n
1912   *         ADC3R        ADC3TCC4        LL_HRTIM_ConfigADCTrig\n
1913   *         ADC3R        ADC3TCPER       LL_HRTIM_ConfigADCTrig\n
1914   *         ADC3R        ADC3TDC2        LL_HRTIM_ConfigADCTrig\n
1915   *         ADC3R        ADC3TDC3        LL_HRTIM_ConfigADCTrig\n
1916   *         ADC3R        ADC3TDC4        LL_HRTIM_ConfigADCTrig\n
1917   *         ADC3R        ADC3TDPER       LL_HRTIM_ConfigADCTrig\n
1918   *         ADC3R        ADC3TEC2        LL_HRTIM_ConfigADCTrig\n
1919   *         ADC3R        ADC3TEC3        LL_HRTIM_ConfigADCTrig\n
1920   *         ADC3R        ADC3TEC4        LL_HRTIM_ConfigADCTrig\n
1921   *         ADC3R        ADC3TEPER       LL_HRTIM_ConfigADCTrig\n
1922   *         ADC4R        ADC4MC1         LL_HRTIM_ConfigADCTrig\n
1923   *         ADC4R        ADC4MC2         LL_HRTIM_ConfigADCTrig\n
1924   *         ADC4R        ADC4MC3         LL_HRTIM_ConfigADCTrig\n
1925   *         ADC4R        ADC4MC4         LL_HRTIM_ConfigADCTrig\n
1926   *         ADC4R        ADC4MPER        LL_HRTIM_ConfigADCTrig\n
1927   *         ADC4R        ADC4EEV6        LL_HRTIM_ConfigADCTrig\n
1928   *         ADC4R        ADC4EEV7        LL_HRTIM_ConfigADCTrig\n
1929   *         ADC4R        ADC4EEV8        LL_HRTIM_ConfigADCTrig\n
1930   *         ADC4R        ADC4EEV9        LL_HRTIM_ConfigADCTrig\n
1931   *         ADC4R        ADC4EEV10       LL_HRTIM_ConfigADCTrig\n
1932   *         ADC4R        ADC4TAC2        LL_HRTIM_ConfigADCTrig\n
1933   *         ADC4R        ADC4TAC3        LL_HRTIM_ConfigADCTrig\n
1934   *         ADC4R        ADC4TAC4        LL_HRTIM_ConfigADCTrig\n
1935   *         ADC4R        ADC4TAPER       LL_HRTIM_ConfigADCTrig\n
1936   *         ADC4R        ADC4TBC2        LL_HRTIM_ConfigADCTrig\n
1937   *         ADC4R        ADC4TBC3        LL_HRTIM_ConfigADCTrig\n
1938   *         ADC4R        ADC4TBC4        LL_HRTIM_ConfigADCTrig\n
1939   *         ADC4R        ADC4TBPER       LL_HRTIM_ConfigADCTrig\n
1940   *         ADC4R        ADC4TCC2        LL_HRTIM_ConfigADCTrig\n
1941   *         ADC4R        ADC4TCC3        LL_HRTIM_ConfigADCTrig\n
1942   *         ADC4R        ADC4TCC4        LL_HRTIM_ConfigADCTrig\n
1943   *         ADC4R        ADC4TCPER       LL_HRTIM_ConfigADCTrig\n
1944   *         ADC4R        ADC4TCRST       LL_HRTIM_ConfigADCTrig\n
1945   *         ADC4R        ADC4TDC2        LL_HRTIM_ConfigADCTrig\n
1946   *         ADC4R        ADC4TDC3        LL_HRTIM_ConfigADCTrig\n
1947   *         ADC4R        ADC4TDC4        LL_HRTIM_ConfigADCTrig\n
1948   *         ADC4R        ADC4TDPER       LL_HRTIM_ConfigADCTrig\n
1949   *         ADC4R        ADC4TDRST       LL_HRTIM_ConfigADCTrig\n
1950   *         ADC4R        ADC4TEC2        LL_HRTIM_ConfigADCTrig\n
1951   *         ADC4R        ADC4TEC3        LL_HRTIM_ConfigADCTrig\n
1952   *         ADC4R        ADC4TEC4        LL_HRTIM_ConfigADCTrig\n
1953   *         ADC4R        ADC4TERST       LL_HRTIM_ConfigADCTrig
1954   * @param  HRTIMx High Resolution Timer instance
1955   * @param  ADCTrig This parameter can be one of the following values:
1956   *         @arg @ref LL_HRTIM_ADCTRIG_1
1957   *         @arg @ref LL_HRTIM_ADCTRIG_2
1958   *         @arg @ref LL_HRTIM_ADCTRIG_3
1959   *         @arg @ref LL_HRTIM_ADCTRIG_4
1960   * @param  Update This parameter can be one of the following values:
1961   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_MASTER
1962   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_A
1963   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_B
1964   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_C
1965   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_D
1966   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_E
1967   * @param  Src This parameter can be a combination of the following values:
1968   *
1969   *         For ADC trigger 1 and ADC trigger 3:
1970   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_NONE
1971   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP1
1972   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP2
1973   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP3
1974   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP4
1975   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MPER
1976   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV1
1977   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV2
1978   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV3
1979   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV4
1980   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV5
1981   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMACMP2
1982   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMACMP3
1983   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMACMP4
1984   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMAPER
1985   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMARST
1986   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBCMP2
1987   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBCMP3
1988   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBCMP4
1989   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBPER
1990   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBRST
1991   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCCMP2
1992   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCCMP3
1993   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCCMP4
1994   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCPER
1995   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDCMP2
1996   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDCMP3
1997   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDCMP4
1998   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDPER
1999   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMECMP2
2000   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMECMP3
2001   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMECMP4
2002   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMEPER
2003   *
2004   *         For ADC trigger 2 and ADC trigger 4:
2005   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_NONE
2006   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP1
2007   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP2
2008   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP3
2009   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP4
2010   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MPER
2011   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV6
2012   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV7
2013   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV8
2014   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV9
2015   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV10
2016   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMACMP2
2017   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMACMP3
2018   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMACMP4
2019   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMAPER
2020   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBCMP2
2021   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBCMP3
2022   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBCMP4
2023   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBPER
2024   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCCMP2
2025   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCCMP3
2026   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCCMP4
2027   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCPER
2028   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCRST
2029   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDCMP2
2030   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDCMP3
2031   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDCMP4
2032   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDPER
2033   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDRST
2034   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP2
2035   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP3
2036   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP4
2037   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMERST
2038   *
2039   * @retval None
2040   */
2041 __STATIC_INLINE void LL_HRTIM_ConfigADCTrig(HRTIM_TypeDef *HRTIMx, uint32_t ADCTrig, uint32_t Update, uint32_t Src)
2042 {
2043   uint32_t shift = ((3U * ADCTrig) & 0x1FU);
2044   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.ADC1R) +
2045                                                               REG_OFFSET_TAB_ADCxR[ADCTrig]));
2046   MODIFY_REG(HRTIMx->sCommonRegs.CR1, (HRTIM_CR1_ADC1USRC << shift), (Update << shift));
2047   WRITE_REG(*pReg, Src);
2048 }
2049 
2050 /**
2051   * @brief  Associate the ADCx trigger to a timer triggering the update of the HRTIM_ADCxR register.
2052   * @rmtoll CR1          ADC1USRC         LL_HRTIM_SetADCTrigUpdate\n
2053   *         CR1          ADC2USRC         LL_HRTIM_SetADCTrigUpdate\n
2054   *         CR1          ADC3USRC         LL_HRTIM_SetADCTrigUpdate\n
2055   *         CR1          ADC4USRC         LL_HRTIM_SetADCTrigUpdate\n
2056   * @note When the preload is disabled in the source timer, the HRTIM_ADCxR
2057   *       registers are not preloaded either: a write access will result in an
2058   *       immediate update of the trigger source.
2059   * @param  HRTIMx High Resolution Timer instance
2060   * @param  ADCTrig This parameter can be one of the following values:
2061   *         @arg @ref LL_HRTIM_ADCTRIG_1
2062   *         @arg @ref LL_HRTIM_ADCTRIG_2
2063   *         @arg @ref LL_HRTIM_ADCTRIG_3
2064   *         @arg @ref LL_HRTIM_ADCTRIG_4
2065   * @param  Update This parameter can be one of the following values:
2066   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_MASTER
2067   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_A
2068   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_B
2069   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_C
2070   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_D
2071   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_E
2072   * @retval None
2073   */
2074 __STATIC_INLINE void LL_HRTIM_SetADCTrigUpdate(HRTIM_TypeDef *HRTIMx, uint32_t ADCTrig, uint32_t Update)
2075 {
2076   uint32_t shift = ((3U * ADCTrig) & 0x1FU);
2077   MODIFY_REG(HRTIMx->sCommonRegs.CR1, (HRTIM_CR1_ADC1USRC << shift), (Update << shift));
2078 }
2079 
2080 /**
2081   * @brief  Get the source timer triggering the update of the HRTIM_ADCxR register.
2082   * @rmtoll CR1          ADC1USRC        LL_HRTIM_GetADCTrigUpdate\n
2083   *         CR1          ADC2USRC        LL_HRTIM_GetADCTrigUpdate\n
2084   *         CR1          ADC3USRC        LL_HRTIM_GetADCTrigUpdate\n
2085   *         CR1          ADC4USRC        LL_HRTIM_GetADCTrigUpdate\n
2086   * @param  HRTIMx High Resolution Timer instance
2087   * @param  ADCTrig This parameter can be one of the following values:
2088   *         @arg @ref LL_HRTIM_ADCTRIG_1
2089   *         @arg @ref LL_HRTIM_ADCTRIG_2
2090   *         @arg @ref LL_HRTIM_ADCTRIG_3
2091   *         @arg @ref LL_HRTIM_ADCTRIG_4
2092   * @retval Update Returned value can be one of the following values:
2093   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_MASTER
2094   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_A
2095   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_B
2096   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_C
2097   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_D
2098   *         @arg @ref LL_HRTIM_ADCTRIG_UPDATE_TIMER_E
2099   */
2100 __STATIC_INLINE uint32_t LL_HRTIM_GetADCTrigUpdate(const HRTIM_TypeDef *HRTIMx, uint32_t ADCTrig)
2101 {
2102   const uint32_t shift = ((3U * ADCTrig) & 0x1FU);
2103   return (READ_BIT(HRTIMx->sCommonRegs.CR1, (uint32_t)(HRTIM_CR1_ADC1USRC) << shift) >> shift);
2104 }
2105 
2106 /**
2107   * @brief  Specify which events (timer events and/or external events) are used as triggers for ADC conversion.
2108   * @rmtoll ADC1R        ADC1MC1         LL_HRTIM_SetADCTrigSrc\n
2109   *         ADC1R        ADC1MC2         LL_HRTIM_SetADCTrigSrc\n
2110   *         ADC1R        ADC1MC3         LL_HRTIM_SetADCTrigSrc\n
2111   *         ADC1R        ADC1MC4         LL_HRTIM_SetADCTrigSrc\n
2112   *         ADC1R        ADC1MPER        LL_HRTIM_SetADCTrigSrc\n
2113   *         ADC1R        ADC1EEV1        LL_HRTIM_SetADCTrigSrc\n
2114   *         ADC1R        ADC1EEV2        LL_HRTIM_SetADCTrigSrc\n
2115   *         ADC1R        ADC1EEV3        LL_HRTIM_SetADCTrigSrc\n
2116   *         ADC1R        ADC1EEV4        LL_HRTIM_SetADCTrigSrc\n
2117   *         ADC1R        ADC1EEV5        LL_HRTIM_SetADCTrigSrc\n
2118   *         ADC1R        ADC1TAC2        LL_HRTIM_SetADCTrigSrc\n
2119   *         ADC1R        ADC1TAC3        LL_HRTIM_SetADCTrigSrc\n
2120   *         ADC1R        ADC1TAC4        LL_HRTIM_SetADCTrigSrc\n
2121   *         ADC1R        ADC1TAPER       LL_HRTIM_SetADCTrigSrc\n
2122   *         ADC1R        ADC1TARST       LL_HRTIM_SetADCTrigSrc\n
2123   *         ADC1R        ADC1TBC2        LL_HRTIM_SetADCTrigSrc\n
2124   *         ADC1R        ADC1TBC3        LL_HRTIM_SetADCTrigSrc\n
2125   *         ADC1R        ADC1TBC4        LL_HRTIM_SetADCTrigSrc\n
2126   *         ADC1R        ADC1TBPER       LL_HRTIM_SetADCTrigSrc\n
2127   *         ADC1R        ADC1TBRST       LL_HRTIM_SetADCTrigSrc\n
2128   *         ADC1R        ADC1TCC2        LL_HRTIM_SetADCTrigSrc\n
2129   *         ADC1R        ADC1TCC3        LL_HRTIM_SetADCTrigSrc\n
2130   *         ADC1R        ADC1TCC4        LL_HRTIM_SetADCTrigSrc\n
2131   *         ADC1R        ADC1TCPER       LL_HRTIM_SetADCTrigSrc\n
2132   *         ADC1R        ADC1TDC2        LL_HRTIM_SetADCTrigSrc\n
2133   *         ADC1R        ADC1TDC3        LL_HRTIM_SetADCTrigSrc\n
2134   *         ADC1R        ADC1TDC4        LL_HRTIM_SetADCTrigSrc\n
2135   *         ADC1R        ADC1TDPER       LL_HRTIM_SetADCTrigSrc\n
2136   *         ADC1R        ADC1TEC2        LL_HRTIM_SetADCTrigSrc\n
2137   *         ADC1R        ADC1TEC3        LL_HRTIM_SetADCTrigSrc\n
2138   *         ADC1R        ADC1TEC4        LL_HRTIM_SetADCTrigSrc\n
2139   *         ADC1R        ADC1TEPER       LL_HRTIM_SetADCTrigSrc\n
2140   *         ADC2R        ADC2MC1         LL_HRTIM_SetADCTrigSrc\n
2141   *         ADC2R        ADC2MC2         LL_HRTIM_SetADCTrigSrc\n
2142   *         ADC2R        ADC2MC3         LL_HRTIM_SetADCTrigSrc\n
2143   *         ADC2R        ADC2MC4         LL_HRTIM_SetADCTrigSrc\n
2144   *         ADC2R        ADC2MPER        LL_HRTIM_SetADCTrigSrc\n
2145   *         ADC2R        ADC2EEV6        LL_HRTIM_SetADCTrigSrc\n
2146   *         ADC2R        ADC2EEV7        LL_HRTIM_SetADCTrigSrc\n
2147   *         ADC2R        ADC2EEV8        LL_HRTIM_SetADCTrigSrc\n
2148   *         ADC2R        ADC2EEV9        LL_HRTIM_SetADCTrigSrc\n
2149   *         ADC2R        ADC2EEV10       LL_HRTIM_SetADCTrigSrc\n
2150   *         ADC2R        ADC2TAC2        LL_HRTIM_SetADCTrigSrc\n
2151   *         ADC2R        ADC2TAC3        LL_HRTIM_SetADCTrigSrc\n
2152   *         ADC2R        ADC2TAC4        LL_HRTIM_SetADCTrigSrc\n
2153   *         ADC2R        ADC2TAPER       LL_HRTIM_SetADCTrigSrc\n
2154   *         ADC2R        ADC2TBC2        LL_HRTIM_SetADCTrigSrc\n
2155   *         ADC2R        ADC2TBC3        LL_HRTIM_SetADCTrigSrc\n
2156   *         ADC2R        ADC2TBC4        LL_HRTIM_SetADCTrigSrc\n
2157   *         ADC2R        ADC2TBPER       LL_HRTIM_SetADCTrigSrc\n
2158   *         ADC2R        ADC2TCC2        LL_HRTIM_SetADCTrigSrc\n
2159   *         ADC2R        ADC2TCC3        LL_HRTIM_SetADCTrigSrc\n
2160   *         ADC2R        ADC2TCC4        LL_HRTIM_SetADCTrigSrc\n
2161   *         ADC2R        ADC2TCPER       LL_HRTIM_SetADCTrigSrc\n
2162   *         ADC2R        ADC2TCRST       LL_HRTIM_SetADCTrigSrc\n
2163   *         ADC2R        ADC2TDC2        LL_HRTIM_SetADCTrigSrc\n
2164   *         ADC2R        ADC2TDC3        LL_HRTIM_SetADCTrigSrc\n
2165   *         ADC2R        ADC2TDC4        LL_HRTIM_SetADCTrigSrc\n
2166   *         ADC2R        ADC2TDPER       LL_HRTIM_SetADCTrigSrc\n
2167   *         ADC2R        ADC2TDRST       LL_HRTIM_SetADCTrigSrc\n
2168   *         ADC2R        ADC2TEC2        LL_HRTIM_SetADCTrigSrc\n
2169   *         ADC2R        ADC2TEC3        LL_HRTIM_SetADCTrigSrc\n
2170   *         ADC2R        ADC2TEC4        LL_HRTIM_SetADCTrigSrc\n
2171   *         ADC2R        ADC2TERST       LL_HRTIM_SetADCTrigSrc\n
2172   *         ADC3R        ADC3MC1         LL_HRTIM_SetADCTrigSrc\n
2173   *         ADC3R        ADC3MC2         LL_HRTIM_SetADCTrigSrc\n
2174   *         ADC3R        ADC3MC3         LL_HRTIM_SetADCTrigSrc\n
2175   *         ADC3R        ADC3MC4         LL_HRTIM_SetADCTrigSrc\n
2176   *         ADC3R        ADC3MPER        LL_HRTIM_SetADCTrigSrc\n
2177   *         ADC3R        ADC3EEV1        LL_HRTIM_SetADCTrigSrc\n
2178   *         ADC3R        ADC3EEV2        LL_HRTIM_SetADCTrigSrc\n
2179   *         ADC3R        ADC3EEV3        LL_HRTIM_SetADCTrigSrc\n
2180   *         ADC3R        ADC3EEV4        LL_HRTIM_SetADCTrigSrc\n
2181   *         ADC3R        ADC3EEV5        LL_HRTIM_SetADCTrigSrc\n
2182   *         ADC3R        ADC3TAC2        LL_HRTIM_SetADCTrigSrc\n
2183   *         ADC3R        ADC3TAC3        LL_HRTIM_SetADCTrigSrc\n
2184   *         ADC3R        ADC3TAC4        LL_HRTIM_SetADCTrigSrc\n
2185   *         ADC3R        ADC3TAPER       LL_HRTIM_SetADCTrigSrc\n
2186   *         ADC3R        ADC3TARST       LL_HRTIM_SetADCTrigSrc\n
2187   *         ADC3R        ADC3TBC2        LL_HRTIM_SetADCTrigSrc\n
2188   *         ADC3R        ADC3TBC3        LL_HRTIM_SetADCTrigSrc\n
2189   *         ADC3R        ADC3TBC4        LL_HRTIM_SetADCTrigSrc\n
2190   *         ADC3R        ADC3TBPER       LL_HRTIM_SetADCTrigSrc\n
2191   *         ADC3R        ADC3TBRST       LL_HRTIM_SetADCTrigSrc\n
2192   *         ADC3R        ADC3TCC2        LL_HRTIM_SetADCTrigSrc\n
2193   *         ADC3R        ADC3TCC3        LL_HRTIM_SetADCTrigSrc\n
2194   *         ADC3R        ADC3TCC4        LL_HRTIM_SetADCTrigSrc\n
2195   *         ADC3R        ADC3TCPER       LL_HRTIM_SetADCTrigSrc\n
2196   *         ADC3R        ADC3TDC2        LL_HRTIM_SetADCTrigSrc\n
2197   *         ADC3R        ADC3TDC3        LL_HRTIM_SetADCTrigSrc\n
2198   *         ADC3R        ADC3TDC4        LL_HRTIM_SetADCTrigSrc\n
2199   *         ADC3R        ADC3TDPER       LL_HRTIM_SetADCTrigSrc\n
2200   *         ADC3R        ADC3TEC2        LL_HRTIM_SetADCTrigSrc\n
2201   *         ADC3R        ADC3TEC3        LL_HRTIM_SetADCTrigSrc\n
2202   *         ADC3R        ADC3TEC4        LL_HRTIM_SetADCTrigSrc\n
2203   *         ADC3R        ADC3TEPER       LL_HRTIM_SetADCTrigSrc\n
2204   *         ADC4R        ADC4MC1         LL_HRTIM_SetADCTrigSrc\n
2205   *         ADC4R        ADC4MC2         LL_HRTIM_SetADCTrigSrc\n
2206   *         ADC4R        ADC4MC3         LL_HRTIM_SetADCTrigSrc\n
2207   *         ADC4R        ADC4MC4         LL_HRTIM_SetADCTrigSrc\n
2208   *         ADC4R        ADC4MPER        LL_HRTIM_SetADCTrigSrc\n
2209   *         ADC4R        ADC4EEV6        LL_HRTIM_SetADCTrigSrc\n
2210   *         ADC4R        ADC4EEV7        LL_HRTIM_SetADCTrigSrc\n
2211   *         ADC4R        ADC4EEV8        LL_HRTIM_SetADCTrigSrc\n
2212   *         ADC4R        ADC4EEV9        LL_HRTIM_SetADCTrigSrc\n
2213   *         ADC4R        ADC4EEV10       LL_HRTIM_SetADCTrigSrc\n
2214   *         ADC4R        ADC4TAC2        LL_HRTIM_SetADCTrigSrc\n
2215   *         ADC4R        ADC4TAC3        LL_HRTIM_SetADCTrigSrc\n
2216   *         ADC4R        ADC4TAC4        LL_HRTIM_SetADCTrigSrc\n
2217   *         ADC4R        ADC4TAPER       LL_HRTIM_SetADCTrigSrc\n
2218   *         ADC4R        ADC4TBC2        LL_HRTIM_SetADCTrigSrc\n
2219   *         ADC4R        ADC4TBC3        LL_HRTIM_SetADCTrigSrc\n
2220   *         ADC4R        ADC4TBC4        LL_HRTIM_SetADCTrigSrc\n
2221   *         ADC4R        ADC4TBPER       LL_HRTIM_SetADCTrigSrc\n
2222   *         ADC4R        ADC4TCC2        LL_HRTIM_SetADCTrigSrc\n
2223   *         ADC4R        ADC4TCC3        LL_HRTIM_SetADCTrigSrc\n
2224   *         ADC4R        ADC4TCC4        LL_HRTIM_SetADCTrigSrc\n
2225   *         ADC4R        ADC4TCPER       LL_HRTIM_SetADCTrigSrc\n
2226   *         ADC4R        ADC4TCRST       LL_HRTIM_SetADCTrigSrc\n
2227   *         ADC4R        ADC4TDC2        LL_HRTIM_SetADCTrigSrc\n
2228   *         ADC4R        ADC4TDC3        LL_HRTIM_SetADCTrigSrc\n
2229   *         ADC4R        ADC4TDC4        LL_HRTIM_SetADCTrigSrc\n
2230   *         ADC4R        ADC4TDPER       LL_HRTIM_SetADCTrigSrc\n
2231   *         ADC4R        ADC4TDRST       LL_HRTIM_SetADCTrigSrc\n
2232   *         ADC4R        ADC4TEC2        LL_HRTIM_SetADCTrigSrc\n
2233   *         ADC4R        ADC4TEC3        LL_HRTIM_SetADCTrigSrc\n
2234   *         ADC4R        ADC4TEC4        LL_HRTIM_SetADCTrigSrc\n
2235   *         ADC4R        ADC4TERST       LL_HRTIM_SetADCTrigSrc\n
2236   * @param  HRTIMx High Resolution Timer instance
2237   * @param  ADCTrig This parameter can be one of the following values:
2238   *         @arg @ref LL_HRTIM_ADCTRIG_1
2239   *         @arg @ref LL_HRTIM_ADCTRIG_2
2240   *         @arg @ref LL_HRTIM_ADCTRIG_3
2241   *         @arg @ref LL_HRTIM_ADCTRIG_4
2242   * @param  Src
2243   *         For ADC trigger 1 and ADC trigger 3 this parameter can be a
2244   *         combination of the following values:
2245   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_NONE
2246   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP1
2247   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP2
2248   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP3
2249   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP4
2250   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MPER
2251   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV1
2252   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV2
2253   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV3
2254   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV4
2255   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV5
2256   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMACMP2
2257   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMACMP3
2258   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMACMP4
2259   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMAPER
2260   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMARST
2261   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBCMP2
2262   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBCMP3
2263   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBCMP4
2264   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBPER
2265   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBRST
2266   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCCMP2
2267   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCCMP3
2268   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCCMP4
2269   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCPER
2270   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDCMP2
2271   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDCMP3
2272   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDCMP4
2273   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDPER
2274   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMECMP2
2275   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMECMP3
2276   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMECMP4
2277   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMEPER
2278   *
2279   *         For ADC trigger 2 and ADC trigger 4 this parameter can be a
2280   *         combination of the following values:
2281   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_NONE
2282   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP1
2283   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP2
2284   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP3
2285   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP4
2286   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MPER
2287   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV6
2288   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV7
2289   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV8
2290   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV9
2291   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV10
2292   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMACMP2
2293   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMACMP3
2294   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMACMP4
2295   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMAPER
2296   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBCMP2
2297   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBCMP3
2298   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBCMP4
2299   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBPER
2300   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCCMP2
2301   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCCMP3
2302   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCCMP4
2303   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCPER
2304   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCRST
2305   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDCMP2
2306   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDCMP3
2307   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDCMP4
2308   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDPER
2309   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDRST
2310   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP2
2311   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP3
2312   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP4
2313   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMERST
2314   *
2315   * @retval None
2316   */
2317 __STATIC_INLINE void LL_HRTIM_SetADCTrigSrc(HRTIM_TypeDef *HRTIMx, uint32_t ADCTrig, uint32_t Src)
2318 {
2319   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.ADC1R) +
2320                                                               REG_OFFSET_TAB_ADCxR[ADCTrig]));
2321   WRITE_REG(*pReg, Src);
2322 }
2323 
2324 /**
2325   * @brief  Indicate which events (timer events and/or external events) are currently used as triggers for ADC conversion.
2326   * @rmtoll ADC1R        ADC1MC1         LL_HRTIM_GetADCTrigSrc\n
2327   *         ADC1R        ADC1MC2         LL_HRTIM_GetADCTrigSrc\n
2328   *         ADC1R        ADC1MC3         LL_HRTIM_GetADCTrigSrc\n
2329   *         ADC1R        ADC1MC4         LL_HRTIM_GetADCTrigSrc\n
2330   *         ADC1R        ADC1MPER        LL_HRTIM_GetADCTrigSrc\n
2331   *         ADC1R        ADC1EEV1        LL_HRTIM_GetADCTrigSrc\n
2332   *         ADC1R        ADC1EEV2        LL_HRTIM_GetADCTrigSrc\n
2333   *         ADC1R        ADC1EEV3        LL_HRTIM_GetADCTrigSrc\n
2334   *         ADC1R        ADC1EEV4        LL_HRTIM_GetADCTrigSrc\n
2335   *         ADC1R        ADC1EEV5        LL_HRTIM_GetADCTrigSrc\n
2336   *         ADC1R        ADC1TAC2        LL_HRTIM_GetADCTrigSrc\n
2337   *         ADC1R        ADC1TAC3        LL_HRTIM_GetADCTrigSrc\n
2338   *         ADC1R        ADC1TAC4        LL_HRTIM_GetADCTrigSrc\n
2339   *         ADC1R        ADC1TAPER       LL_HRTIM_GetADCTrigSrc\n
2340   *         ADC1R        ADC1TARST       LL_HRTIM_GetADCTrigSrc\n
2341   *         ADC1R        ADC1TBC2        LL_HRTIM_GetADCTrigSrc\n
2342   *         ADC1R        ADC1TBC3        LL_HRTIM_GetADCTrigSrc\n
2343   *         ADC1R        ADC1TBC4        LL_HRTIM_GetADCTrigSrc\n
2344   *         ADC1R        ADC1TBPER       LL_HRTIM_GetADCTrigSrc\n
2345   *         ADC1R        ADC1TBRST       LL_HRTIM_GetADCTrigSrc\n
2346   *         ADC1R        ADC1TCC2        LL_HRTIM_GetADCTrigSrc\n
2347   *         ADC1R        ADC1TCC3        LL_HRTIM_GetADCTrigSrc\n
2348   *         ADC1R        ADC1TCC4        LL_HRTIM_GetADCTrigSrc\n
2349   *         ADC1R        ADC1TCPER       LL_HRTIM_GetADCTrigSrc\n
2350   *         ADC1R        ADC1TDC2        LL_HRTIM_GetADCTrigSrc\n
2351   *         ADC1R        ADC1TDC3        LL_HRTIM_GetADCTrigSrc\n
2352   *         ADC1R        ADC1TDC4        LL_HRTIM_GetADCTrigSrc\n
2353   *         ADC1R        ADC1TDPER       LL_HRTIM_GetADCTrigSrc\n
2354   *         ADC1R        ADC1TEC2        LL_HRTIM_GetADCTrigSrc\n
2355   *         ADC1R        ADC1TEC3        LL_HRTIM_GetADCTrigSrc\n
2356   *         ADC1R        ADC1TEC4        LL_HRTIM_GetADCTrigSrc\n
2357   *         ADC1R        ADC1TEPER       LL_HRTIM_GetADCTrigSrc\n
2358   *         ADC2R        ADC2MC1         LL_HRTIM_GetADCTrigSrc\n
2359   *         ADC2R        ADC2MC2         LL_HRTIM_GetADCTrigSrc\n
2360   *         ADC2R        ADC2MC3         LL_HRTIM_GetADCTrigSrc\n
2361   *         ADC2R        ADC2MC4         LL_HRTIM_GetADCTrigSrc\n
2362   *         ADC2R        ADC2MPER        LL_HRTIM_GetADCTrigSrc\n
2363   *         ADC2R        ADC2EEV6        LL_HRTIM_GetADCTrigSrc\n
2364   *         ADC2R        ADC2EEV7        LL_HRTIM_GetADCTrigSrc\n
2365   *         ADC2R        ADC2EEV8        LL_HRTIM_GetADCTrigSrc\n
2366   *         ADC2R        ADC2EEV9        LL_HRTIM_GetADCTrigSrc\n
2367   *         ADC2R        ADC2EEV10       LL_HRTIM_GetADCTrigSrc\n
2368   *         ADC2R        ADC2TAC2        LL_HRTIM_GetADCTrigSrc\n
2369   *         ADC2R        ADC2TAC3        LL_HRTIM_GetADCTrigSrc\n
2370   *         ADC2R        ADC2TAC4        LL_HRTIM_GetADCTrigSrc\n
2371   *         ADC2R        ADC2TAPER       LL_HRTIM_GetADCTrigSrc\n
2372   *         ADC2R        ADC2TBC2        LL_HRTIM_GetADCTrigSrc\n
2373   *         ADC2R        ADC2TBC3        LL_HRTIM_GetADCTrigSrc\n
2374   *         ADC2R        ADC2TBC4        LL_HRTIM_GetADCTrigSrc\n
2375   *         ADC2R        ADC2TBPER       LL_HRTIM_GetADCTrigSrc\n
2376   *         ADC2R        ADC2TCC2        LL_HRTIM_GetADCTrigSrc\n
2377   *         ADC2R        ADC2TCC3        LL_HRTIM_GetADCTrigSrc\n
2378   *         ADC2R        ADC2TCC4        LL_HRTIM_GetADCTrigSrc\n
2379   *         ADC2R        ADC2TCPER       LL_HRTIM_GetADCTrigSrc\n
2380   *         ADC2R        ADC2TCRST       LL_HRTIM_GetADCTrigSrc\n
2381   *         ADC2R        ADC2TDC2        LL_HRTIM_GetADCTrigSrc\n
2382   *         ADC2R        ADC2TDC3        LL_HRTIM_GetADCTrigSrc\n
2383   *         ADC2R        ADC2TDC4        LL_HRTIM_GetADCTrigSrc\n
2384   *         ADC2R        ADC2TDPER       LL_HRTIM_GetADCTrigSrc\n
2385   *         ADC2R        ADC2TDRST       LL_HRTIM_GetADCTrigSrc\n
2386   *         ADC2R        ADC2TEC2        LL_HRTIM_GetADCTrigSrc\n
2387   *         ADC2R        ADC2TEC3        LL_HRTIM_GetADCTrigSrc\n
2388   *         ADC2R        ADC2TEC4        LL_HRTIM_GetADCTrigSrc\n
2389   *         ADC2R        ADC2TERST       LL_HRTIM_GetADCTrigSrc\n
2390   *         ADC3R        ADC3MC1         LL_HRTIM_GetADCTrigSrc\n
2391   *         ADC3R        ADC3MC2         LL_HRTIM_GetADCTrigSrc\n
2392   *         ADC3R        ADC3MC3         LL_HRTIM_GetADCTrigSrc\n
2393   *         ADC3R        ADC3MC4         LL_HRTIM_GetADCTrigSrc\n
2394   *         ADC3R        ADC3MPER        LL_HRTIM_GetADCTrigSrc\n
2395   *         ADC3R        ADC3EEV1        LL_HRTIM_GetADCTrigSrc\n
2396   *         ADC3R        ADC3EEV2        LL_HRTIM_GetADCTrigSrc\n
2397   *         ADC3R        ADC3EEV3        LL_HRTIM_GetADCTrigSrc\n
2398   *         ADC3R        ADC3EEV4        LL_HRTIM_GetADCTrigSrc\n
2399   *         ADC3R        ADC3EEV5        LL_HRTIM_GetADCTrigSrc\n
2400   *         ADC3R        ADC3TAC2        LL_HRTIM_GetADCTrigSrc\n
2401   *         ADC3R        ADC3TAC3        LL_HRTIM_GetADCTrigSrc\n
2402   *         ADC3R        ADC3TAC4        LL_HRTIM_GetADCTrigSrc\n
2403   *         ADC3R        ADC3TAPER       LL_HRTIM_GetADCTrigSrc\n
2404   *         ADC3R        ADC3TARST       LL_HRTIM_GetADCTrigSrc\n
2405   *         ADC3R        ADC3TBC2        LL_HRTIM_GetADCTrigSrc\n
2406   *         ADC3R        ADC3TBC3        LL_HRTIM_GetADCTrigSrc\n
2407   *         ADC3R        ADC3TBC4        LL_HRTIM_GetADCTrigSrc\n
2408   *         ADC3R        ADC3TBPER       LL_HRTIM_GetADCTrigSrc\n
2409   *         ADC3R        ADC3TBRST       LL_HRTIM_GetADCTrigSrc\n
2410   *         ADC3R        ADC3TCC2        LL_HRTIM_GetADCTrigSrc\n
2411   *         ADC3R        ADC3TCC3        LL_HRTIM_GetADCTrigSrc\n
2412   *         ADC3R        ADC3TCC4        LL_HRTIM_GetADCTrigSrc\n
2413   *         ADC3R        ADC3TCPER       LL_HRTIM_GetADCTrigSrc\n
2414   *         ADC3R        ADC3TDC2        LL_HRTIM_GetADCTrigSrc\n
2415   *         ADC3R        ADC3TDC3        LL_HRTIM_GetADCTrigSrc\n
2416   *         ADC3R        ADC3TDC4        LL_HRTIM_GetADCTrigSrc\n
2417   *         ADC3R        ADC3TDPER       LL_HRTIM_GetADCTrigSrc\n
2418   *         ADC3R        ADC3TEC2        LL_HRTIM_GetADCTrigSrc\n
2419   *         ADC3R        ADC3TEC3        LL_HRTIM_GetADCTrigSrc\n
2420   *         ADC3R        ADC3TEC4        LL_HRTIM_GetADCTrigSrc\n
2421   *         ADC3R        ADC3TEPER       LL_HRTIM_GetADCTrigSrc\n
2422   *         ADC4R        ADC4MC1         LL_HRTIM_GetADCTrigSrc\n
2423   *         ADC4R        ADC4MC2         LL_HRTIM_GetADCTrigSrc\n
2424   *         ADC4R        ADC4MC3         LL_HRTIM_GetADCTrigSrc\n
2425   *         ADC4R        ADC4MC4         LL_HRTIM_GetADCTrigSrc\n
2426   *         ADC4R        ADC4MPER        LL_HRTIM_GetADCTrigSrc\n
2427   *         ADC4R        ADC4EEV6        LL_HRTIM_GetADCTrigSrc\n
2428   *         ADC4R        ADC4EEV7        LL_HRTIM_GetADCTrigSrc\n
2429   *         ADC4R        ADC4EEV8        LL_HRTIM_GetADCTrigSrc\n
2430   *         ADC4R        ADC4EEV9        LL_HRTIM_GetADCTrigSrc\n
2431   *         ADC4R        ADC4EEV10       LL_HRTIM_GetADCTrigSrc\n
2432   *         ADC4R        ADC4TAC2        LL_HRTIM_GetADCTrigSrc\n
2433   *         ADC4R        ADC4TAC3        LL_HRTIM_GetADCTrigSrc\n
2434   *         ADC4R        ADC4TAC4        LL_HRTIM_GetADCTrigSrc\n
2435   *         ADC4R        ADC4TAPER       LL_HRTIM_GetADCTrigSrc\n
2436   *         ADC4R        ADC4TBC2        LL_HRTIM_GetADCTrigSrc\n
2437   *         ADC4R        ADC4TBC3        LL_HRTIM_GetADCTrigSrc\n
2438   *         ADC4R        ADC4TBC4        LL_HRTIM_GetADCTrigSrc\n
2439   *         ADC4R        ADC4TBPER       LL_HRTIM_GetADCTrigSrc\n
2440   *         ADC4R        ADC4TCC2        LL_HRTIM_GetADCTrigSrc\n
2441   *         ADC4R        ADC4TCC3        LL_HRTIM_GetADCTrigSrc\n
2442   *         ADC4R        ADC4TCC4        LL_HRTIM_GetADCTrigSrc\n
2443   *         ADC4R        ADC4TCPER       LL_HRTIM_GetADCTrigSrc\n
2444   *         ADC4R        ADC4TCRST       LL_HRTIM_GetADCTrigSrc\n
2445   *         ADC4R        ADC4TDC2        LL_HRTIM_GetADCTrigSrc\n
2446   *         ADC4R        ADC4TDC3        LL_HRTIM_GetADCTrigSrc\n
2447   *         ADC4R        ADC4TDC4        LL_HRTIM_GetADCTrigSrc\n
2448   *         ADC4R        ADC4TDPER       LL_HRTIM_GetADCTrigSrc\n
2449   *         ADC4R        ADC4TDRST       LL_HRTIM_GetADCTrigSrc\n
2450   *         ADC4R        ADC4TEC2        LL_HRTIM_GetADCTrigSrc\n
2451   *         ADC4R        ADC4TEC3        LL_HRTIM_GetADCTrigSrc\n
2452   *         ADC4R        ADC4TEC4        LL_HRTIM_GetADCTrigSrc\n
2453   *         ADC4R        ADC4TERST       LL_HRTIM_GetADCTrigSrc
2454   * @param  HRTIMx High Resolution Timer instance
2455   * @param  ADCTrig This parameter can be one of the following values:
2456   *         @arg @ref LL_HRTIM_ADCTRIG_1
2457   *         @arg @ref LL_HRTIM_ADCTRIG_2
2458   *         @arg @ref LL_HRTIM_ADCTRIG_3
2459   *         @arg @ref LL_HRTIM_ADCTRIG_4
2460   * @retval Src This parameter can be a combination of the following values:
2461   *
2462   *         For ADC trigger 1 and ADC trigger 3 this parameter can be a
2463   *         combination of the following values:
2464   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_NONE
2465   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP1
2466   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP2
2467   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP3
2468   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MCMP4
2469   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_MPER
2470   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV1
2471   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV2
2472   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV3
2473   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV4
2474   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_EEV5
2475   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMACMP2
2476   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMACMP3
2477   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMACMP4
2478   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMAPER
2479   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMARST
2480   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBCMP2
2481   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBCMP3
2482   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBCMP4
2483   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBPER
2484   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMBRST
2485   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCCMP2
2486   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCCMP3
2487   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCCMP4
2488   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMCPER
2489   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDCMP2
2490   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDCMP3
2491   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDCMP4
2492   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMDPER
2493   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMECMP2
2494   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMECMP3
2495   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMECMP4
2496   *         @arg @ref LL_HRTIM_ADCTRIG_SRC13_TIMEPER
2497   *
2498   *         For ADC trigger 2 and ADC trigger 4 this parameter can be a
2499   *         combination of the following values:
2500   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_NONE
2501   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP1
2502   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP2
2503   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP3
2504   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MCMP4
2505   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_MPER
2506   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV6
2507   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV7
2508   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV8
2509   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV9
2510   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_EEV10
2511   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMACMP2
2512   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMACMP3
2513   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMACMP4
2514   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMAPER
2515   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBCMP2
2516   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBCMP3
2517   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBCMP4
2518   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMBPER
2519   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCCMP2
2520   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCCMP3
2521   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCCMP4
2522   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCPER
2523   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMCRST
2524   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDCMP2
2525   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDCMP3
2526   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDCMP4
2527   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDPER
2528   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMDRST
2529   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP2
2530   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP3
2531   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMECMP4
2532   *         @arg @ref LL_HRTIM_ADCTRIG_SRC24_TIMERST
2533   */
2534 __STATIC_INLINE uint32_t LL_HRTIM_GetADCTrigSrc(const HRTIM_TypeDef *HRTIMx, uint32_t ADCTrig)
2535 {
2536   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.ADC1R) +
2537                                                                     REG_OFFSET_TAB_ADCxR[ADCTrig]));
2538   return (*pReg);
2539 
2540 }
2541 
2542 
2543 /**
2544   * @}
2545   */
2546 
2547 /** @defgroup HRTIM_LL_EF_HRTIM_Timer_Control HRTIM_Timer_Control
2548   * @ingroup RTEMSBSPsARMSTM32H7
2549   * @{
2550   */
2551 
2552 /**
2553   * @brief  Enable timer(s) counter.
2554   * @rmtoll MDIER        TECEN         LL_HRTIM_TIM_CounterEnable\n
2555   *         MDIER        TDCEN         LL_HRTIM_TIM_CounterEnable\n
2556   *         MDIER        TCCEN         LL_HRTIM_TIM_CounterEnable\n
2557   *         MDIER        TBCEN         LL_HRTIM_TIM_CounterEnable\n
2558   *         MDIER        TACEN         LL_HRTIM_TIM_CounterEnable\n
2559   *         MDIER        MCEN          LL_HRTIM_TIM_CounterEnable
2560   * @param  HRTIMx High Resolution Timer instance
2561   * @param  Timers This parameter can be a combination of the following values:
2562   *         @arg @ref LL_HRTIM_TIMER_MASTER
2563   *         @arg @ref LL_HRTIM_TIMER_A
2564   *         @arg @ref LL_HRTIM_TIMER_B
2565   *         @arg @ref LL_HRTIM_TIMER_C
2566   *         @arg @ref LL_HRTIM_TIMER_D
2567   *         @arg @ref LL_HRTIM_TIMER_E
2568   * @retval None
2569   */
2570 __STATIC_INLINE void LL_HRTIM_TIM_CounterEnable(HRTIM_TypeDef *HRTIMx, uint32_t Timers)
2571 {
2572   SET_BIT(HRTIMx->sMasterRegs.MCR, Timers);
2573 }
2574 
2575 /**
2576   * @brief  Disable timer(s) counter.
2577   * @rmtoll MDIER        TECEN         LL_HRTIM_TIM_CounterDisable\n
2578   *         MDIER        TDCEN         LL_HRTIM_TIM_CounterDisable\n
2579   *         MDIER        TCCEN         LL_HRTIM_TIM_CounterDisable\n
2580   *         MDIER        TBCEN         LL_HRTIM_TIM_CounterDisable\n
2581   *         MDIER        TACEN         LL_HRTIM_TIM_CounterDisable\n
2582   *         MDIER        MCEN          LL_HRTIM_TIM_CounterDisable
2583   * @param  HRTIMx High Resolution Timer instance
2584   * @param  Timers This parameter can be a combination of the following values:
2585   *         @arg @ref LL_HRTIM_TIMER_MASTER
2586   *         @arg @ref LL_HRTIM_TIMER_A
2587   *         @arg @ref LL_HRTIM_TIMER_B
2588   *         @arg @ref LL_HRTIM_TIMER_C
2589   *         @arg @ref LL_HRTIM_TIMER_D
2590   *         @arg @ref LL_HRTIM_TIMER_E
2591   * @retval None
2592   */
2593 __STATIC_INLINE void LL_HRTIM_TIM_CounterDisable(HRTIM_TypeDef *HRTIMx, uint32_t Timers)
2594 {
2595   CLEAR_BIT(HRTIMx->sMasterRegs.MCR, Timers);
2596 }
2597 
2598 /**
2599   * @brief  Indicate whether the timer counter is enabled.
2600   * @rmtoll MDIER        TECEN         LL_HRTIM_TIM_IsCounterEnabled\n
2601   *         MDIER        TDCEN         LL_HRTIM_TIM_IsCounterEnabled\n
2602   *         MDIER        TCCEN         LL_HRTIM_TIM_IsCounterEnabled\n
2603   *         MDIER        TBCEN         LL_HRTIM_TIM_IsCounterEnabled\n
2604   *         MDIER        TACEN         LL_HRTIM_TIM_IsCounterEnabled\n
2605   *         MDIER        MCEN          LL_HRTIM_TIM_IsCounterEnabled
2606   * @param  HRTIMx High Resolution Timer instance
2607   * @param  Timer This parameter can be one of the following values:
2608   *         @arg @ref LL_HRTIM_TIMER_MASTER
2609   *         @arg @ref LL_HRTIM_TIMER_A
2610   *         @arg @ref LL_HRTIM_TIMER_B
2611   *         @arg @ref LL_HRTIM_TIMER_C
2612   *         @arg @ref LL_HRTIM_TIMER_D
2613   *         @arg @ref LL_HRTIM_TIMER_E
2614   * @retval State of MCEN or TxCEN bit HRTIM_MCR register (1 or 0).
2615   */
2616 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsCounterEnabled(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
2617 {
2618   return ((READ_BIT(HRTIMx->sMasterRegs.MCR, Timer) == (Timer)) ? 1UL : 0UL);
2619 }
2620 
2621 /**
2622   * @brief  Set the timer clock prescaler ratio.
2623   * @rmtoll MCR        CKPSC         LL_HRTIM_TIM_SetPrescaler\n
2624   *         TIMxCR     CKPSC         LL_HRTIM_TIM_SetPrescaler
2625   * @note The counter clock equivalent frequency (CK_CNT) is equal to fHRCK / 2^CKPSC[2:0].
2626   * @note The prescaling ratio cannot be modified once the timer counter is enabled.
2627   * @param  HRTIMx High Resolution Timer instance
2628   * @param  Timer This parameter can be one of the following values:
2629   *         @arg @ref LL_HRTIM_TIMER_MASTER
2630   *         @arg @ref LL_HRTIM_TIMER_A
2631   *         @arg @ref LL_HRTIM_TIMER_B
2632   *         @arg @ref LL_HRTIM_TIMER_C
2633   *         @arg @ref LL_HRTIM_TIMER_D
2634   *         @arg @ref LL_HRTIM_TIMER_E
2635   * @param  Prescaler This parameter can be one of the following values:
2636   *         @arg @ref LL_HRTIM_PRESCALERRATIO_DIV1
2637   *         @arg @ref LL_HRTIM_PRESCALERRATIO_DIV2
2638   *         @arg @ref LL_HRTIM_PRESCALERRATIO_DIV4
2639   * @retval None
2640   */
2641 __STATIC_INLINE void LL_HRTIM_TIM_SetPrescaler(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Prescaler)
2642 {
2643   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
2644   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
2645   MODIFY_REG(*pReg, HRTIM_MCR_CK_PSC, Prescaler);
2646 }
2647 
2648 /**
2649   * @brief  Get the timer clock prescaler ratio
2650   * @rmtoll MCR        CKPSC         LL_HRTIM_TIM_GetPrescaler\n
2651   *         TIMxCR     CKPSC         LL_HRTIM_TIM_GetPrescaler
2652   * @param  HRTIMx High Resolution Timer instance
2653   * @param  Timer This parameter can be one of the following values:
2654   *         @arg @ref LL_HRTIM_TIMER_MASTER
2655   *         @arg @ref LL_HRTIM_TIMER_A
2656   *         @arg @ref LL_HRTIM_TIMER_B
2657   *         @arg @ref LL_HRTIM_TIMER_C
2658   *         @arg @ref LL_HRTIM_TIMER_D
2659   *         @arg @ref LL_HRTIM_TIMER_E
2660   * @retval Prescaler Returned value can be one of the following values:
2661   *         @arg @ref LL_HRTIM_PRESCALERRATIO_DIV1
2662   *         @arg @ref LL_HRTIM_PRESCALERRATIO_DIV2
2663   *         @arg @ref LL_HRTIM_PRESCALERRATIO_DIV4
2664   */
2665 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetPrescaler(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
2666 {
2667   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
2668   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
2669   return (READ_BIT(*pReg, HRTIM_MCR_CK_PSC));
2670 }
2671 
2672 /**
2673   * @brief  Set the counter operating mode mode (single-shot, continuous or re-triggerable).
2674   * @rmtoll MCR        CONT         LL_HRTIM_TIM_SetCounterMode\n
2675   *         MCR        RETRIG       LL_HRTIM_TIM_SetCounterMode\n
2676   *         TIMxCR     CONT         LL_HRTIM_TIM_SetCounterMode\n
2677   *         TIMxCR     RETRIG       LL_HRTIM_TIM_SetCounterMode
2678   * @param  HRTIMx High Resolution Timer instance
2679   * @param  Timer This parameter can be one of the following values:
2680   *         @arg @ref LL_HRTIM_TIMER_MASTER
2681   *         @arg @ref LL_HRTIM_TIMER_A
2682   *         @arg @ref LL_HRTIM_TIMER_B
2683   *         @arg @ref LL_HRTIM_TIMER_C
2684   *         @arg @ref LL_HRTIM_TIMER_D
2685   *         @arg @ref LL_HRTIM_TIMER_E
2686   * @param  Mode This parameter can be one of the following values:
2687   *         @arg @ref LL_HRTIM_MODE_CONTINUOUS
2688   *         @arg @ref LL_HRTIM_MODE_SINGLESHOT
2689   *         @arg @ref LL_HRTIM_MODE_RETRIGGERABLE
2690   * @retval None
2691   */
2692 __STATIC_INLINE void LL_HRTIM_TIM_SetCounterMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Mode)
2693 {
2694   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
2695   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
2696   MODIFY_REG(*pReg, (HRTIM_TIMCR_RETRIG | HRTIM_MCR_CONT), Mode);
2697 }
2698 
2699 /**
2700   * @brief  Get the counter operating mode mode
2701   * @rmtoll MCR        CONT         LL_HRTIM_TIM_GetCounterMode\n
2702   *         MCR        RETRIG       LL_HRTIM_TIM_GetCounterMode\n
2703   *         TIMxCR     CONT         LL_HRTIM_TIM_GetCounterMode\n
2704   *         TIMxCR     RETRIG       LL_HRTIM_TIM_GetCounterMode
2705   * @param  HRTIMx High Resolution Timer instance
2706   * @param  Timer This parameter can be one of the following values:
2707   *         @arg @ref LL_HRTIM_TIMER_MASTER
2708   *         @arg @ref LL_HRTIM_TIMER_A
2709   *         @arg @ref LL_HRTIM_TIMER_B
2710   *         @arg @ref LL_HRTIM_TIMER_C
2711   *         @arg @ref LL_HRTIM_TIMER_D
2712   *         @arg @ref LL_HRTIM_TIMER_E
2713   * @retval Mode Returned value can be one of the following values:
2714   *         @arg @ref LL_HRTIM_MODE_CONTINUOUS
2715   *         @arg @ref LL_HRTIM_MODE_SINGLESHOT
2716   *         @arg @ref LL_HRTIM_MODE_RETRIGGERABLE
2717   */
2718 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCounterMode(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
2719 {
2720   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
2721   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
2722   return (READ_BIT(*pReg, (HRTIM_MCR_RETRIG | HRTIM_MCR_CONT)));
2723 }
2724 
2725 /**
2726   * @brief  Enable the half duty-cycle mode.
2727   * @rmtoll MCR        HALF         LL_HRTIM_TIM_EnableHalfMode\n
2728   *         TIMxCR     HALF         LL_HRTIM_TIM_EnableHalfMode
2729   * @note When the half mode is enabled, HRTIM_MCMP1R (or HRTIM_CMP1xR)
2730   *       active register is automatically updated with HRTIM_MPER/2
2731   *       (or HRTIM_PERxR/2) value when HRTIM_MPER (or HRTIM_PERxR) register is written.
2732   * @param  HRTIMx High Resolution Timer instance
2733   * @param  Timer This parameter can be one of the following values:
2734   *         @arg @ref LL_HRTIM_TIMER_MASTER
2735   *         @arg @ref LL_HRTIM_TIMER_A
2736   *         @arg @ref LL_HRTIM_TIMER_B
2737   *         @arg @ref LL_HRTIM_TIMER_C
2738   *         @arg @ref LL_HRTIM_TIMER_D
2739   *         @arg @ref LL_HRTIM_TIMER_E
2740   * @retval None
2741   */
2742 __STATIC_INLINE void LL_HRTIM_TIM_EnableHalfMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
2743 {
2744   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
2745   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
2746   SET_BIT(*pReg, HRTIM_MCR_HALF);
2747 }
2748 
2749 /**
2750   * @brief  Disable the half duty-cycle mode.
2751   * @rmtoll MCR        HALF         LL_HRTIM_TIM_DisableHalfMode\n
2752   *         TIMxCR     HALF         LL_HRTIM_TIM_DisableHalfMode
2753   * @param  HRTIMx High Resolution Timer instance
2754   * @param  Timer This parameter can be one of the following values:
2755   *         @arg @ref LL_HRTIM_TIMER_MASTER
2756   *         @arg @ref LL_HRTIM_TIMER_A
2757   *         @arg @ref LL_HRTIM_TIMER_B
2758   *         @arg @ref LL_HRTIM_TIMER_C
2759   *         @arg @ref LL_HRTIM_TIMER_D
2760   *         @arg @ref LL_HRTIM_TIMER_E
2761   * @retval None
2762   */
2763 __STATIC_INLINE void LL_HRTIM_TIM_DisableHalfMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
2764 {
2765   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
2766   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
2767   CLEAR_BIT(*pReg, HRTIM_MCR_HALF);
2768 }
2769 
2770 /**
2771   * @brief  Indicate whether half duty-cycle mode is enabled for a given timer.
2772   * @rmtoll MCR        HALF         LL_HRTIM_TIM_IsEnabledHalfMode\n
2773   *         TIMxCR     HALF         LL_HRTIM_TIM_IsEnabledHalfMode
2774   * @param  HRTIMx High Resolution Timer instance
2775   * @param  Timer This parameter can be one of the following values:
2776   *         @arg @ref LL_HRTIM_TIMER_MASTER
2777   *         @arg @ref LL_HRTIM_TIMER_A
2778   *         @arg @ref LL_HRTIM_TIMER_B
2779   *         @arg @ref LL_HRTIM_TIMER_C
2780   *         @arg @ref LL_HRTIM_TIMER_D
2781   *         @arg @ref LL_HRTIM_TIMER_E
2782   * @retval State of HALF bit to 1 in HRTIM_MCR or HRTIM_TIMxCR register (1 or 0).
2783   */
2784 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledHalfMode(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
2785 {
2786   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
2787   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
2788 
2789   return ((READ_BIT(*pReg, HRTIM_MCR_HALF) == (HRTIM_MCR_HALF)) ? 1UL : 0UL);
2790 }
2791 /**
2792   * @brief  Enable the timer start when receiving a synchronization input event.
2793   * @rmtoll MCR        SYNCSTRTM        LL_HRTIM_TIM_EnableStartOnSync\n
2794   *         TIMxCR     SYNSTRTA         LL_HRTIM_TIM_EnableStartOnSync
2795   * @param  HRTIMx High Resolution Timer instance
2796   * @param  Timer This parameter can be one of the following values:
2797   *         @arg @ref LL_HRTIM_TIMER_MASTER
2798   *         @arg @ref LL_HRTIM_TIMER_A
2799   *         @arg @ref LL_HRTIM_TIMER_B
2800   *         @arg @ref LL_HRTIM_TIMER_C
2801   *         @arg @ref LL_HRTIM_TIMER_D
2802   *         @arg @ref LL_HRTIM_TIMER_E
2803   * @retval None
2804   */
2805 __STATIC_INLINE void LL_HRTIM_TIM_EnableStartOnSync(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
2806 {
2807   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
2808   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
2809   SET_BIT(*pReg, HRTIM_MCR_SYNCSTRTM);
2810 }
2811 
2812 /**
2813   * @brief  Disable the timer start when receiving a synchronization input event.
2814   * @rmtoll MCR        SYNCSTRTM        LL_HRTIM_TIM_DisableStartOnSync\n
2815   *         TIMxCR     SYNSTRTA         LL_HRTIM_TIM_DisableStartOnSync
2816   * @param  HRTIMx High Resolution Timer instance
2817   * @param  Timer This parameter can be one of the following values:
2818   *         @arg @ref LL_HRTIM_TIMER_MASTER
2819   *         @arg @ref LL_HRTIM_TIMER_A
2820   *         @arg @ref LL_HRTIM_TIMER_B
2821   *         @arg @ref LL_HRTIM_TIMER_C
2822   *         @arg @ref LL_HRTIM_TIMER_D
2823   *         @arg @ref LL_HRTIM_TIMER_E
2824   * @retval None
2825   */
2826 __STATIC_INLINE void LL_HRTIM_TIM_DisableStartOnSync(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
2827 {
2828   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
2829   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
2830   CLEAR_BIT(*pReg, HRTIM_MCR_SYNCSTRTM);
2831 }
2832 
2833 /**
2834   * @brief  Indicate whether the timer start when receiving a synchronization input event.
2835   * @rmtoll MCR        SYNCSTRTM        LL_HRTIM_TIM_IsEnabledStartOnSync\n
2836   *         TIMxCR     SYNSTRTA         LL_HRTIM_TIM_IsEnabledStartOnSync
2837   * @param  HRTIMx High Resolution Timer instance
2838   * @param  Timer This parameter can be one of the following values:
2839   *         @arg @ref LL_HRTIM_TIMER_MASTER
2840   *         @arg @ref LL_HRTIM_TIMER_A
2841   *         @arg @ref LL_HRTIM_TIMER_B
2842   *         @arg @ref LL_HRTIM_TIMER_C
2843   *         @arg @ref LL_HRTIM_TIMER_D
2844   *         @arg @ref LL_HRTIM_TIMER_E
2845   * @retval State of SYNCSTRTx bit in HRTIM_MCR or HRTIM_TIMxCR register (1 or 0).
2846   */
2847 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledStartOnSync(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
2848 {
2849   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
2850   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
2851 
2852   return ((READ_BIT(*pReg, HRTIM_MCR_SYNCSTRTM) == (HRTIM_MCR_SYNCSTRTM)) ? 1UL : 0UL);
2853 }
2854 
2855 /**
2856   * @brief  Enable the timer reset when receiving a synchronization input event.
2857   * @rmtoll MCR        SYNCRSTM        LL_HRTIM_TIM_EnableResetOnSync\n
2858   *         TIMxCR     SYNCRSTA        LL_HRTIM_TIM_EnableResetOnSync
2859   * @param  HRTIMx High Resolution Timer instance
2860   * @param  Timer This parameter can be one of the following values:
2861   *         @arg @ref LL_HRTIM_TIMER_MASTER
2862   *         @arg @ref LL_HRTIM_TIMER_A
2863   *         @arg @ref LL_HRTIM_TIMER_B
2864   *         @arg @ref LL_HRTIM_TIMER_C
2865   *         @arg @ref LL_HRTIM_TIMER_D
2866   *         @arg @ref LL_HRTIM_TIMER_E
2867   * @retval None
2868   */
2869 __STATIC_INLINE void LL_HRTIM_TIM_EnableResetOnSync(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
2870 {
2871   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
2872   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
2873   SET_BIT(*pReg, HRTIM_MCR_SYNCRSTM);
2874 }
2875 
2876 /**
2877   * @brief  Disable the timer reset when receiving a synchronization input event.
2878   * @rmtoll MCR        SYNCRSTM        LL_HRTIM_TIM_DisableResetOnSync\n
2879   *         TIMxCR     SYNCRSTA        LL_HRTIM_TIM_DisableResetOnSync
2880   * @param  HRTIMx High Resolution Timer instance
2881   * @param  Timer This parameter can be one of the following values:
2882   *         @arg @ref LL_HRTIM_TIMER_MASTER
2883   *         @arg @ref LL_HRTIM_TIMER_A
2884   *         @arg @ref LL_HRTIM_TIMER_B
2885   *         @arg @ref LL_HRTIM_TIMER_C
2886   *         @arg @ref LL_HRTIM_TIMER_D
2887   *         @arg @ref LL_HRTIM_TIMER_E
2888   * @retval None
2889   */
2890 __STATIC_INLINE void LL_HRTIM_TIM_DisableResetOnSync(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
2891 {
2892   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
2893   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
2894   CLEAR_BIT(*pReg, HRTIM_MCR_SYNCRSTM);
2895 }
2896 
2897 /**
2898   * @brief  Indicate whether the timer reset when receiving a synchronization input event.
2899   * @rmtoll MCR        SYNCRSTM        LL_HRTIM_TIM_IsEnabledResetOnSync\n
2900   *         TIMxCR     SYNCRSTA        LL_HRTIM_TIM_IsEnabledResetOnSync
2901   * @param  HRTIMx High Resolution Timer instance
2902   * @param  Timer This parameter can be one of the following values:
2903   *         @arg @ref LL_HRTIM_TIMER_MASTER
2904   *         @arg @ref LL_HRTIM_TIMER_A
2905   *         @arg @ref LL_HRTIM_TIMER_B
2906   *         @arg @ref LL_HRTIM_TIMER_C
2907   *         @arg @ref LL_HRTIM_TIMER_D
2908   *         @arg @ref LL_HRTIM_TIMER_E
2909   * @retval None
2910   */
2911 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledResetOnSync(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
2912 {
2913   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
2914   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
2915 
2916   return ((READ_BIT(*pReg, HRTIM_MCR_SYNCRSTM) == (HRTIM_MCR_SYNCRSTM)) ? 1UL : 0UL);
2917 }
2918 
2919 /**
2920   * @brief  Set the HRTIM output the DAC synchronization event is generated on (DACtrigOutx).
2921   * @rmtoll MCR        DACSYNC        LL_HRTIM_TIM_SetDACTrig\n
2922   *         TIMxCR     DACSYNC        LL_HRTIM_TIM_SetDACTrig
2923   * @param  HRTIMx High Resolution Timer instance
2924   * @param  Timer This parameter can be one of the following values:
2925   *         @arg @ref LL_HRTIM_TIMER_MASTER
2926   *         @arg @ref LL_HRTIM_TIMER_A
2927   *         @arg @ref LL_HRTIM_TIMER_B
2928   *         @arg @ref LL_HRTIM_TIMER_C
2929   *         @arg @ref LL_HRTIM_TIMER_D
2930   *         @arg @ref LL_HRTIM_TIMER_E
2931   * @param  DACTrig This parameter can be one of the following values:
2932   *         @arg @ref LL_HRTIM_DACTRIG_NONE
2933   *         @arg @ref LL_HRTIM_DACTRIG_DACTRIGOUT_1
2934   *         @arg @ref LL_HRTIM_DACTRIG_DACTRIGOUT_2
2935   *         @arg @ref LL_HRTIM_DACTRIG_DACTRIGOUT_3
2936   * @retval None
2937   */
2938 __STATIC_INLINE void LL_HRTIM_TIM_SetDACTrig(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t DACTrig)
2939 {
2940   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
2941   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
2942   MODIFY_REG(*pReg, HRTIM_MCR_DACSYNC, DACTrig);
2943 }
2944 
2945 /**
2946   * @brief  Get the HRTIM output the DAC synchronization event is generated on (DACtrigOutx).
2947   * @rmtoll MCR        DACSYNC        LL_HRTIM_TIM_GetDACTrig\n
2948   *         TIMxCR     DACSYNC        LL_HRTIM_TIM_GetDACTrig
2949   * @param  HRTIMx High Resolution Timer instance
2950   * @param  Timer This parameter can be one of the following values:
2951   *         @arg @ref LL_HRTIM_TIMER_MASTER
2952   *         @arg @ref LL_HRTIM_TIMER_A
2953   *         @arg @ref LL_HRTIM_TIMER_B
2954   *         @arg @ref LL_HRTIM_TIMER_C
2955   *         @arg @ref LL_HRTIM_TIMER_D
2956   *         @arg @ref LL_HRTIM_TIMER_E
2957   * @retval DACTrig Returned value can be one of the following values:
2958   *         @arg @ref LL_HRTIM_DACTRIG_NONE
2959   *         @arg @ref LL_HRTIM_DACTRIG_DACTRIGOUT_1
2960   *         @arg @ref LL_HRTIM_DACTRIG_DACTRIGOUT_2
2961   *         @arg @ref LL_HRTIM_DACTRIG_DACTRIGOUT_3
2962   */
2963 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetDACTrig(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
2964 {
2965   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
2966   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
2967   return (READ_BIT(*pReg, HRTIM_MCR_DACSYNC));
2968 }
2969 
2970 /**
2971   * @brief  Enable the timer registers preload mechanism.
2972   * @rmtoll MCR        PREEN        LL_HRTIM_TIM_EnablePreload\n
2973   *         TIMxCR     PREEN        LL_HRTIM_TIM_EnablePreload
2974   * @note When the preload mode is enabled, accessed registers are shadow registers.
2975   *       Their content is transferred into the active register after an update request,
2976   *       either software or synchronized with an event.
2977   * @param  HRTIMx High Resolution Timer instance
2978   * @param  Timer This parameter can be one of the following values:
2979   *         @arg @ref LL_HRTIM_TIMER_MASTER
2980   *         @arg @ref LL_HRTIM_TIMER_A
2981   *         @arg @ref LL_HRTIM_TIMER_B
2982   *         @arg @ref LL_HRTIM_TIMER_C
2983   *         @arg @ref LL_HRTIM_TIMER_D
2984   *         @arg @ref LL_HRTIM_TIMER_E
2985   * @retval None
2986   */
2987 __STATIC_INLINE void LL_HRTIM_TIM_EnablePreload(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
2988 {
2989   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
2990   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
2991   SET_BIT(*pReg, HRTIM_MCR_PREEN);
2992 }
2993 
2994 /**
2995   * @brief  Disable the timer registers preload mechanism.
2996   * @rmtoll MCR        PREEN        LL_HRTIM_TIM_DisablePreload\n
2997   *         TIMxCR     PREEN        LL_HRTIM_TIM_DisablePreload
2998   * @param  HRTIMx High Resolution Timer instance
2999   * @param  Timer This parameter can be one of the following values:
3000   *         @arg @ref LL_HRTIM_TIMER_MASTER
3001   *         @arg @ref LL_HRTIM_TIMER_A
3002   *         @arg @ref LL_HRTIM_TIMER_B
3003   *         @arg @ref LL_HRTIM_TIMER_C
3004   *         @arg @ref LL_HRTIM_TIMER_D
3005   *         @arg @ref LL_HRTIM_TIMER_E
3006   * @retval None
3007   */
3008 __STATIC_INLINE void LL_HRTIM_TIM_DisablePreload(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3009 {
3010   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3011   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
3012   CLEAR_BIT(*pReg, HRTIM_MCR_PREEN);
3013 }
3014 
3015 /**
3016   * @brief  Indicate whether the timer registers preload mechanism is enabled.
3017   * @rmtoll MCR        PREEN        LL_HRTIM_TIM_IsEnabledPreload\n
3018   *         TIMxCR     PREEN        LL_HRTIM_TIM_IsEnabledPreload
3019   * @param  HRTIMx High Resolution Timer instance
3020   * @param  Timer This parameter can be one of the following values:
3021   *         @arg @ref LL_HRTIM_TIMER_MASTER
3022   *         @arg @ref LL_HRTIM_TIMER_A
3023   *         @arg @ref LL_HRTIM_TIMER_B
3024   *         @arg @ref LL_HRTIM_TIMER_C
3025   *         @arg @ref LL_HRTIM_TIMER_D
3026   *         @arg @ref LL_HRTIM_TIMER_E
3027   * @retval State of PREEN bit in HRTIM_MCR or HRTIM_TIMxCR register (1 or 0).
3028   */
3029 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledPreload(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3030 {
3031   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3032   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
3033 
3034   return ((READ_BIT(*pReg, HRTIM_MCR_PREEN) == (HRTIM_MCR_PREEN)) ? 1UL : 0UL);
3035 }
3036 
3037 /**
3038   * @brief  Set the timer register update trigger.
3039   * @rmtoll MCR           MREPU      LL_HRTIM_TIM_SetUpdateTrig\n
3040   *         TIMxCR        TAU        LL_HRTIM_TIM_SetUpdateTrig\n
3041   *         TIMxCR        TBU        LL_HRTIM_TIM_SetUpdateTrig\n
3042   *         TIMxCR        TCU        LL_HRTIM_TIM_SetUpdateTrig\n
3043   *         TIMxCR        TDU        LL_HRTIM_TIM_SetUpdateTrig\n
3044   *         TIMxCR        TEU        LL_HRTIM_TIM_SetUpdateTrig\n
3045   *         TIMxCR        MSTU       LL_HRTIM_TIM_SetUpdateTrig
3046   * @param  HRTIMx High Resolution Timer instance
3047   * @param  Timer This parameter can be one of the following values:
3048   *         @arg @ref LL_HRTIM_TIMER_MASTER
3049   *         @arg @ref LL_HRTIM_TIMER_A
3050   *         @arg @ref LL_HRTIM_TIMER_B
3051   *         @arg @ref LL_HRTIM_TIMER_C
3052   *         @arg @ref LL_HRTIM_TIMER_D
3053   *         @arg @ref LL_HRTIM_TIMER_E
3054   * @param  UpdateTrig This parameter can be one of the following values:
3055   *
3056   *         For the master timer this parameter can be one of the following values:
3057   *         @arg @ref LL_HRTIM_UPDATETRIG_NONE
3058   *         @arg @ref LL_HRTIM_UPDATETRIG_REPETITION
3059   *
3060   *         For timer A..E this parameter can be:
3061   *         @arg @ref LL_HRTIM_UPDATETRIG_NONE
3062   *         or a combination of the following values:
3063   *         @arg @ref LL_HRTIM_UPDATETRIG_MASTER
3064   *         @arg @ref LL_HRTIM_UPDATETRIG_TIMER_A
3065   *         @arg @ref LL_HRTIM_UPDATETRIG_TIMER_B
3066   *         @arg @ref LL_HRTIM_UPDATETRIG_TIMER_C
3067   *         @arg @ref LL_HRTIM_UPDATETRIG_TIMER_D
3068   *         @arg @ref LL_HRTIM_UPDATETRIG_TIMER_E
3069   *         @arg @ref LL_HRTIM_UPDATETRIG_REPETITION
3070   *         @arg @ref LL_HRTIM_UPDATETRIG_RESET
3071   * @retval None
3072   */
3073 __STATIC_INLINE void LL_HRTIM_TIM_SetUpdateTrig(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t UpdateTrig)
3074 {
3075   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3076   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
3077   MODIFY_REG(*pReg, REG_MASK_TAB_UPDATETRIG[iTimer], UpdateTrig << REG_SHIFT_TAB_UPDATETRIG[iTimer]);
3078 }
3079 
3080 /**
3081   * @brief  Get the timer register update trigger.
3082   * @rmtoll MCR           MREPU      LL_HRTIM_TIM_GetUpdateTrig\n
3083   *         TIMxCR        TBU        LL_HRTIM_TIM_GetUpdateTrig\n
3084   *         TIMxCR        TCU        LL_HRTIM_TIM_GetUpdateTrig\n
3085   *         TIMxCR        TDU        LL_HRTIM_TIM_GetUpdateTrig\n
3086   *         TIMxCR        TEU        LL_HRTIM_TIM_GetUpdateTrig\n
3087   *         TIMxCR        MSTU       LL_HRTIM_TIM_GetUpdateTrig
3088   * @param  HRTIMx High Resolution Timer instance
3089   * @param  Timer This parameter can be one of the following values:
3090   *         @arg @ref LL_HRTIM_TIMER_MASTER
3091   *         @arg @ref LL_HRTIM_TIMER_A
3092   *         @arg @ref LL_HRTIM_TIMER_B
3093   *         @arg @ref LL_HRTIM_TIMER_C
3094   *         @arg @ref LL_HRTIM_TIMER_D
3095   *         @arg @ref LL_HRTIM_TIMER_E
3096   * @retval UpdateTrig Returned value can be one of the following values:
3097   *
3098   *         For the master timer this parameter can be one of the following values:
3099   *         @arg @ref LL_HRTIM_UPDATETRIG_NONE
3100   *         @arg @ref LL_HRTIM_UPDATETRIG_REPETITION
3101   *
3102   *         For timer A..E this parameter can be:
3103   *         @arg @ref LL_HRTIM_UPDATETRIG_NONE
3104   *         or a combination of the following values:
3105   *         @arg @ref LL_HRTIM_UPDATETRIG_MASTER
3106   *         @arg @ref LL_HRTIM_UPDATETRIG_TIMER_A
3107   *         @arg @ref LL_HRTIM_UPDATETRIG_TIMER_B
3108   *         @arg @ref LL_HRTIM_UPDATETRIG_TIMER_C
3109   *         @arg @ref LL_HRTIM_UPDATETRIG_TIMER_D
3110   *         @arg @ref LL_HRTIM_UPDATETRIG_TIMER_E
3111   *         @arg @ref LL_HRTIM_UPDATETRIG_REPETITION
3112   *         @arg @ref LL_HRTIM_UPDATETRIG_RESET
3113   */
3114 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetUpdateTrig(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3115 {
3116   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3117   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
3118   return (READ_BIT(*pReg, REG_MASK_TAB_UPDATETRIG[iTimer]) >>  REG_SHIFT_TAB_UPDATETRIG[iTimer]);
3119 }
3120 
3121 /**
3122   * @brief  Set  the timer registers update condition (how the registers update occurs relatively to the burst DMA  transaction or an external update request received on one of the update enable inputs (UPD_EN[3:1])).
3123   * @rmtoll MCR           BRSTDMA      LL_HRTIM_TIM_SetUpdateGating\n
3124   *         TIMxCR        UPDGAT       LL_HRTIM_TIM_SetUpdateGating
3125   * @param  HRTIMx High Resolution Timer instance
3126   * @param  Timer This parameter can be one of the following values:
3127   *         @arg @ref LL_HRTIM_TIMER_MASTER
3128   *         @arg @ref LL_HRTIM_TIMER_A
3129   *         @arg @ref LL_HRTIM_TIMER_B
3130   *         @arg @ref LL_HRTIM_TIMER_C
3131   *         @arg @ref LL_HRTIM_TIMER_D
3132   *         @arg @ref LL_HRTIM_TIMER_E
3133   * @param  UpdateGating This parameter can be one of the following values:
3134   *
3135   *         For the master timer this parameter can be one of the following values:
3136   *         @arg @ref LL_HRTIM_UPDATEGATING_INDEPENDENT
3137   *         @arg @ref LL_HRTIM_UPDATEGATING_DMABURST
3138   *         @arg @ref LL_HRTIM_UPDATEGATING_DMABURST_UPDATE
3139   *
3140   *         For the timer A..E this parameter can be one of the following values:
3141   *         @arg @ref LL_HRTIM_UPDATEGATING_INDEPENDENT
3142   *         @arg @ref LL_HRTIM_UPDATEGATING_DMABURST
3143   *         @arg @ref LL_HRTIM_UPDATEGATING_DMABURST_UPDATE
3144   *         @arg @ref LL_HRTIM_UPDATEGATING_UPDEN1
3145   *         @arg @ref LL_HRTIM_UPDATEGATING_UPDEN2
3146   *         @arg @ref LL_HRTIM_UPDATEGATING_UPDEN3
3147   *         @arg @ref LL_HRTIM_UPDATEGATING_UPDEN1_UPDATE
3148   *         @arg @ref LL_HRTIM_UPDATEGATING_UPDEN2_UPDATE
3149   *         @arg @ref LL_HRTIM_UPDATEGATING_UPDEN3_UPDATE
3150   * @retval None
3151   */
3152 __STATIC_INLINE void LL_HRTIM_TIM_SetUpdateGating(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t UpdateGating)
3153 {
3154   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3155   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
3156   MODIFY_REG(*pReg, REG_MASK_TAB_UPDATEGATING[iTimer], (UpdateGating << REG_SHIFT_TAB_UPDATEGATING[iTimer]));
3157 }
3158 
3159 /**
3160   * @brief  Get  the timer registers update condition.
3161   * @rmtoll MCR           BRSTDMA      LL_HRTIM_TIM_GetUpdateGating\n
3162   *         TIMxCR        UPDGAT       LL_HRTIM_TIM_GetUpdateGating
3163   * @param  HRTIMx High Resolution Timer instance
3164   * @param  Timer This parameter can be one of the following values:
3165   *         @arg @ref LL_HRTIM_TIMER_MASTER
3166   *         @arg @ref LL_HRTIM_TIMER_A
3167   *         @arg @ref LL_HRTIM_TIMER_B
3168   *         @arg @ref LL_HRTIM_TIMER_C
3169   *         @arg @ref LL_HRTIM_TIMER_D
3170   *         @arg @ref LL_HRTIM_TIMER_E
3171   * @retval UpdateGating Returned value can be one of the following values:
3172   *
3173   *         For the master timer this parameter can be one of the following values:
3174   *         @arg @ref LL_HRTIM_UPDATEGATING_INDEPENDENT
3175   *         @arg @ref LL_HRTIM_UPDATEGATING_DMABURST
3176   *         @arg @ref LL_HRTIM_UPDATEGATING_DMABURST_UPDATE
3177   *
3178   *         For the timer A..E this parameter can be one of the following values:
3179   *         @arg @ref LL_HRTIM_UPDATEGATING_INDEPENDENT
3180   *         @arg @ref LL_HRTIM_UPDATEGATING_DMABURST
3181   *         @arg @ref LL_HRTIM_UPDATEGATING_DMABURST_UPDATE
3182   *         @arg @ref LL_HRTIM_UPDATEGATING_UPDEN1
3183   *         @arg @ref LL_HRTIM_UPDATEGATING_UPDEN2
3184   *         @arg @ref LL_HRTIM_UPDATEGATING_UPDEN3
3185   *         @arg @ref LL_HRTIM_UPDATEGATING_UPDEN1_UPDATE
3186   *         @arg @ref LL_HRTIM_UPDATEGATING_UPDEN2_UPDATE
3187   *         @arg @ref LL_HRTIM_UPDATEGATING_UPDEN3_UPDATE
3188   */
3189 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetUpdateGating(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3190 {
3191   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3192   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCR) + REG_OFFSET_TAB_TIMER[iTimer]));
3193   return (READ_BIT(*pReg, REG_MASK_TAB_UPDATEGATING[iTimer]) >>  REG_SHIFT_TAB_UPDATEGATING[iTimer]);
3194 }
3195 
3196 /**
3197   * @brief  Enable the push-pull mode.
3198   * @rmtoll TIMxCR        PSHPLL       LL_HRTIM_TIM_EnablePushPullMode
3199   * @param  HRTIMx High Resolution Timer instance
3200   * @param  Timer This parameter can be one of the following values:
3201   *         @arg @ref LL_HRTIM_TIMER_A
3202   *         @arg @ref LL_HRTIM_TIMER_B
3203   *         @arg @ref LL_HRTIM_TIMER_C
3204   *         @arg @ref LL_HRTIM_TIMER_D
3205   *         @arg @ref LL_HRTIM_TIMER_E
3206   * @retval None
3207   */
3208 __STATIC_INLINE void LL_HRTIM_TIM_EnablePushPullMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3209 {
3210   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
3211   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR) +
3212                                                               REG_OFFSET_TAB_TIMER[iTimer]));
3213   SET_BIT(*pReg, HRTIM_TIMCR_PSHPLL);
3214 }
3215 
3216 /**
3217   * @brief  Disable the push-pull mode.
3218   * @rmtoll TIMxCR        PSHPLL       LL_HRTIM_TIM_DisablePushPullMode
3219   * @param  HRTIMx High Resolution Timer instance
3220   * @param  Timer This parameter can be one of the following values:
3221   *         @arg @ref LL_HRTIM_TIMER_A
3222   *         @arg @ref LL_HRTIM_TIMER_B
3223   *         @arg @ref LL_HRTIM_TIMER_C
3224   *         @arg @ref LL_HRTIM_TIMER_D
3225   *         @arg @ref LL_HRTIM_TIMER_E
3226   * @retval None
3227   */
3228 __STATIC_INLINE void LL_HRTIM_TIM_DisablePushPullMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3229 {
3230   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
3231   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR) +
3232                                                               REG_OFFSET_TAB_TIMER[iTimer]));
3233   CLEAR_BIT(*pReg, HRTIM_TIMCR_PSHPLL);
3234 }
3235 
3236 /**
3237   * @brief  Indicate whether the push-pull mode is enabled.
3238   * @rmtoll TIMxCR        PSHPLL       LL_HRTIM_TIM_IsEnabledPushPullMode\n
3239   * @param  HRTIMx High Resolution Timer instance
3240   * @param  Timer This parameter can be one of the following values:
3241   *         @arg @ref LL_HRTIM_TIMER_A
3242   *         @arg @ref LL_HRTIM_TIMER_B
3243   *         @arg @ref LL_HRTIM_TIMER_C
3244   *         @arg @ref LL_HRTIM_TIMER_D
3245   *         @arg @ref LL_HRTIM_TIMER_E
3246   * @retval State of PSHPLL bit in HRTIM_TIMxCR register (1 or 0).
3247   */
3248 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledPushPullMode(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3249 {
3250   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
3251   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR) +
3252                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
3253   return ((READ_BIT(*pReg, HRTIM_TIMCR_PSHPLL) == (HRTIM_TIMCR_PSHPLL)) ? 1UL : 0UL);
3254 }
3255 
3256 /**
3257   * @brief  Set the functioning mode of the compare unit (CMP2 or CMP4 can operate in standard mode or in auto delayed mode).
3258   * @rmtoll TIMxCR        DELCMP2       LL_HRTIM_TIM_SetCompareMode\n
3259   *         TIMxCR        DELCMP4       LL_HRTIM_TIM_SetCompareMode
3260   * @note In auto-delayed mode  the compare match occurs independently from the timer counter value.
3261   * @param  HRTIMx High Resolution Timer instance
3262   * @param  Timer This parameter can be one of the following values:
3263   *         @arg @ref LL_HRTIM_TIMER_A
3264   *         @arg @ref LL_HRTIM_TIMER_B
3265   *         @arg @ref LL_HRTIM_TIMER_C
3266   *         @arg @ref LL_HRTIM_TIMER_D
3267   *         @arg @ref LL_HRTIM_TIMER_E
3268   * @param  CompareUnit This parameter can be one of the following values:
3269   *         @arg @ref LL_HRTIM_COMPAREUNIT_2
3270   *         @arg @ref LL_HRTIM_COMPAREUNIT_4
3271   * @param  Mode This parameter can be one of the following values:
3272   *         @arg @ref LL_HRTIM_COMPAREMODE_REGULAR
3273   *         @arg @ref LL_HRTIM_COMPAREMODE_DELAY_NOTIMEOUT
3274   *         @arg @ref LL_HRTIM_COMPAREMODE_DELAY_CMP1
3275   *         @arg @ref LL_HRTIM_COMPAREMODE_DELAY_CMP3
3276   * @retval None
3277   */
3278 __STATIC_INLINE void LL_HRTIM_TIM_SetCompareMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t CompareUnit,
3279                                                  uint32_t Mode)
3280 {
3281   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
3282   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR) +
3283                                                               REG_OFFSET_TAB_TIMER[iTimer]));
3284   uint32_t shift = (((uint32_t)POSITION_VAL(CompareUnit) - (uint32_t)POSITION_VAL(LL_HRTIM_COMPAREUNIT_2)) & 0x1FU);
3285   MODIFY_REG(* pReg, (HRTIM_TIMCR_DELCMP2 << shift), (Mode << shift));
3286 }
3287 
3288 /**
3289   * @brief  Get the functioning mode of the compare unit.
3290   * @rmtoll TIMxCR        DELCMP2       LL_HRTIM_TIM_GetCompareMode\n
3291   *         TIMxCR        DELCMP4       LL_HRTIM_TIM_GetCompareMode
3292   * @param  HRTIMx High Resolution Timer instance
3293   * @param  Timer This parameter can be one of the following values:
3294   *         @arg @ref LL_HRTIM_TIMER_A
3295   *         @arg @ref LL_HRTIM_TIMER_B
3296   *         @arg @ref LL_HRTIM_TIMER_C
3297   *         @arg @ref LL_HRTIM_TIMER_D
3298   *         @arg @ref LL_HRTIM_TIMER_E
3299   * @param  CompareUnit This parameter can be one of the following values:
3300   *         @arg @ref LL_HRTIM_COMPAREUNIT_2
3301   *         @arg @ref LL_HRTIM_COMPAREUNIT_4
3302   * @retval Mode Returned value can be one of the following values:
3303   *         @arg @ref LL_HRTIM_COMPAREMODE_REGULAR
3304   *         @arg @ref LL_HRTIM_COMPAREMODE_DELAY_NOTIMEOUT
3305   *         @arg @ref LL_HRTIM_COMPAREMODE_DELAY_CMP1
3306   *         @arg @ref LL_HRTIM_COMPAREMODE_DELAY_CMP3
3307   */
3308 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCompareMode(const HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t CompareUnit)
3309 {
3310   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
3311   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxCR) +
3312                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
3313   uint32_t shift = (((uint32_t)POSITION_VAL(CompareUnit) - (uint32_t)POSITION_VAL(LL_HRTIM_COMPAREUNIT_2)) & 0x1FU);
3314   return (READ_BIT(*pReg, (HRTIM_TIMCR_DELCMP2 << shift)) >>  shift);
3315 }
3316 
3317 /**
3318   * @brief  Set the timer counter value.
3319   * @rmtoll MCNTR        MCNT       LL_HRTIM_TIM_SetCounter\n
3320   *         CNTxR        CNTx       LL_HRTIM_TIM_SetCounter
3321   * @note  This function can only be called when the timer is stopped.
3322   * @note  For HR clock prescaling ratio below 32 (CKPSC[2:0] < 5), the least
3323   *        significant bits of the counter are not significant. They cannot be
3324   *        written and return 0 when read.
3325   * @note The timer behavior is not guaranteed if the counter value is set above
3326   *       the period.
3327   * @param  HRTIMx High Resolution Timer instance
3328   * @param  Timer This parameter can be one of the following values:
3329   *         @arg @ref LL_HRTIM_TIMER_MASTER
3330   *         @arg @ref LL_HRTIM_TIMER_A
3331   *         @arg @ref LL_HRTIM_TIMER_B
3332   *         @arg @ref LL_HRTIM_TIMER_C
3333   *         @arg @ref LL_HRTIM_TIMER_D
3334   *         @arg @ref LL_HRTIM_TIMER_E
3335   * @param  Counter Value between 0 and 0xFFFF
3336   * @retval None
3337   */
3338 __STATIC_INLINE void LL_HRTIM_TIM_SetCounter(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Counter)
3339 {
3340   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3341   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCNTR) +
3342                                                               REG_OFFSET_TAB_TIMER[iTimer]));
3343   MODIFY_REG(* pReg, HRTIM_MCNTR_MCNTR, Counter);
3344 }
3345 
3346 /**
3347   * @brief  Get actual timer counter value.
3348   * @rmtoll MCNTR        MCNT       LL_HRTIM_TIM_GetCounter\n
3349   *         CNTxR        CNTx       LL_HRTIM_TIM_GetCounter
3350   * @param  HRTIMx High Resolution Timer instance
3351   * @param  Timer This parameter can be one of the following values:
3352   *         @arg @ref LL_HRTIM_TIMER_MASTER
3353   *         @arg @ref LL_HRTIM_TIMER_A
3354   *         @arg @ref LL_HRTIM_TIMER_B
3355   *         @arg @ref LL_HRTIM_TIMER_C
3356   *         @arg @ref LL_HRTIM_TIMER_D
3357   *         @arg @ref LL_HRTIM_TIMER_E
3358   * @retval Counter Value between 0 and 0xFFFF
3359   */
3360 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCounter(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3361 {
3362   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3363   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCNTR) +
3364                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
3365   return (READ_BIT(*pReg, HRTIM_MCNTR_MCNTR));
3366 }
3367 
3368 /**
3369   * @brief  Set the timer period value.
3370   * @rmtoll MPER        MPER       LL_HRTIM_TIM_SetPeriod\n
3371   *         PERxR       PERx       LL_HRTIM_TIM_SetPeriod
3372   * @param  HRTIMx High Resolution Timer instance
3373   * @param  Timer This parameter can be one of the following values:
3374   *         @arg @ref LL_HRTIM_TIMER_MASTER
3375   *         @arg @ref LL_HRTIM_TIMER_A
3376   *         @arg @ref LL_HRTIM_TIMER_B
3377   *         @arg @ref LL_HRTIM_TIMER_C
3378   *         @arg @ref LL_HRTIM_TIMER_D
3379   *         @arg @ref LL_HRTIM_TIMER_E
3380   * @param  Period Value between 0 and 0xFFFF
3381   * @retval None
3382   */
3383 __STATIC_INLINE void LL_HRTIM_TIM_SetPeriod(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Period)
3384 {
3385   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3386   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MPER) +
3387                                                               REG_OFFSET_TAB_TIMER[iTimer]));
3388   MODIFY_REG(* pReg, HRTIM_MPER_MPER, Period);
3389 }
3390 
3391 /**
3392   * @brief  Get actual timer period value.
3393   * @rmtoll MPER        MPER       LL_HRTIM_TIM_GetPeriod\n
3394   *         PERxR       PERx       LL_HRTIM_TIM_GetPeriod
3395   * @param  HRTIMx High Resolution Timer instance
3396   * @param  Timer This parameter can be one of the following values:
3397   *         @arg @ref LL_HRTIM_TIMER_MASTER
3398   *         @arg @ref LL_HRTIM_TIMER_A
3399   *         @arg @ref LL_HRTIM_TIMER_B
3400   *         @arg @ref LL_HRTIM_TIMER_C
3401   *         @arg @ref LL_HRTIM_TIMER_D
3402   *         @arg @ref LL_HRTIM_TIMER_E
3403   * @retval Period Value between 0 and 0xFFFF
3404   */
3405 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetPeriod(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3406 {
3407   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3408   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MPER) +
3409                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
3410   return (READ_BIT(*pReg, HRTIM_MPER_MPER));
3411 }
3412 
3413 /**
3414   * @brief  Set the timer repetition period value.
3415   * @rmtoll MREP        MREP       LL_HRTIM_TIM_SetRepetition\n
3416   *         REPxR       REPx       LL_HRTIM_TIM_SetRepetition
3417   * @param  HRTIMx High Resolution Timer instance
3418   * @param  Timer This parameter can be one of the following values:
3419   *         @arg @ref LL_HRTIM_TIMER_MASTER
3420   *         @arg @ref LL_HRTIM_TIMER_A
3421   *         @arg @ref LL_HRTIM_TIMER_B
3422   *         @arg @ref LL_HRTIM_TIMER_C
3423   *         @arg @ref LL_HRTIM_TIMER_D
3424   *         @arg @ref LL_HRTIM_TIMER_E
3425   * @param  Repetition Value between 0 and 0xFF
3426   * @retval None
3427   */
3428 __STATIC_INLINE void LL_HRTIM_TIM_SetRepetition(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Repetition)
3429 {
3430   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3431   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MREP) +
3432                                                               REG_OFFSET_TAB_TIMER[iTimer]));
3433   MODIFY_REG(* pReg, HRTIM_MREP_MREP, Repetition);
3434 }
3435 
3436 /**
3437   * @brief  Get actual timer repetition period value.
3438   * @rmtoll MREP        MREP       LL_HRTIM_TIM_GetRepetition\n
3439   *         REPxR       REPx       LL_HRTIM_TIM_GetRepetition
3440   * @param  HRTIMx High Resolution Timer instance
3441   * @param  Timer This parameter can be one of the following values:
3442   *         @arg @ref LL_HRTIM_TIMER_MASTER
3443   *         @arg @ref LL_HRTIM_TIMER_A
3444   *         @arg @ref LL_HRTIM_TIMER_B
3445   *         @arg @ref LL_HRTIM_TIMER_C
3446   *         @arg @ref LL_HRTIM_TIMER_D
3447   *         @arg @ref LL_HRTIM_TIMER_E
3448   * @retval Repetition Value between 0 and 0xFF
3449   */
3450 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetRepetition(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3451 {
3452   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3453   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MREP) +
3454                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
3455   return (READ_BIT(*pReg, HRTIM_MREP_MREP));
3456 }
3457 
3458 /**
3459   * @brief  Set the compare value of the compare unit 1.
3460   * @rmtoll MCMP1R      MCMP1       LL_HRTIM_TIM_SetCompare1\n
3461   *         CMP1xR      CMP1x       LL_HRTIM_TIM_SetCompare1
3462   * @param  HRTIMx High Resolution Timer instance
3463   * @param  Timer This parameter can be one of the following values:
3464   *         @arg @ref LL_HRTIM_TIMER_MASTER
3465   *         @arg @ref LL_HRTIM_TIMER_A
3466   *         @arg @ref LL_HRTIM_TIMER_B
3467   *         @arg @ref LL_HRTIM_TIMER_C
3468   *         @arg @ref LL_HRTIM_TIMER_D
3469   *         @arg @ref LL_HRTIM_TIMER_E
3470   * @param  CompareValue Compare value must be above or equal to 3
3471   *         periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0,
3472   *         0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,...
3473   * @retval None
3474   */
3475 __STATIC_INLINE void LL_HRTIM_TIM_SetCompare1(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t CompareValue)
3476 {
3477   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3478   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCMP1R) +
3479                                                               REG_OFFSET_TAB_TIMER[iTimer]));
3480   MODIFY_REG(* pReg, HRTIM_MCMP1R_MCMP1R, CompareValue);
3481 }
3482 
3483 /**
3484   * @brief  Get actual compare value of the compare unit 1.
3485   * @rmtoll MCMP1R      MCMP1       LL_HRTIM_TIM_GetCompare1\n
3486   *         CMP1xR      CMP1x       LL_HRTIM_TIM_GetCompare1
3487   * @param  HRTIMx High Resolution Timer instance
3488   * @param  Timer This parameter can be one of the following values:
3489   *         @arg @ref LL_HRTIM_TIMER_MASTER
3490   *         @arg @ref LL_HRTIM_TIMER_A
3491   *         @arg @ref LL_HRTIM_TIMER_B
3492   *         @arg @ref LL_HRTIM_TIMER_C
3493   *         @arg @ref LL_HRTIM_TIMER_D
3494   *         @arg @ref LL_HRTIM_TIMER_E
3495   * @retval CompareValue Compare value must be above or equal to 3
3496   *         periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0,
3497   *         0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,...
3498   */
3499 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCompare1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3500 {
3501   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3502   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCMP1R) +
3503                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
3504   return (READ_BIT(*pReg, HRTIM_MCMP1R_MCMP1R));
3505 }
3506 
3507 /**
3508   * @brief  Set the compare value of the compare unit 2.
3509   * @rmtoll MCMP2R      MCMP2       LL_HRTIM_TIM_SetCompare2\n
3510   *         CMP2xR      CMP2x       LL_HRTIM_TIM_SetCompare2
3511   * @param  HRTIMx High Resolution Timer instance
3512   * @param  Timer This parameter can be one of the following values:
3513   *         @arg @ref LL_HRTIM_TIMER_MASTER
3514   *         @arg @ref LL_HRTIM_TIMER_A
3515   *         @arg @ref LL_HRTIM_TIMER_B
3516   *         @arg @ref LL_HRTIM_TIMER_C
3517   *         @arg @ref LL_HRTIM_TIMER_D
3518   *         @arg @ref LL_HRTIM_TIMER_E
3519   * @param  CompareValue Compare value must be above or equal to 3
3520   *         periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0,
3521   *         0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,...
3522   * @retval None
3523   */
3524 __STATIC_INLINE void LL_HRTIM_TIM_SetCompare2(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t CompareValue)
3525 {
3526   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3527   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCMP2R) +
3528                                                               REG_OFFSET_TAB_TIMER[iTimer]));
3529   MODIFY_REG(* pReg, HRTIM_MCMP1R_MCMP2R, CompareValue);
3530 }
3531 
3532 /**
3533   * @brief  Get actual compare value of the compare unit 2.
3534   * @rmtoll MCMP2R      MCMP2       LL_HRTIM_TIM_GetCompare2\n
3535   *         CMP2xR      CMP2x       LL_HRTIM_TIM_GetCompare2\n
3536   * @param  HRTIMx High Resolution Timer instance
3537   * @param  Timer This parameter can be one of the following values:
3538   *         @arg @ref LL_HRTIM_TIMER_MASTER
3539   *         @arg @ref LL_HRTIM_TIMER_A
3540   *         @arg @ref LL_HRTIM_TIMER_B
3541   *         @arg @ref LL_HRTIM_TIMER_C
3542   *         @arg @ref LL_HRTIM_TIMER_D
3543   *         @arg @ref LL_HRTIM_TIMER_E
3544   * @retval CompareValue Compare value must be above or equal to 3
3545   *         periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0,
3546   *         0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,...
3547   */
3548 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCompare2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3549 {
3550   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3551   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCMP2R) +
3552                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
3553   return (READ_BIT(*pReg, HRTIM_MCMP1R_MCMP2R));
3554 }
3555 
3556 /**
3557   * @brief  Set the compare value of the compare unit 3.
3558   * @rmtoll MCMP3R      MCMP3       LL_HRTIM_TIM_SetCompare3\n
3559   *         CMP3xR      CMP3x       LL_HRTIM_TIM_SetCompare3
3560   * @param  HRTIMx High Resolution Timer instance
3561   * @param  Timer This parameter can be one of the following values:
3562   *         @arg @ref LL_HRTIM_TIMER_MASTER
3563   *         @arg @ref LL_HRTIM_TIMER_A
3564   *         @arg @ref LL_HRTIM_TIMER_B
3565   *         @arg @ref LL_HRTIM_TIMER_C
3566   *         @arg @ref LL_HRTIM_TIMER_D
3567   *         @arg @ref LL_HRTIM_TIMER_E
3568   * @param  CompareValue Compare value must be above or equal to 3
3569   *         periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0,
3570   *         0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,...
3571   * @retval None
3572   */
3573 __STATIC_INLINE void LL_HRTIM_TIM_SetCompare3(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t CompareValue)
3574 {
3575   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3576   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCMP3R) +
3577                                                               REG_OFFSET_TAB_TIMER[iTimer]));
3578   MODIFY_REG(* pReg, HRTIM_MCMP1R_MCMP3R, CompareValue);
3579 }
3580 
3581 /**
3582   * @brief  Get actual compare value of the compare unit 3.
3583   * @rmtoll MCMP3R      MCMP3       LL_HRTIM_TIM_GetCompare3\n
3584   *         CMP3xR      CMP3x       LL_HRTIM_TIM_GetCompare3
3585   * @param  HRTIMx High Resolution Timer instance
3586   * @param  Timer This parameter can be one of the following values:
3587   *         @arg @ref LL_HRTIM_TIMER_MASTER
3588   *         @arg @ref LL_HRTIM_TIMER_A
3589   *         @arg @ref LL_HRTIM_TIMER_B
3590   *         @arg @ref LL_HRTIM_TIMER_C
3591   *         @arg @ref LL_HRTIM_TIMER_D
3592   *         @arg @ref LL_HRTIM_TIMER_E
3593   * @retval CompareValue Compare value must be above or equal to 3
3594   *         periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0,
3595   *         0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,...
3596   */
3597 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCompare3(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3598 {
3599   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3600   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCMP3R) +
3601                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
3602   return (READ_BIT(*pReg, HRTIM_MCMP1R_MCMP3R));
3603 }
3604 
3605 /**
3606   * @brief  Set the compare value of the compare unit 4.
3607   * @rmtoll MCMP4R      MCMP4       LL_HRTIM_TIM_SetCompare4\n
3608   *         CMP4xR      CMP4x       LL_HRTIM_TIM_SetCompare4
3609   * @param  HRTIMx High Resolution Timer instance
3610   * @param  Timer This parameter can be one of the following values:
3611   *         @arg @ref LL_HRTIM_TIMER_MASTER
3612   *         @arg @ref LL_HRTIM_TIMER_A
3613   *         @arg @ref LL_HRTIM_TIMER_B
3614   *         @arg @ref LL_HRTIM_TIMER_C
3615   *         @arg @ref LL_HRTIM_TIMER_D
3616   *         @arg @ref LL_HRTIM_TIMER_E
3617   * @param  CompareValue Compare value must be above or equal to 3
3618   *         periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0,
3619   *         0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,...
3620   * @retval None
3621   */
3622 __STATIC_INLINE void LL_HRTIM_TIM_SetCompare4(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t CompareValue)
3623 {
3624   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3625   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCMP4R) +
3626                                                               REG_OFFSET_TAB_TIMER[iTimer]));
3627   MODIFY_REG(* pReg, HRTIM_MCMP1R_MCMP4R, CompareValue);
3628 }
3629 
3630 /**
3631   * @brief  Get actual compare value of the compare unit 4.
3632   * @rmtoll MCMP4R      MCMP4       LL_HRTIM_TIM_GetCompare4\n
3633   *         CMP4xR      CMP4x       LL_HRTIM_TIM_GetCompare4
3634   * @param  HRTIMx High Resolution Timer instance
3635   * @param  Timer This parameter can be one of the following values:
3636   *         @arg @ref LL_HRTIM_TIMER_MASTER
3637   *         @arg @ref LL_HRTIM_TIMER_A
3638   *         @arg @ref LL_HRTIM_TIMER_B
3639   *         @arg @ref LL_HRTIM_TIMER_C
3640   *         @arg @ref LL_HRTIM_TIMER_D
3641   *         @arg @ref LL_HRTIM_TIMER_E
3642   * @retval CompareValue Compare value must be above or equal to 3
3643   *         periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0,
3644   *         0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,...
3645   */
3646 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCompare4(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3647 {
3648   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
3649   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MCMP4R) +
3650                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
3651   return (READ_BIT(*pReg, HRTIM_MCMP1R_MCMP4R));
3652 }
3653 
3654 /**
3655   * @brief  Set the reset trigger of a timer counter.
3656   * @rmtoll RSTxR      UPDT           LL_HRTIM_TIM_SetResetTrig\n
3657   *         RSTxR      CMP2           LL_HRTIM_TIM_SetResetTrig\n
3658   *         RSTxR      CMP4           LL_HRTIM_TIM_SetResetTrig\n
3659   *         RSTxR      MSTPER         LL_HRTIM_TIM_SetResetTrig\n
3660   *         RSTxR      MSTCMP1        LL_HRTIM_TIM_SetResetTrig\n
3661   *         RSTxR      MSTCMP2        LL_HRTIM_TIM_SetResetTrig\n
3662   *         RSTxR      MSTCMP3        LL_HRTIM_TIM_SetResetTrig\n
3663   *         RSTxR      MSTCMP4        LL_HRTIM_TIM_SetResetTrig\n
3664   *         RSTxR      EXTEVNT1       LL_HRTIM_TIM_SetResetTrig\n
3665   *         RSTxR      EXTEVNT2       LL_HRTIM_TIM_SetResetTrig\n
3666   *         RSTxR      EXTEVNT3       LL_HRTIM_TIM_SetResetTrig\n
3667   *         RSTxR      EXTEVNT4       LL_HRTIM_TIM_SetResetTrig\n
3668   *         RSTxR      EXTEVNT5       LL_HRTIM_TIM_SetResetTrig\n
3669   *         RSTxR      EXTEVNT6       LL_HRTIM_TIM_SetResetTrig\n
3670   *         RSTxR      EXTEVNT7       LL_HRTIM_TIM_SetResetTrig\n
3671   *         RSTxR      EXTEVNT8       LL_HRTIM_TIM_SetResetTrig\n
3672   *         RSTxR      EXTEVNT9       LL_HRTIM_TIM_SetResetTrig\n
3673   *         RSTxR      EXTEVNT10      LL_HRTIM_TIM_SetResetTrig\n
3674   *         RSTxR      TIMBCMP1       LL_HRTIM_TIM_SetResetTrig\n
3675   *         RSTxR      TIMBCMP2       LL_HRTIM_TIM_SetResetTrig\n
3676   *         RSTxR      TIMBCMP4       LL_HRTIM_TIM_SetResetTrig\n
3677   *         RSTxR      TIMCCMP1       LL_HRTIM_TIM_SetResetTrig\n
3678   *         RSTxR      TIMCCMP2       LL_HRTIM_TIM_SetResetTrig\n
3679   *         RSTxR      TIMCCMP4       LL_HRTIM_TIM_SetResetTrig\n
3680   *         RSTxR      TIMDCMP1       LL_HRTIM_TIM_SetResetTrig\n
3681   *         RSTxR      TIMDCMP2       LL_HRTIM_TIM_SetResetTrig\n
3682   *         RSTxR      TIMDCMP4       LL_HRTIM_TIM_SetResetTrig\n
3683   *         RSTxR      TIMECMP1       LL_HRTIM_TIM_SetResetTrig\n
3684   *         RSTxR      TIMECMP2       LL_HRTIM_TIM_SetResetTrig\n
3685   *         RSTxR      TIMECMP4       LL_HRTIM_TIM_SetResetTrig
3686   * @note The reset of the timer counter can be triggered by up to 30 events
3687   *       that can be selected among the following sources:
3688   *         @arg The timing unit: Compare 2, Compare 4 and Update (3 events).
3689   *         @arg The master timer: Reset and Compare 1..4 (5 events).
3690   *         @arg The external events EXTEVNT1..10 (10 events).
3691   *         @arg All other timing units (e.g. Timer B..E for timer A): Compare 1, 2 and 4 (12 events).
3692   * @param  HRTIMx High Resolution Timer instance
3693   * @param  Timer This parameter can be one of the following values:
3694   *         @arg @ref LL_HRTIM_TIMER_A
3695   *         @arg @ref LL_HRTIM_TIMER_B
3696   *         @arg @ref LL_HRTIM_TIMER_C
3697   *         @arg @ref LL_HRTIM_TIMER_D
3698   *         @arg @ref LL_HRTIM_TIMER_E
3699   * @param  ResetTrig This parameter can be a combination of the following values:
3700   *         @arg @ref LL_HRTIM_RESETTRIG_NONE
3701   *         @arg @ref LL_HRTIM_RESETTRIG_UPDATE
3702   *         @arg @ref LL_HRTIM_RESETTRIG_CMP2
3703   *         @arg @ref LL_HRTIM_RESETTRIG_CMP4
3704   *         @arg @ref LL_HRTIM_RESETTRIG_MASTER_PER
3705   *         @arg @ref LL_HRTIM_RESETTRIG_MASTER_CMP1
3706   *         @arg @ref LL_HRTIM_RESETTRIG_MASTER_CMP2
3707   *         @arg @ref LL_HRTIM_RESETTRIG_MASTER_CMP3
3708   *         @arg @ref LL_HRTIM_RESETTRIG_MASTER_CMP4
3709   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_1
3710   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_2
3711   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_3
3712   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_4
3713   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_5
3714   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_6
3715   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_7
3716   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_8
3717   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_9
3718   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_10
3719   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER1_CMP1
3720   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER1_CMP2
3721   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER1_CMP4
3722   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER2_CMP1
3723   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER2_CMP2
3724   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER2_CMP4
3725   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER3_CMP1
3726   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER3_CMP2
3727   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER3_CMP4
3728   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER4_CMP1
3729   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER4_CMP2
3730   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER4_CMP4
3731   * @retval None
3732   */
3733 __STATIC_INLINE void LL_HRTIM_TIM_SetResetTrig(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t ResetTrig)
3734 {
3735   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
3736   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].RSTxR) +
3737                                                               REG_OFFSET_TAB_TIMER[iTimer]));
3738   WRITE_REG(*pReg, ResetTrig);
3739 }
3740 
3741 /**
3742   * @brief  Get actual reset trigger of a timer counter.
3743   * @rmtoll RSTxR      UPDT           LL_HRTIM_TIM_GetResetTrig\n
3744   *         RSTxR      CMP2           LL_HRTIM_TIM_GetResetTrig\n
3745   *         RSTxR      CMP4           LL_HRTIM_TIM_GetResetTrig\n
3746   *         RSTxR      MSTPER         LL_HRTIM_TIM_GetResetTrig\n
3747   *         RSTxR      MSTCMP1        LL_HRTIM_TIM_GetResetTrig\n
3748   *         RSTxR      MSTCMP2        LL_HRTIM_TIM_GetResetTrig\n
3749   *         RSTxR      MSTCMP3        LL_HRTIM_TIM_GetResetTrig\n
3750   *         RSTxR      MSTCMP4        LL_HRTIM_TIM_GetResetTrig\n
3751   *         RSTxR      EXTEVNT1       LL_HRTIM_TIM_GetResetTrig\n
3752   *         RSTxR      EXTEVNT2       LL_HRTIM_TIM_GetResetTrig\n
3753   *         RSTxR      EXTEVNT3       LL_HRTIM_TIM_GetResetTrig\n
3754   *         RSTxR      EXTEVNT4       LL_HRTIM_TIM_GetResetTrig\n
3755   *         RSTxR      EXTEVNT5       LL_HRTIM_TIM_GetResetTrig\n
3756   *         RSTxR      EXTEVNT6       LL_HRTIM_TIM_GetResetTrig\n
3757   *         RSTxR      EXTEVNT7       LL_HRTIM_TIM_GetResetTrig\n
3758   *         RSTxR      EXTEVNT8       LL_HRTIM_TIM_GetResetTrig\n
3759   *         RSTxR      EXTEVNT9       LL_HRTIM_TIM_GetResetTrig\n
3760   *         RSTxR      EXTEVNT10      LL_HRTIM_TIM_GetResetTrig\n
3761   *         RSTxR      TIMBCMP1       LL_HRTIM_TIM_GetResetTrig\n
3762   *         RSTxR      TIMBCMP2       LL_HRTIM_TIM_GetResetTrig\n
3763   *         RSTxR      TIMBCMP4       LL_HRTIM_TIM_GetResetTrig\n
3764   *         RSTxR      TIMCCMP1       LL_HRTIM_TIM_GetResetTrig\n
3765   *         RSTxR      TIMCCMP2       LL_HRTIM_TIM_GetResetTrig\n
3766   *         RSTxR      TIMCCMP4       LL_HRTIM_TIM_GetResetTrig\n
3767   *         RSTxR      TIMDCMP1       LL_HRTIM_TIM_GetResetTrig\n
3768   *         RSTxR      TIMDCMP2       LL_HRTIM_TIM_GetResetTrig\n
3769   *         RSTxR      TIMDCMP4       LL_HRTIM_TIM_GetResetTrig\n
3770   *         RSTxR      TIMECMP1       LL_HRTIM_TIM_GetResetTrig\n
3771   *         RSTxR      TIMECMP2       LL_HRTIM_TIM_GetResetTrig\n
3772   *         RSTxR      TIMECMP4       LL_HRTIM_TIM_GetResetTrig
3773   * @param  HRTIMx High Resolution Timer instance
3774   * @param  Timer This parameter can be one of the following values:
3775   *         @arg @ref LL_HRTIM_TIMER_A
3776   *         @arg @ref LL_HRTIM_TIMER_B
3777   *         @arg @ref LL_HRTIM_TIMER_C
3778   *         @arg @ref LL_HRTIM_TIMER_D
3779   *         @arg @ref LL_HRTIM_TIMER_E
3780   * @retval ResetTrig Returned value can be one of the following values:
3781   *         @arg @ref LL_HRTIM_RESETTRIG_NONE
3782   *         @arg @ref LL_HRTIM_RESETTRIG_UPDATE
3783   *         @arg @ref LL_HRTIM_RESETTRIG_CMP2
3784   *         @arg @ref LL_HRTIM_RESETTRIG_CMP4
3785   *         @arg @ref LL_HRTIM_RESETTRIG_MASTER_PER
3786   *         @arg @ref LL_HRTIM_RESETTRIG_MASTER_CMP1
3787   *         @arg @ref LL_HRTIM_RESETTRIG_MASTER_CMP2
3788   *         @arg @ref LL_HRTIM_RESETTRIG_MASTER_CMP3
3789   *         @arg @ref LL_HRTIM_RESETTRIG_MASTER_CMP4
3790   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_1
3791   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_2
3792   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_3
3793   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_4
3794   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_5
3795   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_6
3796   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_7
3797   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_8
3798   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_9
3799   *         @arg @ref LL_HRTIM_RESETTRIG_EEV_10
3800   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER1_CMP1
3801   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER1_CMP2
3802   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER1_CMP4
3803   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER2_CMP1
3804   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER2_CMP2
3805   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER2_CMP4
3806   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER3_CMP1
3807   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER3_CMP2
3808   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER3_CMP4
3809   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER4_CMP1
3810   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER4_CMP2
3811   *         @arg @ref LL_HRTIM_RESETTRIG_OTHER4_CMP4
3812   */
3813 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetResetTrig(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3814 {
3815   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
3816   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].RSTxR) +
3817                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
3818   return (READ_REG(*pReg));
3819 }
3820 
3821 /**
3822   * @brief  Get captured value for capture unit 1.
3823   * @rmtoll CPT1xR      CPT1x           LL_HRTIM_TIM_GetCapture1
3824   * @param  HRTIMx High Resolution Timer instance
3825   * @param  Timer This parameter can be one of the following values:
3826   *         @arg @ref LL_HRTIM_TIMER_A
3827   *         @arg @ref LL_HRTIM_TIMER_B
3828   *         @arg @ref LL_HRTIM_TIMER_C
3829   *         @arg @ref LL_HRTIM_TIMER_D
3830   *         @arg @ref LL_HRTIM_TIMER_E
3831   * @retval Captured value
3832   */
3833 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCapture1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3834 {
3835   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
3836   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CPT1xR) +
3837                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
3838   return (READ_REG(*pReg));
3839 }
3840 
3841 /**
3842   * @brief  Get captured value for capture unit 2.
3843   * @rmtoll CPT2xR      CPT2x           LL_HRTIM_TIM_GetCapture2
3844   * @param  HRTIMx High Resolution Timer instance
3845   * @param  Timer This parameter can be one of the following values:
3846   *         @arg @ref LL_HRTIM_TIMER_A
3847   *         @arg @ref LL_HRTIM_TIMER_B
3848   *         @arg @ref LL_HRTIM_TIMER_C
3849   *         @arg @ref LL_HRTIM_TIMER_D
3850   *         @arg @ref LL_HRTIM_TIMER_E
3851   * @retval Captured value
3852   */
3853 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCapture2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
3854 {
3855   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
3856   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CPT2xR) +
3857                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
3858   return (READ_REG(*pReg));
3859 }
3860 
3861 /**
3862   * @brief  Set the trigger of a capture unit for a given timer.
3863   * @rmtoll CPT1xCR      SWCPT            LL_HRTIM_TIM_SetCaptureTrig\n
3864   *         CPT1xCR      UPDCPT           LL_HRTIM_TIM_SetCaptureTrig\n
3865   *         CPT1xCR      EXEV1CPT         LL_HRTIM_TIM_SetCaptureTrig\n
3866   *         CPT1xCR      EXEV2CPT         LL_HRTIM_TIM_SetCaptureTrig\n
3867   *         CPT1xCR      EXEV3CPT         LL_HRTIM_TIM_SetCaptureTrig\n
3868   *         CPT1xCR      EXEV4CPT         LL_HRTIM_TIM_SetCaptureTrig\n
3869   *         CPT1xCR      EXEV5CPT         LL_HRTIM_TIM_SetCaptureTrig\n
3870   *         CPT1xCR      EXEV6CPT         LL_HRTIM_TIM_SetCaptureTrig\n
3871   *         CPT1xCR      EXEV7CPT         LL_HRTIM_TIM_SetCaptureTrig\n
3872   *         CPT1xCR      EXEV8CPT         LL_HRTIM_TIM_SetCaptureTrig\n
3873   *         CPT1xCR      EXEV9CPT         LL_HRTIM_TIM_SetCaptureTrig\n
3874   *         CPT1xCR      EXEV10CPT        LL_HRTIM_TIM_SetCaptureTrig\n
3875   *         CPT1xCR      TA1SET           LL_HRTIM_TIM_SetCaptureTrig\n
3876   *         CPT1xCR      TA1RST           LL_HRTIM_TIM_SetCaptureTrig\n
3877   *         CPT1xCR      TACMP1           LL_HRTIM_TIM_SetCaptureTrig\n
3878   *         CPT1xCR      TACMP2           LL_HRTIM_TIM_SetCaptureTrig\n
3879   *         CPT1xCR      TB1SET           LL_HRTIM_TIM_SetCaptureTrig\n
3880   *         CPT1xCR      TB1RST           LL_HRTIM_TIM_SetCaptureTrig\n
3881   *         CPT1xCR      TBCMP1           LL_HRTIM_TIM_SetCaptureTrig\n
3882   *         CPT1xCR      TBCMP2           LL_HRTIM_TIM_SetCaptureTrig\n
3883   *         CPT1xCR      TC1SET           LL_HRTIM_TIM_SetCaptureTrig\n
3884   *         CPT1xCR      TC1RST           LL_HRTIM_TIM_SetCaptureTrig\n
3885   *         CPT1xCR      TCCMP1           LL_HRTIM_TIM_SetCaptureTrig\n
3886   *         CPT1xCR      TCCMP2           LL_HRTIM_TIM_SetCaptureTrig\n
3887   *         CPT1xCR      TD1SET           LL_HRTIM_TIM_SetCaptureTrig\n
3888   *         CPT1xCR      TD1RST           LL_HRTIM_TIM_SetCaptureTrig\n
3889   *         CPT1xCR      TDCMP1           LL_HRTIM_TIM_SetCaptureTrig\n
3890   *         CPT1xCR      TDCMP2           LL_HRTIM_TIM_SetCaptureTrig\n
3891   *         CPT1xCR      TE1SET           LL_HRTIM_TIM_SetCaptureTrig\n
3892   *         CPT1xCR      TE1RST           LL_HRTIM_TIM_SetCaptureTrig\n
3893   *         CPT1xCR      TECMP1           LL_HRTIM_TIM_SetCaptureTrig\n
3894   *         CPT1xCR      TECMP2           LL_HRTIM_TIM_SetCaptureTrig
3895   * @param  HRTIMx High Resolution Timer instance
3896   * @param  Timer This parameter can be one of the following values:
3897   *         @arg @ref LL_HRTIM_TIMER_A
3898   *         @arg @ref LL_HRTIM_TIMER_B
3899   *         @arg @ref LL_HRTIM_TIMER_C
3900   *         @arg @ref LL_HRTIM_TIMER_D
3901   *         @arg @ref LL_HRTIM_TIMER_E
3902   * @param  CaptureUnit This parameter can be one of the following values:
3903   *         @arg @ref LL_HRTIM_CAPTUREUNIT_1
3904   *         @arg @ref LL_HRTIM_CAPTUREUNIT_2
3905   * @param  CaptureTrig This parameter can be a combination of the following values:
3906   *         @arg @ref LL_HRTIM_CAPTURETRIG_NONE
3907   *         @arg @ref LL_HRTIM_CAPTURETRIG_UPDATE
3908   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_1
3909   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_2
3910   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_3
3911   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_4
3912   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_5
3913   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_6
3914   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_7
3915   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_8
3916   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_9
3917   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_10
3918   *         @arg @ref LL_HRTIM_CAPTURETRIG_TA1_SET
3919   *         @arg @ref LL_HRTIM_CAPTURETRIG_TA1_RESET
3920   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMA_CMP1
3921   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMA_CMP2
3922   *         @arg @ref LL_HRTIM_CAPTURETRIG_TB1_SET
3923   *         @arg @ref LL_HRTIM_CAPTURETRIG_TB1_RESET
3924   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMB_CMP1
3925   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMB_CMP2
3926   *         @arg @ref LL_HRTIM_CAPTURETRIG_TC1_SET
3927   *         @arg @ref LL_HRTIM_CAPTURETRIG_TC1_RESET
3928   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMC_CMP1
3929   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMC_CMP2
3930   *         @arg @ref LL_HRTIM_CAPTURETRIG_TD1_SET
3931   *         @arg @ref LL_HRTIM_CAPTURETRIG_TD1_RESET
3932   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMD_CMP1
3933   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMD_CMP2
3934   *         @arg @ref LL_HRTIM_CAPTURETRIG_TE1_SET
3935   *         @arg @ref LL_HRTIM_CAPTURETRIG_TE1_RESET
3936   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIME_CMP1
3937   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIME_CMP2
3938   * @retval None
3939   */
3940 __STATIC_INLINE void LL_HRTIM_TIM_SetCaptureTrig(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t CaptureUnit,
3941                                                  uint32_t CaptureTrig)
3942 {
3943   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
3944   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0U].CPT1xCR) +
3945                                                               REG_OFFSET_TAB_TIMER[iTimer] + (CaptureUnit * 4U)));
3946   WRITE_REG(*pReg, CaptureTrig);
3947 }
3948 
3949 /**
3950   * @brief  Get actual trigger of a capture unit for a given timer.
3951   * @rmtoll CPT1xCR      SWCPT            LL_HRTIM_TIM_GetCaptureTrig\n
3952   *         CPT1xCR      UPDCPT           LL_HRTIM_TIM_GetCaptureTrig\n
3953   *         CPT1xCR      EXEV1CPT         LL_HRTIM_TIM_GetCaptureTrig\n
3954   *         CPT1xCR      EXEV2CPT         LL_HRTIM_TIM_GetCaptureTrig\n
3955   *         CPT1xCR      EXEV3CPT         LL_HRTIM_TIM_GetCaptureTrig\n
3956   *         CPT1xCR      EXEV4CPT         LL_HRTIM_TIM_GetCaptureTrig\n
3957   *         CPT1xCR      EXEV5CPT         LL_HRTIM_TIM_GetCaptureTrig\n
3958   *         CPT1xCR      EXEV6CPT         LL_HRTIM_TIM_GetCaptureTrig\n
3959   *         CPT1xCR      EXEV7CPT         LL_HRTIM_TIM_GetCaptureTrig\n
3960   *         CPT1xCR      EXEV8CPT         LL_HRTIM_TIM_GetCaptureTrig\n
3961   *         CPT1xCR      EXEV9CPT         LL_HRTIM_TIM_GetCaptureTrig\n
3962   *         CPT1xCR      EXEV10CPT        LL_HRTIM_TIM_GetCaptureTrig\n
3963   *         CPT1xCR      TA1SET           LL_HRTIM_TIM_GetCaptureTrig\n
3964   *         CPT1xCR      TA1RST           LL_HRTIM_TIM_GetCaptureTrig\n
3965   *         CPT1xCR      TACMP1           LL_HRTIM_TIM_GetCaptureTrig\n
3966   *         CPT1xCR      TACMP2           LL_HRTIM_TIM_GetCaptureTrig\n
3967   *         CPT1xCR      TB1SET           LL_HRTIM_TIM_GetCaptureTrig\n
3968   *         CPT1xCR      TB1RST           LL_HRTIM_TIM_GetCaptureTrig\n
3969   *         CPT1xCR      TBCMP1           LL_HRTIM_TIM_GetCaptureTrig\n
3970   *         CPT1xCR      TBCMP2           LL_HRTIM_TIM_GetCaptureTrig\n
3971   *         CPT1xCR      TC1SET           LL_HRTIM_TIM_GetCaptureTrig\n
3972   *         CPT1xCR      TC1RST           LL_HRTIM_TIM_GetCaptureTrig\n
3973   *         CPT1xCR      TCCMP1           LL_HRTIM_TIM_GetCaptureTrig\n
3974   *         CPT1xCR      TCCMP2           LL_HRTIM_TIM_GetCaptureTrig\n
3975   *         CPT1xCR      TD1SET           LL_HRTIM_TIM_GetCaptureTrig\n
3976   *         CPT1xCR      TD1RST           LL_HRTIM_TIM_GetCaptureTrig\n
3977   *         CPT1xCR      TDCMP1           LL_HRTIM_TIM_GetCaptureTrig\n
3978   *         CPT1xCR      TDCMP2           LL_HRTIM_TIM_GetCaptureTrig\n
3979   *         CPT1xCR      TE1SET           LL_HRTIM_TIM_GetCaptureTrig\n
3980   *         CPT1xCR      TE1RST           LL_HRTIM_TIM_GetCaptureTrig\n
3981   *         CPT1xCR      TECMP1           LL_HRTIM_TIM_GetCaptureTrig\n
3982   *         CPT1xCR      TECMP2           LL_HRTIM_TIM_GetCaptureTrig
3983   * @param  HRTIMx High Resolution Timer instance
3984   * @param  Timer This parameter can be one of the following values:
3985   *         @arg @ref LL_HRTIM_TIMER_A
3986   *         @arg @ref LL_HRTIM_TIMER_B
3987   *         @arg @ref LL_HRTIM_TIMER_C
3988   *         @arg @ref LL_HRTIM_TIMER_D
3989   *         @arg @ref LL_HRTIM_TIMER_E
3990   * @param  CaptureUnit This parameter can be one of the following values:
3991   *         @arg @ref LL_HRTIM_CAPTUREUNIT_1
3992   *         @arg @ref LL_HRTIM_CAPTUREUNIT_2
3993   * @retval CaptureTrig This parameter can be a combination of the following values:
3994   *         @arg @ref LL_HRTIM_CAPTURETRIG_NONE
3995   *         @arg @ref LL_HRTIM_CAPTURETRIG_UPDATE
3996   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_1
3997   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_2
3998   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_3
3999   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_4
4000   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_5
4001   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_6
4002   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_7
4003   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_8
4004   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_9
4005   *         @arg @ref LL_HRTIM_CAPTURETRIG_EEV_10
4006   *         @arg @ref LL_HRTIM_CAPTURETRIG_TA1_SET
4007   *         @arg @ref LL_HRTIM_CAPTURETRIG_TA1_RESET
4008   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMA_CMP1
4009   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMA_CMP2
4010   *         @arg @ref LL_HRTIM_CAPTURETRIG_TB1_SET
4011   *         @arg @ref LL_HRTIM_CAPTURETRIG_TB1_RESET
4012   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMB_CMP1
4013   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMB_CMP2
4014   *         @arg @ref LL_HRTIM_CAPTURETRIG_TC1_SET
4015   *         @arg @ref LL_HRTIM_CAPTURETRIG_TC1_RESET
4016   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMC_CMP1
4017   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMC_CMP2
4018   *         @arg @ref LL_HRTIM_CAPTURETRIG_TD1_SET
4019   *         @arg @ref LL_HRTIM_CAPTURETRIG_TD1_RESET
4020   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMD_CMP1
4021   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIMD_CMP2
4022   *         @arg @ref LL_HRTIM_CAPTURETRIG_TE1_SET
4023   *         @arg @ref LL_HRTIM_CAPTURETRIG_TE1_RESET
4024   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIME_CMP1
4025   *         @arg @ref LL_HRTIM_CAPTURETRIG_TIME_CMP2
4026   */
4027 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCaptureTrig(const HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t CaptureUnit)
4028 {
4029   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4030   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0U].CPT1xCR) +
4031                                                                     REG_OFFSET_TAB_TIMER[iTimer] + (CaptureUnit * 4U)));
4032   return (READ_REG(*pReg));
4033 }
4034 
4035 /**
4036   * @brief  Enable deadtime insertion for a given timer.
4037   * @rmtoll OUTxR      DTEN           LL_HRTIM_TIM_EnableDeadTime
4038   * @param  HRTIMx High Resolution Timer instance
4039   * @param  Timer This parameter can be one of the following values:
4040   *         @arg @ref LL_HRTIM_TIMER_A
4041   *         @arg @ref LL_HRTIM_TIMER_B
4042   *         @arg @ref LL_HRTIM_TIMER_C
4043   *         @arg @ref LL_HRTIM_TIMER_D
4044   *         @arg @ref LL_HRTIM_TIMER_E
4045   * @retval None
4046   */
4047 __STATIC_INLINE void LL_HRTIM_TIM_EnableDeadTime(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4048 {
4049   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4050   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
4051                                                               REG_OFFSET_TAB_TIMER[iTimer]));
4052   SET_BIT(*pReg, HRTIM_OUTR_DTEN);
4053 }
4054 
4055 /**
4056   * @brief  Disable deadtime insertion for a given timer.
4057   * @rmtoll OUTxR      DTEN           LL_HRTIM_TIM_DisableDeadTime
4058   * @param  HRTIMx High Resolution Timer instance
4059   * @param  Timer This parameter can be one of the following values:
4060   *         @arg @ref LL_HRTIM_TIMER_A
4061   *         @arg @ref LL_HRTIM_TIMER_B
4062   *         @arg @ref LL_HRTIM_TIMER_C
4063   *         @arg @ref LL_HRTIM_TIMER_D
4064   *         @arg @ref LL_HRTIM_TIMER_E
4065   * @retval None
4066   */
4067 __STATIC_INLINE void LL_HRTIM_TIM_DisableDeadTime(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4068 {
4069   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4070   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
4071                                                               REG_OFFSET_TAB_TIMER[iTimer]));
4072   CLEAR_BIT(*pReg, HRTIM_OUTR_DTEN);
4073 }
4074 
4075 /**
4076   * @brief  Indicate whether deadtime insertion is enabled for a given timer.
4077   * @rmtoll OUTxR      DTEN           LL_HRTIM_TIM_IsEnabledDeadTime
4078   * @param  HRTIMx High Resolution Timer instance
4079   * @param  Timer This parameter can be one of the following values:
4080   *         @arg @ref LL_HRTIM_TIMER_A
4081   *         @arg @ref LL_HRTIM_TIMER_B
4082   *         @arg @ref LL_HRTIM_TIMER_C
4083   *         @arg @ref LL_HRTIM_TIMER_D
4084   *         @arg @ref LL_HRTIM_TIMER_E
4085   * @retval State of DTEN bit in HRTIM_OUTxR register (1 or 0).
4086   */
4087 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledDeadTime(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4088 {
4089   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4090   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
4091                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
4092 
4093   return ((READ_BIT(*pReg, HRTIM_OUTR_DTEN) == (HRTIM_OUTR_DTEN)) ? 1UL : 0UL);
4094 }
4095 
4096 /**
4097   * @brief  Set the delayed protection (DLYPRT) mode.
4098   * @rmtoll OUTxR      DLYPRTEN       LL_HRTIM_TIM_SetDLYPRTMode\n
4099   *         OUTxR      DLYPRT         LL_HRTIM_TIM_SetDLYPRTMode
4100   * @note   This function must be called prior enabling the delayed protection
4101   * @note   Balanced Idle mode is only available in push-pull mode
4102   * @param  HRTIMx High Resolution Timer instance
4103   * @param  Timer This parameter can be one of the following values:
4104   *         @arg @ref LL_HRTIM_TIMER_A
4105   *         @arg @ref LL_HRTIM_TIMER_B
4106   *         @arg @ref LL_HRTIM_TIMER_C
4107   *         @arg @ref LL_HRTIM_TIMER_D
4108   *         @arg @ref LL_HRTIM_TIMER_E
4109   * @param  DLYPRTMode Delayed protection (DLYPRT) mode
4110   *
4111   *         For timers A, B and C this parameter can be one of the following values:
4112   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT1_EEV6
4113   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT2_EEV6
4114   *         @arg @ref LL_HRTIM_DLYPRT_DELAYBOTH_EEV6
4115   *         @arg @ref LL_HRTIM_DLYPRT_BALANCED_EEV6
4116   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT1_EEV7
4117   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT2_EEV7
4118   *         @arg @ref LL_HRTIM_DLYPRT_DELAYBOTH_EEV7
4119   *         @arg @ref LL_HRTIM_DLYPRT_BALANCED_EEV7
4120   *
4121   *         For timers D and E this parameter can be one of the following values:
4122   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT1_EEV8
4123   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT2_EEV8
4124   *         @arg @ref LL_HRTIM_DLYPRT_DELAYBOTH_EEV8
4125   *         @arg @ref LL_HRTIM_DLYPRT_BALANCED_EEV8
4126   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT1_EEV9
4127   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT2_EEV9
4128   *         @arg @ref LL_HRTIM_DLYPRT_DELAYBOTH_EEV9
4129   *         @arg @ref LL_HRTIM_DLYPRT_BALANCED_EEV9
4130   * @retval None
4131   */
4132 __STATIC_INLINE void LL_HRTIM_TIM_SetDLYPRTMode(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t DLYPRTMode)
4133 {
4134   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4135   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
4136                                                               REG_OFFSET_TAB_TIMER[iTimer]));
4137   MODIFY_REG(*pReg, HRTIM_OUTR_DLYPRT, DLYPRTMode);
4138 }
4139 
4140 /**
4141   * @brief  Get the delayed protection (DLYPRT) mode.
4142   * @rmtoll OUTxR      DLYPRTEN       LL_HRTIM_TIM_GetDLYPRTMode\n
4143   *         OUTxR      DLYPRT         LL_HRTIM_TIM_GetDLYPRTMode
4144   * @param  HRTIMx High Resolution Timer instance
4145   * @param  Timer This parameter can be one of the following values:
4146   *         @arg @ref LL_HRTIM_TIMER_A
4147   *         @arg @ref LL_HRTIM_TIMER_B
4148   *         @arg @ref LL_HRTIM_TIMER_C
4149   *         @arg @ref LL_HRTIM_TIMER_D
4150   *         @arg @ref LL_HRTIM_TIMER_E
4151   * @retval DLYPRTMode Delayed protection (DLYPRT) mode
4152   *
4153   *         For timers A, B and C this parameter can be one of the following values:
4154   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT1_EEV6
4155   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT2_EEV6
4156   *         @arg @ref LL_HRTIM_DLYPRT_DELAYBOTH_EEV6
4157   *         @arg @ref LL_HRTIM_DLYPRT_BALANCED_EEV6
4158   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT1_EEV7
4159   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT2_EEV7
4160   *         @arg @ref LL_HRTIM_DLYPRT_DELAYBOTH_EEV7
4161   *         @arg @ref LL_HRTIM_DLYPRT_BALANCED_EEV7
4162   *
4163   *         For timers D and E this parameter can be one of the following values:
4164   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT1_EEV8
4165   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT2_EEV8
4166   *         @arg @ref LL_HRTIM_DLYPRT_DELAYBOTH_EEV8
4167   *         @arg @ref LL_HRTIM_DLYPRT_BALANCED_EEV8
4168   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT1_EEV9
4169   *         @arg @ref LL_HRTIM_DLYPRT_DELAYOUT2_EEV9
4170   *         @arg @ref LL_HRTIM_DLYPRT_DELAYBOTH_EEV9
4171   *         @arg @ref LL_HRTIM_DLYPRT_BALANCED_EEV9
4172   */
4173 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetDLYPRTMode(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4174 {
4175   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4176   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
4177                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
4178   return (READ_BIT(*pReg, HRTIM_OUTR_DLYPRT));
4179 }
4180 
4181 /**
4182   * @brief  Enable delayed protection (DLYPRT) for a given timer.
4183   * @rmtoll OUTxR      DLYPRTEN       LL_HRTIM_TIM_EnableDLYPRT
4184   * @note   This function must not be called once the concerned timer is enabled
4185   * @param  HRTIMx High Resolution Timer instance
4186   * @param  Timer This parameter can be one of the following values:
4187   *         @arg @ref LL_HRTIM_TIMER_A
4188   *         @arg @ref LL_HRTIM_TIMER_B
4189   *         @arg @ref LL_HRTIM_TIMER_C
4190   *         @arg @ref LL_HRTIM_TIMER_D
4191   *         @arg @ref LL_HRTIM_TIMER_E
4192   * @retval None
4193   */
4194 __STATIC_INLINE void LL_HRTIM_TIM_EnableDLYPRT(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4195 {
4196   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4197   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
4198                                                               REG_OFFSET_TAB_TIMER[iTimer]));
4199   SET_BIT(*pReg, HRTIM_OUTR_DLYPRTEN);
4200 }
4201 
4202 /**
4203   * @brief  Disable delayed protection (DLYPRT) for a given timer.
4204   * @rmtoll OUTxR      DLYPRTEN       LL_HRTIM_TIM_DisableDLYPRT
4205   * @note   This function must not be called once the concerned timer is enabled
4206   * @param  HRTIMx High Resolution Timer instance
4207   * @param  Timer This parameter can be one of the following values:
4208   *         @arg @ref LL_HRTIM_TIMER_A
4209   *         @arg @ref LL_HRTIM_TIMER_B
4210   *         @arg @ref LL_HRTIM_TIMER_C
4211   *         @arg @ref LL_HRTIM_TIMER_D
4212   *         @arg @ref LL_HRTIM_TIMER_E
4213   * @retval None
4214   */
4215 __STATIC_INLINE void LL_HRTIM_TIM_DisableDLYPRT(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4216 {
4217   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4218   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
4219                                                               REG_OFFSET_TAB_TIMER[iTimer]));
4220   CLEAR_BIT(*pReg, HRTIM_OUTR_DLYPRTEN);
4221 }
4222 
4223 /**
4224   * @brief  Indicate whether delayed protection (DLYPRT) is enabled for a given timer.
4225   * @rmtoll OUTxR      DLYPRTEN       LL_HRTIM_TIM_IsEnabledDLYPRT
4226   * @param  HRTIMx High Resolution Timer instance
4227   * @param  Timer This parameter can be one of the following values:
4228   *         @arg @ref LL_HRTIM_TIMER_A
4229   *         @arg @ref LL_HRTIM_TIMER_B
4230   *         @arg @ref LL_HRTIM_TIMER_C
4231   *         @arg @ref LL_HRTIM_TIMER_D
4232   *         @arg @ref LL_HRTIM_TIMER_E
4233   * @retval State of DLYPRTEN bit in HRTIM_OUTxR register (1 or 0).
4234   */
4235 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledDLYPRT(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4236 {
4237   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4238   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
4239                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
4240   return ((READ_BIT(*pReg, HRTIM_OUTR_DLYPRTEN) == (HRTIM_OUTR_DLYPRTEN)) ? 1UL : 0UL);
4241 }
4242 
4243 /**
4244   * @brief  Enable the fault channel(s) for a given timer.
4245   * @rmtoll FLTxR      FLT1EN       LL_HRTIM_TIM_EnableFault\n
4246   *         FLTxR      FLT2EN       LL_HRTIM_TIM_EnableFault\n
4247   *         FLTxR      FLT3EN       LL_HRTIM_TIM_EnableFault\n
4248   *         FLTxR      FLT4EN       LL_HRTIM_TIM_EnableFault\n
4249   *         FLTxR      FLT5EN       LL_HRTIM_TIM_EnableFault
4250   * @param  HRTIMx High Resolution Timer instance
4251   * @param  Timer This parameter can be one of the following values:
4252   *         @arg @ref LL_HRTIM_TIMER_A
4253   *         @arg @ref LL_HRTIM_TIMER_B
4254   *         @arg @ref LL_HRTIM_TIMER_C
4255   *         @arg @ref LL_HRTIM_TIMER_D
4256   *         @arg @ref LL_HRTIM_TIMER_E
4257   * @param  Faults This parameter can be a combination of the following values:
4258   *         @arg @ref LL_HRTIM_FAULT_1
4259   *         @arg @ref LL_HRTIM_FAULT_2
4260   *         @arg @ref LL_HRTIM_FAULT_3
4261   *         @arg @ref LL_HRTIM_FAULT_4
4262   *         @arg @ref LL_HRTIM_FAULT_5
4263   * @retval None
4264   */
4265 __STATIC_INLINE void LL_HRTIM_TIM_EnableFault(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Faults)
4266 {
4267   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4268   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].FLTxR) +
4269                                                               REG_OFFSET_TAB_TIMER[iTimer]));
4270   SET_BIT(*pReg, Faults);
4271 }
4272 
4273 /**
4274   * @brief  Disable the fault channel(s) for a given timer.
4275   * @rmtoll FLTxR      FLT1EN       LL_HRTIM_TIM_DisableFault\n
4276   *         FLTxR      FLT2EN       LL_HRTIM_TIM_DisableFault\n
4277   *         FLTxR      FLT3EN       LL_HRTIM_TIM_DisableFault\n
4278   *         FLTxR      FLT4EN       LL_HRTIM_TIM_DisableFault\n
4279   *         FLTxR      FLT5EN       LL_HRTIM_TIM_DisableFault
4280   * @param  HRTIMx High Resolution Timer instance
4281   * @param  Timer This parameter can be one of the following values:
4282   *         @arg @ref LL_HRTIM_TIMER_A
4283   *         @arg @ref LL_HRTIM_TIMER_B
4284   *         @arg @ref LL_HRTIM_TIMER_C
4285   *         @arg @ref LL_HRTIM_TIMER_D
4286   *         @arg @ref LL_HRTIM_TIMER_E
4287   * @param  Faults This parameter can be a combination of the following values:
4288   *         @arg @ref LL_HRTIM_FAULT_1
4289   *         @arg @ref LL_HRTIM_FAULT_2
4290   *         @arg @ref LL_HRTIM_FAULT_3
4291   *         @arg @ref LL_HRTIM_FAULT_4
4292   *         @arg @ref LL_HRTIM_FAULT_5
4293   * @retval None
4294   */
4295 __STATIC_INLINE void LL_HRTIM_TIM_DisableFault(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Faults)
4296 {
4297   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4298   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].FLTxR) +
4299                                                               REG_OFFSET_TAB_TIMER[iTimer]));
4300   CLEAR_BIT(*pReg, Faults);
4301 }
4302 
4303 /**
4304   * @brief  Indicate whether the fault channel is enabled for a given timer.
4305   * @rmtoll FLTxR      FLT1EN       LL_HRTIM_TIM_IsEnabledFault\n
4306   *         FLTxR      FLT2EN       LL_HRTIM_TIM_IsEnabledFault\n
4307   *         FLTxR      FLT3EN       LL_HRTIM_TIM_IsEnabledFault\n
4308   *         FLTxR      FLT4EN       LL_HRTIM_TIM_IsEnabledFault\n
4309   *         FLTxR      FLT5EN       LL_HRTIM_TIM_IsEnabledFault
4310   * @param  HRTIMx High Resolution Timer instance
4311   * @param  Timer This parameter can be one of the following values:
4312   *         @arg @ref LL_HRTIM_TIMER_A
4313   *         @arg @ref LL_HRTIM_TIMER_B
4314   *         @arg @ref LL_HRTIM_TIMER_C
4315   *         @arg @ref LL_HRTIM_TIMER_D
4316   *         @arg @ref LL_HRTIM_TIMER_E
4317   * @param  Fault This parameter can be one of the following values:
4318   *         @arg @ref LL_HRTIM_FAULT_1
4319   *         @arg @ref LL_HRTIM_FAULT_2
4320   *         @arg @ref LL_HRTIM_FAULT_3
4321   *         @arg @ref LL_HRTIM_FAULT_4
4322   *         @arg @ref LL_HRTIM_FAULT_5
4323   * @retval State of FLTxEN bit in HRTIM_FLTxR register (1 or 0).
4324   */
4325 __STATIC_INLINE uint32_t LL_HRTIM_TIM_IsEnabledFault(const HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Fault)
4326 {
4327   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4328   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].FLTxR) +
4329                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
4330 
4331   return ((READ_BIT(*pReg, Fault) == (Fault)) ? 1UL : 0UL);
4332 }
4333 
4334 /**
4335   * @brief  Lock the fault conditioning set-up for a given timer.
4336   * @rmtoll FLTxR      FLTLCK       LL_HRTIM_TIM_LockFault
4337   * @note Timer fault-related set-up is frozen until the next HRTIM or system reset
4338   * @param  HRTIMx High Resolution Timer instance
4339   * @param  Timer This parameter can be one of the following values:
4340   *         @arg @ref LL_HRTIM_TIMER_A
4341   *         @arg @ref LL_HRTIM_TIMER_B
4342   *         @arg @ref LL_HRTIM_TIMER_C
4343   *         @arg @ref LL_HRTIM_TIMER_D
4344   *         @arg @ref LL_HRTIM_TIMER_E
4345   * @retval None
4346   */
4347 __STATIC_INLINE void LL_HRTIM_TIM_LockFault(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4348 {
4349   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4350   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].FLTxR) +
4351                                                               REG_OFFSET_TAB_TIMER[iTimer]));
4352   SET_BIT(*pReg, HRTIM_FLTR_FLTLCK);
4353 }
4354 
4355 /**
4356   * @brief  Define how the timer behaves during a burst mode operation.
4357   * @rmtoll BMCR      MTBM       LL_HRTIM_TIM_SetBurstModeOption\n
4358   *         BMCR      TABM       LL_HRTIM_TIM_SetBurstModeOption\n
4359   *         BMCR      TBBM       LL_HRTIM_TIM_SetBurstModeOption\n
4360   *         BMCR      TCBM       LL_HRTIM_TIM_SetBurstModeOption\n
4361   *         BMCR      TDBM       LL_HRTIM_TIM_SetBurstModeOption\n
4362   *         BMCR      TEBM       LL_HRTIM_TIM_SetBurstModeOption
4363   * @note This function must not be called when the burst mode is enabled
4364   * @param  HRTIMx High Resolution Timer instance
4365   * @param  Timer This parameter can be one of the following values:
4366   *         @arg @ref LL_HRTIM_TIMER_MASTER
4367   *         @arg @ref LL_HRTIM_TIMER_A
4368   *         @arg @ref LL_HRTIM_TIMER_B
4369   *         @arg @ref LL_HRTIM_TIMER_C
4370   *         @arg @ref LL_HRTIM_TIMER_D
4371   *         @arg @ref LL_HRTIM_TIMER_E
4372   * @param  BurtsModeOption This parameter can be one of the following values:
4373   *         @arg @ref LL_HRTIM_BURSTMODE_MAINTAINCLOCK
4374   *         @arg @ref LL_HRTIM_BURSTMODE_RESETCOUNTER
4375   * @retval None
4376   */
4377 __STATIC_INLINE void LL_HRTIM_TIM_SetBurstModeOption(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t BurtsModeOption)
4378 {
4379   uint32_t iTimer = (uint8_t)((POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos) & 0x1FU);
4380   MODIFY_REG(HRTIMx->sCommonRegs.BMCR, Timer, BurtsModeOption << iTimer);
4381 }
4382 
4383 /**
4384   * @brief  Retrieve how the timer behaves during a burst mode operation.
4385   * @rmtoll BMCR      MCR        LL_HRTIM_TIM_GetBurstModeOption\n
4386   *         BMCR      TABM       LL_HRTIM_TIM_GetBurstModeOption\n
4387   *         BMCR      TBBM       LL_HRTIM_TIM_GetBurstModeOption\n
4388   *         BMCR      TCBM       LL_HRTIM_TIM_GetBurstModeOption\n
4389   *         BMCR      TDBM       LL_HRTIM_TIM_GetBurstModeOption\n
4390   *         BMCR      TEBM       LL_HRTIM_TIM_GetBurstModeOption
4391   * @param  HRTIMx High Resolution Timer instance
4392   * @param  Timer This parameter can be one of the following values:
4393   *         @arg @ref LL_HRTIM_TIMER_MASTER
4394   *         @arg @ref LL_HRTIM_TIMER_A
4395   *         @arg @ref LL_HRTIM_TIMER_B
4396   *         @arg @ref LL_HRTIM_TIMER_C
4397   *         @arg @ref LL_HRTIM_TIMER_D
4398   *         @arg @ref LL_HRTIM_TIMER_E
4399   * @retval BurtsMode This parameter can be one of the following values:
4400   *         @arg @ref LL_HRTIM_BURSTMODE_MAINTAINCLOCK
4401   *         @arg @ref LL_HRTIM_BURSTMODE_RESETCOUNTER
4402   */
4403 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetBurstModeOption(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4404 {
4405   uint32_t iTimer = (uint8_t)((POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos) & 0x1FU);
4406   return (READ_BIT(HRTIMx->sCommonRegs.BMCR, Timer) >> iTimer);
4407 }
4408 
4409 /**
4410   * @brief  Program which registers are to be written by Burst DMA transfers.
4411   * @rmtoll BDMUPDR      MTBM        LL_HRTIM_TIM_ConfigBurstDMA\n
4412   *         BDMUPDR      MICR        LL_HRTIM_TIM_ConfigBurstDMA\n
4413   *         BDMUPDR      MDIER       LL_HRTIM_TIM_ConfigBurstDMA\n
4414   *         BDMUPDR      MCNT        LL_HRTIM_TIM_ConfigBurstDMA\n
4415   *         BDMUPDR      MPER        LL_HRTIM_TIM_ConfigBurstDMA\n
4416   *         BDMUPDR      MREP        LL_HRTIM_TIM_ConfigBurstDMA\n
4417   *         BDMUPDR      MCMP1       LL_HRTIM_TIM_ConfigBurstDMA\n
4418   *         BDMUPDR      MCMP2       LL_HRTIM_TIM_ConfigBurstDMA\n
4419   *         BDMUPDR      MCMP3       LL_HRTIM_TIM_ConfigBurstDMA\n
4420   *         BDMUPDR      MCMP4       LL_HRTIM_TIM_ConfigBurstDMA\n
4421   *         BDTxUPDR     TIMxCR      LL_HRTIM_TIM_ConfigBurstDMA\n
4422   *         BDTxUPDR     TIMxICR     LL_HRTIM_TIM_ConfigBurstDMA\n
4423   *         BDTxUPDR     TIMxDIER    LL_HRTIM_TIM_ConfigBurstDMA\n
4424   *         BDTxUPDR     TIMxCNT     LL_HRTIM_TIM_ConfigBurstDMA\n
4425   *         BDTxUPDR     TIMxPER     LL_HRTIM_TIM_ConfigBurstDMA\n
4426   *         BDTxUPDR     TIMxREP     LL_HRTIM_TIM_ConfigBurstDMA\n
4427   *         BDTxUPDR     TIMxCMP1    LL_HRTIM_TIM_ConfigBurstDMA\n
4428   *         BDTxUPDR     TIMxCMP2    LL_HRTIM_TIM_ConfigBurstDMA\n
4429   *         BDTxUPDR     TIMxCMP3    LL_HRTIM_TIM_ConfigBurstDMA\n
4430   *         BDTxUPDR     TIMxCMP4    LL_HRTIM_TIM_ConfigBurstDMA\n
4431   *         BDTxUPDR     TIMxDTR     LL_HRTIM_TIM_ConfigBurstDMA\n
4432   *         BDTxUPDR     TIMxSET1R   LL_HRTIM_TIM_ConfigBurstDMA\n
4433   *         BDTxUPDR     TIMxRST1R   LL_HRTIM_TIM_ConfigBurstDMA\n
4434   *         BDTxUPDR     TIMxSET2R   LL_HRTIM_TIM_ConfigBurstDMA\n
4435   *         BDTxUPDR     TIMxRST2R   LL_HRTIM_TIM_ConfigBurstDMA\n
4436   *         BDTxUPDR     TIMxEEFR1   LL_HRTIM_TIM_ConfigBurstDMA\n
4437   *         BDTxUPDR     TIMxEEFR2   LL_HRTIM_TIM_ConfigBurstDMA\n
4438   *         BDTxUPDR     TIMxRSTR    LL_HRTIM_TIM_ConfigBurstDMA\n
4439   *         BDTxUPDR     TIMxOUTR    LL_HRTIM_TIM_ConfigBurstDMA\n
4440   *         BDTxUPDR     TIMxLTCH    LL_HRTIM_TIM_ConfigBurstDMA
4441   * @param  HRTIMx High Resolution Timer instance
4442   * @param  Timer This parameter can be one of the following values:
4443   *         @arg @ref LL_HRTIM_TIMER_MASTER
4444   *         @arg @ref LL_HRTIM_TIMER_A
4445   *         @arg @ref LL_HRTIM_TIMER_B
4446   *         @arg @ref LL_HRTIM_TIMER_C
4447   *         @arg @ref LL_HRTIM_TIMER_D
4448   *         @arg @ref LL_HRTIM_TIMER_E
4449   * @param  Registers Registers to be updated by the DMA request
4450   *
4451   *         For Master timer this parameter can be can be a combination of the following values:
4452   *         @arg @ref LL_HRTIM_BURSTDMA_NONE
4453   *         @arg @ref LL_HRTIM_BURSTDMA_MCR
4454   *         @arg @ref LL_HRTIM_BURSTDMA_MICR
4455   *         @arg @ref LL_HRTIM_BURSTDMA_MDIER
4456   *         @arg @ref LL_HRTIM_BURSTDMA_MCNT
4457   *         @arg @ref LL_HRTIM_BURSTDMA_MPER
4458   *         @arg @ref LL_HRTIM_BURSTDMA_MREP
4459   *         @arg @ref LL_HRTIM_BURSTDMA_MCMP1
4460   *         @arg @ref LL_HRTIM_BURSTDMA_MCMP2
4461   *         @arg @ref LL_HRTIM_BURSTDMA_MCMP3
4462   *         @arg @ref LL_HRTIM_BURSTDMA_MCMP4
4463   *
4464   *         For Timers A..E this parameter can be can be a combination of the following values:
4465   *         @arg @ref LL_HRTIM_BURSTDMA_NONE
4466   *         @arg @ref LL_HRTIM_BURSTDMA_TIMMCR
4467   *         @arg @ref LL_HRTIM_BURSTDMA_TIMICR
4468   *         @arg @ref LL_HRTIM_BURSTDMA_TIMDIER
4469   *         @arg @ref LL_HRTIM_BURSTDMA_TIMCNT
4470   *         @arg @ref LL_HRTIM_BURSTDMA_TIMPER
4471   *         @arg @ref LL_HRTIM_BURSTDMA_TIMREP
4472   *         @arg @ref LL_HRTIM_BURSTDMA_TIMCMP1
4473   *         @arg @ref LL_HRTIM_BURSTDMA_TIMCMP2
4474   *         @arg @ref LL_HRTIM_BURSTDMA_TIMCMP3
4475   *         @arg @ref LL_HRTIM_BURSTDMA_TIMCMP4
4476   *         @arg @ref LL_HRTIM_BURSTDMA_TIMDTR
4477   *         @arg @ref LL_HRTIM_BURSTDMA_TIMSET1R
4478   *         @arg @ref LL_HRTIM_BURSTDMA_TIMRST1R
4479   *         @arg @ref LL_HRTIM_BURSTDMA_TIMSET2R
4480   *         @arg @ref LL_HRTIM_BURSTDMA_TIMRST2R
4481   *         @arg @ref LL_HRTIM_BURSTDMA_TIMEEFR1
4482   *         @arg @ref LL_HRTIM_BURSTDMA_TIMEEFR2
4483   *         @arg @ref LL_HRTIM_BURSTDMA_TIMRSTR
4484   *         @arg @ref LL_HRTIM_BURSTDMA_TIMCHPR
4485   *         @arg @ref LL_HRTIM_BURSTDMA_TIMOUTR
4486   *         @arg @ref LL_HRTIM_BURSTDMA_TIMFLTR
4487   * @retval None
4488   */
4489 __STATIC_INLINE void LL_HRTIM_TIM_ConfigBurstDMA(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Registers)
4490 {
4491 
4492   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4493   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.BDMUPR) + (4U * iTimer)));
4494   WRITE_REG(*pReg, Registers);
4495 }
4496 
4497 /**
4498   * @brief  Indicate on which output the signal is currently applied.
4499   * @rmtoll TIMxISR      CPPSTAT        LL_HRTIM_TIM_GetCurrentPushPullStatus
4500   * @note Only significant when the timer operates in push-pull mode.
4501   * @param  HRTIMx High Resolution Timer instance
4502   * @param  Timer This parameter can be one of the following values:
4503   *         @arg @ref LL_HRTIM_TIMER_A
4504   *         @arg @ref LL_HRTIM_TIMER_B
4505   *         @arg @ref LL_HRTIM_TIMER_C
4506   *         @arg @ref LL_HRTIM_TIMER_D
4507   *         @arg @ref LL_HRTIM_TIMER_E
4508   * @retval CPPSTAT This parameter can be one of the following values:
4509   *         @arg @ref LL_HRTIM_CPPSTAT_OUTPUT1
4510   *         @arg @ref LL_HRTIM_CPPSTAT_OUTPUT2
4511   */
4512 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetCurrentPushPullStatus(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4513 {
4514   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4515   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
4516                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
4517   return (READ_BIT(*pReg, HRTIM_TIMISR_CPPSTAT));
4518 }
4519 
4520 /**
4521   * @brief  Indicate on which output the signal was applied, in push-pull mode, balanced fault mode or delayed idle mode, when the protection was triggered.
4522   * @rmtoll TIMxISR      IPPSTAT        LL_HRTIM_TIM_GetIdlePushPullStatus
4523   * @param  HRTIMx High Resolution Timer instance
4524   * @param  Timer This parameter can be one of the following values:
4525   *         @arg @ref LL_HRTIM_TIMER_A
4526   *         @arg @ref LL_HRTIM_TIMER_B
4527   *         @arg @ref LL_HRTIM_TIMER_C
4528   *         @arg @ref LL_HRTIM_TIMER_D
4529   *         @arg @ref LL_HRTIM_TIMER_E
4530   * @retval IPPSTAT This parameter can be one of the following values:
4531   *         @arg @ref LL_HRTIM_IPPSTAT_OUTPUT1
4532   *         @arg @ref LL_HRTIM_IPPSTAT_OUTPUT2
4533   */
4534 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetIdlePushPullStatus(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4535 {
4536   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
4537   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
4538                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
4539   return (READ_BIT(*pReg, HRTIM_TIMISR_IPPSTAT));
4540 }
4541 
4542 /**
4543   * @brief  Set the event filter for a given timer.
4544   * @rmtoll EEFxR1      EE1LTCH        LL_HRTIM_TIM_SetEventFilter\n
4545   *         EEFxR1      EE2LTCH        LL_HRTIM_TIM_SetEventFilter\n
4546   *         EEFxR1      EE3LTCH        LL_HRTIM_TIM_SetEventFilter\n
4547   *         EEFxR1      EE4LTCH        LL_HRTIM_TIM_SetEventFilter\n
4548   *         EEFxR1      EE5LTCH        LL_HRTIM_TIM_SetEventFilter\n
4549   *         EEFxR2      EE6LTCH        LL_HRTIM_TIM_SetEventFilter\n
4550   *         EEFxR2      EE7LTCH        LL_HRTIM_TIM_SetEventFilter\n
4551   *         EEFxR2      EE8LTCH        LL_HRTIM_TIM_SetEventFilter\n
4552   *         EEFxR2      EE9LTCH        LL_HRTIM_TIM_SetEventFilter\n
4553   *         EEFxR2      EE10LTCH       LL_HRTIM_TIM_SetEventFilter
4554   * @note This function must not be called when the timer counter is enabled.
4555   * @param  HRTIMx High Resolution Timer instance
4556   * @param  Timer This parameter can be one of the following values:
4557   *         @arg @ref LL_HRTIM_TIMER_A
4558   *         @arg @ref LL_HRTIM_TIMER_B
4559   *         @arg @ref LL_HRTIM_TIMER_C
4560   *         @arg @ref LL_HRTIM_TIMER_D
4561   *         @arg @ref LL_HRTIM_TIMER_E
4562   * @param  Event This parameter can be one of the following values:
4563   *         @arg @ref LL_HRTIM_EVENT_1
4564   *         @arg @ref LL_HRTIM_EVENT_2
4565   *         @arg @ref LL_HRTIM_EVENT_3
4566   *         @arg @ref LL_HRTIM_EVENT_4
4567   *         @arg @ref LL_HRTIM_EVENT_5
4568   *         @arg @ref LL_HRTIM_EVENT_6
4569   *         @arg @ref LL_HRTIM_EVENT_7
4570   *         @arg @ref LL_HRTIM_EVENT_8
4571   *         @arg @ref LL_HRTIM_EVENT_9
4572   *         @arg @ref LL_HRTIM_EVENT_10
4573   * @param  Filter This parameter can be one of the following values:
4574   *         @arg @ref LL_HRTIM_EEFLTR_NONE
4575   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGCMP1
4576   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGCMP2
4577   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGCMP3
4578   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGCMP4
4579   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR1
4580   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR2
4581   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR3
4582   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR4
4583   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR5
4584   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR6
4585   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR7
4586   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR8
4587   *         @arg @ref LL_HRTIM_EEFLTR_WINDOWINGCMP2
4588   *         @arg @ref LL_HRTIM_EEFLTR_WINDOWINGCMP3
4589   *         @arg @ref LL_HRTIM_EEFLTR_WINDOWINGTIM
4590 
4591   * @retval None
4592   */
4593 __STATIC_INLINE void LL_HRTIM_TIM_SetEventFilter(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Event, uint32_t Filter)
4594 {
4595   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
4596   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
4597   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].EEFxR1) +
4598                                                               REG_OFFSET_TAB_TIMER[iTimer] + REG_OFFSET_TAB_EECR[iEvent]));
4599   MODIFY_REG(*pReg, (HRTIM_EEFR1_EE1FLTR << REG_SHIFT_TAB_EExSRC[iEvent]), (Filter << REG_SHIFT_TAB_EExSRC[iEvent]));
4600 }
4601 
4602 /**
4603   * @brief  Get actual event filter settings for a given timer.
4604   * @rmtoll EEFxR1      EE1FLTR        LL_HRTIM_TIM_GetEventFilter\n
4605   *         EEFxR1      EE2FLTR        LL_HRTIM_TIM_GetEventFilter\n
4606   *         EEFxR1      EE3FLTR        LL_HRTIM_TIM_GetEventFilter\n
4607   *         EEFxR1      EE4FLTR        LL_HRTIM_TIM_GetEventFilter\n
4608   *         EEFxR1      EE5FLTR        LL_HRTIM_TIM_GetEventFilter\n
4609   *         EEFxR2      EE6FLTR        LL_HRTIM_TIM_GetEventFilter\n
4610   *         EEFxR2      EE7FLTR        LL_HRTIM_TIM_GetEventFilter\n
4611   *         EEFxR2      EE8FLTR        LL_HRTIM_TIM_GetEventFilter\n
4612   *         EEFxR2      EE9FLTR        LL_HRTIM_TIM_GetEventFilter\n
4613   *         EEFxR2      EE10FLTR       LL_HRTIM_TIM_GetEventFilter
4614   * @param  HRTIMx High Resolution Timer instance
4615   * @param  Timer This parameter can be one of the following values:
4616   *         @arg @ref LL_HRTIM_TIMER_A
4617   *         @arg @ref LL_HRTIM_TIMER_B
4618   *         @arg @ref LL_HRTIM_TIMER_C
4619   *         @arg @ref LL_HRTIM_TIMER_D
4620   *         @arg @ref LL_HRTIM_TIMER_E
4621   * @param  Event This parameter can be one of the following values:
4622   *         @arg @ref LL_HRTIM_EVENT_1
4623   *         @arg @ref LL_HRTIM_EVENT_2
4624   *         @arg @ref LL_HRTIM_EVENT_3
4625   *         @arg @ref LL_HRTIM_EVENT_4
4626   *         @arg @ref LL_HRTIM_EVENT_5
4627   *         @arg @ref LL_HRTIM_EVENT_6
4628   *         @arg @ref LL_HRTIM_EVENT_7
4629   *         @arg @ref LL_HRTIM_EVENT_8
4630   *         @arg @ref LL_HRTIM_EVENT_9
4631   *         @arg @ref LL_HRTIM_EVENT_10
4632   * @retval Filter This parameter can be one of the following values:
4633   *         @arg @ref LL_HRTIM_EEFLTR_NONE
4634   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGCMP1
4635   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGCMP2
4636   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGCMP3
4637   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGCMP4
4638   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR1
4639   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR2
4640   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR3
4641   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR4
4642   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR5
4643   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR6
4644   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR7
4645   *         @arg @ref LL_HRTIM_EEFLTR_BLANKINGFLTR8
4646   *         @arg @ref LL_HRTIM_EEFLTR_WINDOWINGCMP2
4647   *         @arg @ref LL_HRTIM_EEFLTR_WINDOWINGCMP3
4648   *         @arg @ref LL_HRTIM_EEFLTR_WINDOWINGTIM
4649   */
4650 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetEventFilter(const HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Event)
4651 {
4652   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
4653   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
4654   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].EEFxR1) +
4655                                                                     REG_OFFSET_TAB_TIMER[iTimer] + REG_OFFSET_TAB_EECR[iEvent]));
4656   return (READ_BIT(*pReg, (uint32_t)(HRTIM_EEFR1_EE1FLTR) << (REG_SHIFT_TAB_EExSRC[iEvent])) >> (REG_SHIFT_TAB_EExSRC[iEvent]));
4657 }
4658 
4659 /**
4660   * @brief  Enable or disable event latch mechanism for a given timer.
4661   * @rmtoll EEFxR1      EE1LTCH        LL_HRTIM_TIM_SetEventLatchStatus\n
4662   *         EEFxR1      EE2LTCH        LL_HRTIM_TIM_SetEventLatchStatus\n
4663   *         EEFxR1      EE3LTCH        LL_HRTIM_TIM_SetEventLatchStatus\n
4664   *         EEFxR1      EE4LTCH        LL_HRTIM_TIM_SetEventLatchStatus\n
4665   *         EEFxR1      EE5LTCH        LL_HRTIM_TIM_SetEventLatchStatus\n
4666   *         EEFxR2      EE6LTCH        LL_HRTIM_TIM_SetEventLatchStatus\n
4667   *         EEFxR2      EE7LTCH        LL_HRTIM_TIM_SetEventLatchStatus\n
4668   *         EEFxR2      EE8LTCH        LL_HRTIM_TIM_SetEventLatchStatus\n
4669   *         EEFxR2      EE9LTCH        LL_HRTIM_TIM_SetEventLatchStatus\n
4670   *         EEFxR2      EE10LTCH       LL_HRTIM_TIM_SetEventLatchStatus
4671   * @note This function must not be called when the timer counter is enabled.
4672   * @param  HRTIMx High Resolution Timer instance
4673   * @param  Timer This parameter can be one of the following values:
4674   *         @arg @ref LL_HRTIM_TIMER_A
4675   *         @arg @ref LL_HRTIM_TIMER_B
4676   *         @arg @ref LL_HRTIM_TIMER_C
4677   *         @arg @ref LL_HRTIM_TIMER_D
4678   *         @arg @ref LL_HRTIM_TIMER_E
4679   * @param  Event This parameter can be one of the following values:
4680   *         @arg @ref LL_HRTIM_EVENT_1
4681   *         @arg @ref LL_HRTIM_EVENT_2
4682   *         @arg @ref LL_HRTIM_EVENT_3
4683   *         @arg @ref LL_HRTIM_EVENT_4
4684   *         @arg @ref LL_HRTIM_EVENT_5
4685   *         @arg @ref LL_HRTIM_EVENT_6
4686   *         @arg @ref LL_HRTIM_EVENT_7
4687   *         @arg @ref LL_HRTIM_EVENT_8
4688   *         @arg @ref LL_HRTIM_EVENT_9
4689   *         @arg @ref LL_HRTIM_EVENT_10
4690   * @param  LatchStatus This parameter can be one of the following values:
4691   *         @arg @ref LL_HRTIM_EELATCH_DISABLED
4692   *         @arg @ref LL_HRTIM_EELATCH_ENABLED
4693   * @retval None
4694   */
4695 __STATIC_INLINE void LL_HRTIM_TIM_SetEventLatchStatus(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Event,
4696                                                       uint32_t LatchStatus)
4697 {
4698   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
4699   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
4700   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].EEFxR1) +
4701                                                               REG_OFFSET_TAB_TIMER[iTimer] + REG_OFFSET_TAB_EECR[iEvent]));
4702   MODIFY_REG(*pReg, (HRTIM_EEFR1_EE1LTCH << REG_SHIFT_TAB_EExSRC[iEvent]), (LatchStatus << REG_SHIFT_TAB_EExSRC[iEvent]));
4703 }
4704 
4705 /**
4706   * @brief  Get actual event latch status for a given timer.
4707   * @rmtoll EEFxR1      EE1LTCH        LL_HRTIM_TIM_GetEventLatchStatus\n
4708   *         EEFxR1      EE2LTCH        LL_HRTIM_TIM_GetEventLatchStatus\n
4709   *         EEFxR1      EE3LTCH        LL_HRTIM_TIM_GetEventLatchStatus\n
4710   *         EEFxR1      EE4LTCH        LL_HRTIM_TIM_GetEventLatchStatus\n
4711   *         EEFxR1      EE5LTCH        LL_HRTIM_TIM_GetEventLatchStatus\n
4712   *         EEFxR2      EE6LTCH        LL_HRTIM_TIM_GetEventLatchStatus\n
4713   *         EEFxR2      EE7LTCH        LL_HRTIM_TIM_GetEventLatchStatus\n
4714   *         EEFxR2      EE8LTCH        LL_HRTIM_TIM_GetEventLatchStatus\n
4715   *         EEFxR2      EE9LTCH        LL_HRTIM_TIM_GetEventLatchStatus\n
4716   *         EEFxR2      EE10LTCH       LL_HRTIM_TIM_GetEventLatchStatus
4717   * @param  HRTIMx High Resolution Timer instance
4718   * @param  Timer This parameter can be one of the following values:
4719   *         @arg @ref LL_HRTIM_TIMER_A
4720   *         @arg @ref LL_HRTIM_TIMER_B
4721   *         @arg @ref LL_HRTIM_TIMER_C
4722   *         @arg @ref LL_HRTIM_TIMER_D
4723   *         @arg @ref LL_HRTIM_TIMER_E
4724   * @param  Event This parameter can be one of the following values:
4725   *         @arg @ref LL_HRTIM_EVENT_1
4726   *         @arg @ref LL_HRTIM_EVENT_2
4727   *         @arg @ref LL_HRTIM_EVENT_3
4728   *         @arg @ref LL_HRTIM_EVENT_4
4729   *         @arg @ref LL_HRTIM_EVENT_5
4730   *         @arg @ref LL_HRTIM_EVENT_6
4731   *         @arg @ref LL_HRTIM_EVENT_7
4732   *         @arg @ref LL_HRTIM_EVENT_8
4733   *         @arg @ref LL_HRTIM_EVENT_9
4734   *         @arg @ref LL_HRTIM_EVENT_10
4735   * @retval LatchStatus This parameter can be one of the following values:
4736   *         @arg @ref LL_HRTIM_EELATCH_DISABLED
4737   *         @arg @ref LL_HRTIM_EELATCH_ENABLED
4738   */
4739 __STATIC_INLINE uint32_t LL_HRTIM_TIM_GetEventLatchStatus(const HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Event)
4740 {
4741   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - POSITION_VAL(LL_HRTIM_TIMER_A));
4742   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
4743   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].EEFxR1) +
4744                                                                     REG_OFFSET_TAB_TIMER[iTimer] + REG_OFFSET_TAB_EECR[iEvent]));
4745   return (READ_BIT(*pReg, (uint32_t)(HRTIM_EEFR1_EE1LTCH) << REG_SHIFT_TAB_EExSRC[iEvent]) >> (REG_SHIFT_TAB_EExSRC[iEvent]));
4746 }
4747 
4748 /**
4749   * @}
4750   */
4751 
4752 /** @defgroup HRTIM_LL_EF_Dead_Time_Configuration Dead_Time_Configuration
4753   * @ingroup RTEMSBSPsARMSTM32H7
4754   * @{
4755   */
4756 
4757 /**
4758   * @brief  Configure the dead time insertion feature for a given timer.
4759   * @rmtoll DTxR      DTPRSC     LL_HRTIM_DT_Config\n
4760   *         DTxR      SDTF       LL_HRTIM_DT_Config\n
4761   *         DTxR      SDRT       LL_HRTIM_DT_Config
4762   * @param  HRTIMx High Resolution Timer instance
4763   * @param  Timer This parameter can be one of the following values:
4764   *         @arg @ref LL_HRTIM_TIMER_A
4765   *         @arg @ref LL_HRTIM_TIMER_B
4766   *         @arg @ref LL_HRTIM_TIMER_C
4767   *         @arg @ref LL_HRTIM_TIMER_D
4768   *         @arg @ref LL_HRTIM_TIMER_E
4769   * @param  Configuration This parameter must be a combination of all the following values:
4770   *         @arg @ref LL_HRTIM_DT_PRESCALER_MUL8 or ... or @ref LL_HRTIM_DT_PRESCALER_DIV16
4771   *         @arg @ref LL_HRTIM_DT_RISING_POSITIVE or @ref LL_HRTIM_DT_RISING_NEGATIVE
4772   *         @arg @ref LL_HRTIM_DT_FALLING_POSITIVE or @ref LL_HRTIM_DT_FALLING_NEGATIVE
4773   * @retval None
4774   */
4775 __STATIC_INLINE void LL_HRTIM_DT_Config(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Configuration)
4776 {
4777   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4778   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
4779                                                               REG_OFFSET_TAB_TIMER[iTimer]));
4780   MODIFY_REG(*pReg, HRTIM_DTR_SDTF | HRTIM_DTR_DTPRSC | HRTIM_DTR_SDTR, Configuration);
4781 }
4782 
4783 /**
4784   * @brief  Set the deadtime prescaler value.
4785   * @rmtoll DTxR      DTPRSC     LL_HRTIM_DT_SetPrescaler
4786   * @param  HRTIMx High Resolution Timer instance
4787   * @param  Timer This parameter can be one of the following values:
4788   *         @arg @ref LL_HRTIM_TIMER_A
4789   *         @arg @ref LL_HRTIM_TIMER_B
4790   *         @arg @ref LL_HRTIM_TIMER_C
4791   *         @arg @ref LL_HRTIM_TIMER_D
4792   *         @arg @ref LL_HRTIM_TIMER_E
4793   * @param  Prescaler This parameter can be one of the following values:
4794   *         @arg @ref LL_HRTIM_DT_PRESCALER_MUL8
4795   *         @arg @ref LL_HRTIM_DT_PRESCALER_MUL4
4796   *         @arg @ref LL_HRTIM_DT_PRESCALER_MUL2
4797   *         @arg @ref LL_HRTIM_DT_PRESCALER_DIV1
4798   *         @arg @ref LL_HRTIM_DT_PRESCALER_DIV2
4799   *         @arg @ref LL_HRTIM_DT_PRESCALER_DIV4
4800   *         @arg @ref LL_HRTIM_DT_PRESCALER_DIV8
4801   *         @arg @ref LL_HRTIM_DT_PRESCALER_DIV16
4802   * @retval None
4803   */
4804 __STATIC_INLINE void LL_HRTIM_DT_SetPrescaler(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Prescaler)
4805 {
4806   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4807   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
4808                                                               REG_OFFSET_TAB_TIMER[iTimer]));
4809   MODIFY_REG(*pReg, HRTIM_DTR_DTPRSC, Prescaler);
4810 }
4811 
4812 /**
4813   * @brief  Get actual deadtime prescaler value.
4814   * @rmtoll DTxR      DTPRSC     LL_HRTIM_DT_GetPrescaler
4815   * @param  HRTIMx High Resolution Timer instance
4816   * @param  Timer This parameter can be one of the following values:
4817   *         @arg @ref LL_HRTIM_TIMER_A
4818   *         @arg @ref LL_HRTIM_TIMER_B
4819   *         @arg @ref LL_HRTIM_TIMER_C
4820   *         @arg @ref LL_HRTIM_TIMER_D
4821   *         @arg @ref LL_HRTIM_TIMER_E
4822   * @retval Prescaler This parameter can be one of the following values:
4823   *         @arg @ref LL_HRTIM_DT_PRESCALER_MUL8
4824   *         @arg @ref LL_HRTIM_DT_PRESCALER_MUL4
4825   *         @arg @ref LL_HRTIM_DT_PRESCALER_MUL2
4826   *         @arg @ref LL_HRTIM_DT_PRESCALER_DIV1
4827   *         @arg @ref LL_HRTIM_DT_PRESCALER_DIV2
4828   *         @arg @ref LL_HRTIM_DT_PRESCALER_DIV4
4829   *         @arg @ref LL_HRTIM_DT_PRESCALER_DIV8
4830   *         @arg @ref LL_HRTIM_DT_PRESCALER_DIV16
4831   */
4832 __STATIC_INLINE uint32_t LL_HRTIM_DT_GetPrescaler(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4833 {
4834   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4835   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
4836                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
4837   return (READ_BIT(*pReg, HRTIM_DTR_DTPRSC));
4838 }
4839 
4840 /**
4841   * @brief  Set the deadtime rising value.
4842   * @rmtoll DTxR      DTR       LL_HRTIM_DT_SetRisingValue
4843   * @param  HRTIMx High Resolution Timer instance
4844   * @param  Timer This parameter can be one of the following values:
4845   *         @arg @ref LL_HRTIM_TIMER_A
4846   *         @arg @ref LL_HRTIM_TIMER_B
4847   *         @arg @ref LL_HRTIM_TIMER_C
4848   *         @arg @ref LL_HRTIM_TIMER_D
4849   *         @arg @ref LL_HRTIM_TIMER_E
4850   * @param  RisingValue Value between 0 and 0x1FF
4851   * @retval None
4852   */
4853 __STATIC_INLINE void LL_HRTIM_DT_SetRisingValue(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t RisingValue)
4854 {
4855   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4856   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
4857                                                               REG_OFFSET_TAB_TIMER[iTimer]));
4858   MODIFY_REG(*pReg, HRTIM_DTR_DTR, RisingValue);
4859 }
4860 
4861 /**
4862   * @brief  Get actual deadtime rising value.
4863   * @rmtoll DTxR      DTR       LL_HRTIM_DT_GetRisingValue
4864   * @param  HRTIMx High Resolution Timer instance
4865   * @param  Timer This parameter can be one of the following values:
4866   *         @arg @ref LL_HRTIM_TIMER_A
4867   *         @arg @ref LL_HRTIM_TIMER_B
4868   *         @arg @ref LL_HRTIM_TIMER_C
4869   *         @arg @ref LL_HRTIM_TIMER_D
4870   *         @arg @ref LL_HRTIM_TIMER_E
4871   * @retval RisingValue Value between 0 and 0x1FF
4872   */
4873 __STATIC_INLINE uint32_t LL_HRTIM_DT_GetRisingValue(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4874 {
4875   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4876   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
4877                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
4878   return (READ_BIT(*pReg, HRTIM_DTR_DTR));
4879 }
4880 
4881 /**
4882   * @brief  Set the deadtime sign on rising edge.
4883   * @rmtoll DTxR      SDTR       LL_HRTIM_DT_SetRisingSign
4884   * @param  HRTIMx High Resolution Timer instance
4885   * @param  Timer This parameter can be one of the following values:
4886   *         @arg @ref LL_HRTIM_TIMER_A
4887   *         @arg @ref LL_HRTIM_TIMER_B
4888   *         @arg @ref LL_HRTIM_TIMER_C
4889   *         @arg @ref LL_HRTIM_TIMER_D
4890   *         @arg @ref LL_HRTIM_TIMER_E
4891   * @param  RisingSign This parameter can be one of the following values:
4892   *         @arg @ref LL_HRTIM_DT_RISING_POSITIVE
4893   *         @arg @ref LL_HRTIM_DT_RISING_NEGATIVE
4894   * @retval None
4895   */
4896 __STATIC_INLINE void LL_HRTIM_DT_SetRisingSign(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t RisingSign)
4897 {
4898   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4899   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
4900                                                               REG_OFFSET_TAB_TIMER[iTimer]));
4901   MODIFY_REG(*pReg, HRTIM_DTR_SDTR, RisingSign);
4902 }
4903 
4904 /**
4905   * @brief  Get actual deadtime sign on rising edge.
4906   * @rmtoll DTxR      SDTR       LL_HRTIM_DT_GetRisingSign
4907   * @param  HRTIMx High Resolution Timer instance
4908   * @param  Timer This parameter can be one of the following values:
4909   *         @arg @ref LL_HRTIM_TIMER_A
4910   *         @arg @ref LL_HRTIM_TIMER_B
4911   *         @arg @ref LL_HRTIM_TIMER_C
4912   *         @arg @ref LL_HRTIM_TIMER_D
4913   *         @arg @ref LL_HRTIM_TIMER_E
4914   * @retval RisingSign This parameter can be one of the following values:
4915   *         @arg @ref LL_HRTIM_DT_RISING_POSITIVE
4916   *         @arg @ref LL_HRTIM_DT_RISING_NEGATIVE
4917   */
4918 __STATIC_INLINE uint32_t LL_HRTIM_DT_GetRisingSign(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4919 {
4920   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4921   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
4922                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
4923   return (READ_BIT(*pReg, HRTIM_DTR_SDTR));
4924 }
4925 
4926 /**
4927   * @brief  Set the deadime falling value.
4928   * @rmtoll DTxR      DTF       LL_HRTIM_DT_SetFallingValue
4929   * @param  HRTIMx High Resolution Timer instance
4930   * @param  Timer This parameter can be one of the following values:
4931   *         @arg @ref LL_HRTIM_TIMER_A
4932   *         @arg @ref LL_HRTIM_TIMER_B
4933   *         @arg @ref LL_HRTIM_TIMER_C
4934   *         @arg @ref LL_HRTIM_TIMER_D
4935   *         @arg @ref LL_HRTIM_TIMER_E
4936   * @param  FallingValue Value between 0 and 0x1FF
4937   * @retval None
4938   */
4939 __STATIC_INLINE void LL_HRTIM_DT_SetFallingValue(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t FallingValue)
4940 {
4941   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4942   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
4943                                                               REG_OFFSET_TAB_TIMER[iTimer]));
4944   MODIFY_REG(*pReg, HRTIM_DTR_DTF, FallingValue << HRTIM_DTR_DTF_Pos);
4945 }
4946 
4947 /**
4948   * @brief  Get actual deadtime falling value
4949   * @rmtoll DTxR      DTF       LL_HRTIM_DT_GetFallingValue
4950   * @param  HRTIMx High Resolution Timer instance
4951   * @param  Timer This parameter can be one of the following values:
4952   *         @arg @ref LL_HRTIM_TIMER_A
4953   *         @arg @ref LL_HRTIM_TIMER_B
4954   *         @arg @ref LL_HRTIM_TIMER_C
4955   *         @arg @ref LL_HRTIM_TIMER_D
4956   *         @arg @ref LL_HRTIM_TIMER_E
4957   * @retval FallingValue Value between 0 and 0x1FF
4958   */
4959 __STATIC_INLINE uint32_t LL_HRTIM_DT_GetFallingValue(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
4960 {
4961   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4962   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
4963                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
4964   return ((READ_BIT(*pReg, HRTIM_DTR_DTF)) >> HRTIM_DTR_DTF_Pos);
4965 }
4966 
4967 /**
4968   * @brief  Set the deadtime sign on falling edge.
4969   * @rmtoll DTxR      SDTF       LL_HRTIM_DT_SetFallingSign
4970   * @param  HRTIMx High Resolution Timer instance
4971   * @param  Timer This parameter can be one of the following values:
4972   *         @arg @ref LL_HRTIM_TIMER_A
4973   *         @arg @ref LL_HRTIM_TIMER_B
4974   *         @arg @ref LL_HRTIM_TIMER_C
4975   *         @arg @ref LL_HRTIM_TIMER_D
4976   *         @arg @ref LL_HRTIM_TIMER_E
4977   * @param  FallingSign This parameter can be one of the following values:
4978   *         @arg @ref LL_HRTIM_DT_FALLING_POSITIVE
4979   *         @arg @ref LL_HRTIM_DT_FALLING_NEGATIVE
4980   * @retval None
4981   */
4982 __STATIC_INLINE void LL_HRTIM_DT_SetFallingSign(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t FallingSign)
4983 {
4984   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
4985   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
4986                                                               REG_OFFSET_TAB_TIMER[iTimer]));
4987   MODIFY_REG(*pReg, HRTIM_DTR_SDTF, FallingSign);
4988 }
4989 
4990 /**
4991   * @brief  Get actual deadtime sign on falling edge.
4992   * @rmtoll DTxR      SDTF       LL_HRTIM_DT_GetFallingSign
4993   * @param  HRTIMx High Resolution Timer instance
4994   * @param  Timer This parameter can be one of the following values:
4995   *         @arg @ref LL_HRTIM_TIMER_A
4996   *         @arg @ref LL_HRTIM_TIMER_B
4997   *         @arg @ref LL_HRTIM_TIMER_C
4998   *         @arg @ref LL_HRTIM_TIMER_D
4999   *         @arg @ref LL_HRTIM_TIMER_E
5000   * @retval FallingSign This parameter can be one of the following values:
5001   *         @arg @ref LL_HRTIM_DT_FALLING_POSITIVE
5002   *         @arg @ref LL_HRTIM_DT_FALLING_NEGATIVE
5003   */
5004 __STATIC_INLINE uint32_t LL_HRTIM_DT_GetFallingSign(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
5005 {
5006   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5007   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
5008                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
5009   return (READ_BIT(*pReg, HRTIM_DTR_SDTF));
5010 }
5011 
5012 /**
5013   * @brief  Lock the deadtime value and sign on rising edge.
5014   * @rmtoll DTxR      DTRLK       LL_HRTIM_DT_LockRising
5015   * @param  HRTIMx High Resolution Timer instance
5016   * @param  Timer This parameter can be one of the following values:
5017   *         @arg @ref LL_HRTIM_TIMER_A
5018   *         @arg @ref LL_HRTIM_TIMER_B
5019   *         @arg @ref LL_HRTIM_TIMER_C
5020   *         @arg @ref LL_HRTIM_TIMER_D
5021   *         @arg @ref LL_HRTIM_TIMER_E
5022   * @retval None
5023   */
5024 __STATIC_INLINE void LL_HRTIM_DT_LockRising(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
5025 {
5026   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5027   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
5028                                                               REG_OFFSET_TAB_TIMER[iTimer]));
5029   SET_BIT(*pReg, HRTIM_DTR_DTRLK);
5030 }
5031 
5032 /**
5033   * @brief  Lock the deadtime sign on rising edge.
5034   * @rmtoll DTxR      DTRSLK       LL_HRTIM_DT_LockRisingSign
5035   * @param  HRTIMx High Resolution Timer instance
5036   * @param  Timer This parameter can be one of the following values:
5037   *         @arg @ref LL_HRTIM_TIMER_A
5038   *         @arg @ref LL_HRTIM_TIMER_B
5039   *         @arg @ref LL_HRTIM_TIMER_C
5040   *         @arg @ref LL_HRTIM_TIMER_D
5041   *         @arg @ref LL_HRTIM_TIMER_E
5042   * @retval None
5043   */
5044 __STATIC_INLINE void LL_HRTIM_DT_LockRisingSign(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
5045 {
5046   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5047   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
5048                                                               REG_OFFSET_TAB_TIMER[iTimer]));
5049   SET_BIT(*pReg, HRTIM_DTR_DTRSLK);
5050 }
5051 
5052 /**
5053   * @brief  Lock the deadtime value and sign on falling edge.
5054   * @rmtoll DTxR      DTFLK       LL_HRTIM_DT_LockFalling
5055   * @param  HRTIMx High Resolution Timer instance
5056   * @param  Timer This parameter can be one of the following values:
5057   *         @arg @ref LL_HRTIM_TIMER_A
5058   *         @arg @ref LL_HRTIM_TIMER_B
5059   *         @arg @ref LL_HRTIM_TIMER_C
5060   *         @arg @ref LL_HRTIM_TIMER_D
5061   *         @arg @ref LL_HRTIM_TIMER_E
5062   * @retval None
5063   */
5064 __STATIC_INLINE void LL_HRTIM_DT_LockFalling(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
5065 {
5066   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5067   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
5068                                                               REG_OFFSET_TAB_TIMER[iTimer]));
5069   SET_BIT(*pReg, HRTIM_DTR_DTFLK);
5070 }
5071 
5072 /**
5073   * @brief  Lock the deadtime sign on falling edge.
5074   * @rmtoll DTxR      DTFSLK       LL_HRTIM_DT_LockFallingSign
5075   * @param  HRTIMx High Resolution Timer instance
5076   * @param  Timer This parameter can be one of the following values:
5077   *         @arg @ref LL_HRTIM_TIMER_A
5078   *         @arg @ref LL_HRTIM_TIMER_B
5079   *         @arg @ref LL_HRTIM_TIMER_C
5080   *         @arg @ref LL_HRTIM_TIMER_D
5081   *         @arg @ref LL_HRTIM_TIMER_E
5082   * @retval None
5083   */
5084 __STATIC_INLINE void LL_HRTIM_DT_LockFallingSign(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
5085 {
5086   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5087   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].DTxR) +
5088                                                               REG_OFFSET_TAB_TIMER[iTimer]));
5089   SET_BIT(*pReg, HRTIM_DTR_DTFSLK);
5090 }
5091 
5092 /**
5093   * @}
5094   */
5095 
5096 /** @defgroup HRTIM_LL_EF_Chopper_Mode_Configuration Chopper_Mode_Configuration
5097   * @ingroup RTEMSBSPsARMSTM32H7
5098   * @{
5099   */
5100 
5101 /**
5102   * @brief  Configure the chopper stage for a given timer.
5103   * @rmtoll CHPxR      CARFRQ       LL_HRTIM_CHP_Config\n
5104   *         CHPxR      CARDTY       LL_HRTIM_CHP_Config\n
5105   *         CHPxR      STRTPW       LL_HRTIM_CHP_Config
5106   * @note This function must not be called if the chopper mode is already
5107   *       enabled for one of the timer outputs.
5108   * @param  HRTIMx High Resolution Timer instance
5109   * @param  Timer This parameter can be one of the following values:
5110   *         @arg @ref LL_HRTIM_TIMER_A
5111   *         @arg @ref LL_HRTIM_TIMER_B
5112   *         @arg @ref LL_HRTIM_TIMER_C
5113   *         @arg @ref LL_HRTIM_TIMER_D
5114   *         @arg @ref LL_HRTIM_TIMER_E
5115   * @param  Configuration This parameter must be a combination of all the following values:
5116   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV16 or ... or @ref LL_HRTIM_CHP_PRESCALER_DIV256
5117   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_0 or ... or @ref LL_HRTIM_CHP_DUTYCYCLE_875
5118   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_16 or ... or @ref LL_HRTIM_CHP_PULSEWIDTH_256
5119   * @retval None
5120   */
5121 __STATIC_INLINE void LL_HRTIM_CHP_Config(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Configuration)
5122 {
5123   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5124   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CHPxR) +
5125                                                               REG_OFFSET_TAB_TIMER[iTimer]));
5126   MODIFY_REG(*pReg, HRTIM_CHPR_STRPW | HRTIM_CHPR_CARDTY | HRTIM_CHPR_CARFRQ, Configuration);
5127 }
5128 
5129 /**
5130   * @brief  Set prescaler determining the carrier frequency to be added on top
5131   *         of the timer output signals when chopper mode is enabled.
5132   * @rmtoll CHPxR      CARFRQ       LL_HRTIM_CHP_SetPrescaler
5133   * @note This function must not be called if the chopper mode is already
5134   *       enabled for one of the timer outputs.
5135   * @param  HRTIMx High Resolution Timer instance
5136   * @param  Timer This parameter can be one of the following values:
5137   *         @arg @ref LL_HRTIM_TIMER_A
5138   *         @arg @ref LL_HRTIM_TIMER_B
5139   *         @arg @ref LL_HRTIM_TIMER_C
5140   *         @arg @ref LL_HRTIM_TIMER_D
5141   *         @arg @ref LL_HRTIM_TIMER_E
5142   * @param  Prescaler This parameter can be one of the following values:
5143   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV16
5144   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV32
5145   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV48
5146   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV64
5147   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV80
5148   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV96
5149   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV112
5150   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV128
5151   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV144
5152   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV160
5153   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV176
5154   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV192
5155   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV208
5156   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV224
5157   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV240
5158   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV256
5159   * @retval None
5160   */
5161 __STATIC_INLINE void LL_HRTIM_CHP_SetPrescaler(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t Prescaler)
5162 {
5163   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5164   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CHPxR) +
5165                                                               REG_OFFSET_TAB_TIMER[iTimer]));
5166   MODIFY_REG(*pReg, HRTIM_CHPR_CARFRQ, Prescaler);
5167 }
5168 
5169 /**
5170   * @brief  Get actual chopper stage prescaler value.
5171   * @rmtoll CHPxR      CARFRQ       LL_HRTIM_CHP_GetPrescaler
5172   * @param  HRTIMx High Resolution Timer instance
5173   * @param  Timer This parameter can be one of the following values:
5174   *         @arg @ref LL_HRTIM_TIMER_A
5175   *         @arg @ref LL_HRTIM_TIMER_B
5176   *         @arg @ref LL_HRTIM_TIMER_C
5177   *         @arg @ref LL_HRTIM_TIMER_D
5178   *         @arg @ref LL_HRTIM_TIMER_E
5179   * @retval Prescaler This parameter can be one of the following values:
5180   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV16
5181   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV32
5182   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV48
5183   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV64
5184   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV80
5185   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV96
5186   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV112
5187   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV128
5188   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV144
5189   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV160
5190   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV176
5191   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV192
5192   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV208
5193   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV224
5194   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV240
5195   *         @arg @ref LL_HRTIM_CHP_PRESCALER_DIV256
5196   */
5197 __STATIC_INLINE uint32_t LL_HRTIM_CHP_GetPrescaler(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
5198 {
5199   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5200   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CHPxR) +
5201                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
5202   return (READ_BIT(*pReg, HRTIM_CHPR_CARFRQ));
5203 }
5204 
5205 /**
5206   * @brief  Set the chopper duty cycle.
5207   * @rmtoll CHPxR      CARDTY       LL_HRTIM_CHP_SetDutyCycle
5208   * @note Duty cycle can be adjusted by 1/8 step (from 0/8 up to 7/8)
5209   * @note This function must not be called if the chopper mode is already
5210   *       enabled for one of the timer outputs.
5211   * @param  HRTIMx High Resolution Timer instance
5212   * @param  Timer This parameter can be one of the following values:
5213   *         @arg @ref LL_HRTIM_TIMER_A
5214   *         @arg @ref LL_HRTIM_TIMER_B
5215   *         @arg @ref LL_HRTIM_TIMER_C
5216   *         @arg @ref LL_HRTIM_TIMER_D
5217   *         @arg @ref LL_HRTIM_TIMER_E
5218   * @param  DutyCycle This parameter can be one of the following values:
5219   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_0
5220   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_125
5221   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_250
5222   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_375
5223   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_500
5224   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_625
5225   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_750
5226   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_875
5227   * @retval None
5228   */
5229 __STATIC_INLINE void LL_HRTIM_CHP_SetDutyCycle(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t DutyCycle)
5230 {
5231   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5232   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CHPxR) +
5233                                                               REG_OFFSET_TAB_TIMER[iTimer]));
5234   MODIFY_REG(*pReg, HRTIM_CHPR_CARDTY, DutyCycle);
5235 }
5236 
5237 /**
5238   * @brief  Get actual chopper duty cycle.
5239   * @rmtoll CHPxR      CARDTY       LL_HRTIM_CHP_GetDutyCycle
5240   * @param  HRTIMx High Resolution Timer instance
5241   * @param  Timer This parameter can be one of the following values:
5242   *         @arg @ref LL_HRTIM_TIMER_A
5243   *         @arg @ref LL_HRTIM_TIMER_B
5244   *         @arg @ref LL_HRTIM_TIMER_C
5245   *         @arg @ref LL_HRTIM_TIMER_D
5246   *         @arg @ref LL_HRTIM_TIMER_E
5247   * @retval DutyCycle This parameter can be one of the following values:
5248   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_0
5249   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_125
5250   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_250
5251   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_375
5252   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_500
5253   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_625
5254   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_750
5255   *         @arg @ref LL_HRTIM_CHP_DUTYCYCLE_875
5256   */
5257 __STATIC_INLINE uint32_t LL_HRTIM_CHP_GetDutyCycle(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
5258 {
5259   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5260   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CHPxR) +
5261                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
5262   return (READ_BIT(*pReg, HRTIM_CHPR_CARDTY));
5263 }
5264 
5265 /**
5266   * @brief  Set the start pulse width.
5267   * @rmtoll CHPxR      STRPW       LL_HRTIM_CHP_SetPulseWidth
5268   * @note This function must not be called if the chopper mode is already
5269   *       enabled for one of the timer outputs.
5270   * @param  HRTIMx High Resolution Timer instance
5271   * @param  Timer This parameter can be one of the following values:
5272   *         @arg @ref LL_HRTIM_TIMER_A
5273   *         @arg @ref LL_HRTIM_TIMER_B
5274   *         @arg @ref LL_HRTIM_TIMER_C
5275   *         @arg @ref LL_HRTIM_TIMER_D
5276   *         @arg @ref LL_HRTIM_TIMER_E
5277   * @param  PulseWidth This parameter can be one of the following values:
5278   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_16
5279   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_32
5280   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_48
5281   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_64
5282   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_80
5283   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_96
5284   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_112
5285   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_128
5286   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_144
5287   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_160
5288   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_176
5289   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_192
5290   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_208
5291   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_224
5292   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_240
5293   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_256
5294   * @retval None
5295   */
5296 __STATIC_INLINE void LL_HRTIM_CHP_SetPulseWidth(HRTIM_TypeDef *HRTIMx, uint32_t Timer, uint32_t PulseWidth)
5297 {
5298   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5299   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CHPxR) +
5300                                                               REG_OFFSET_TAB_TIMER[iTimer]));
5301   MODIFY_REG(*pReg, HRTIM_CHPR_STRPW, PulseWidth);
5302 }
5303 
5304 /**
5305   * @brief  Get actual start pulse width.
5306   * @rmtoll CHPxR      STRPW       LL_HRTIM_CHP_GetPulseWidth
5307   * @param  HRTIMx High Resolution Timer instance
5308   * @param  Timer This parameter can be one of the following values:
5309   *         @arg @ref LL_HRTIM_TIMER_A
5310   *         @arg @ref LL_HRTIM_TIMER_B
5311   *         @arg @ref LL_HRTIM_TIMER_C
5312   *         @arg @ref LL_HRTIM_TIMER_D
5313   *         @arg @ref LL_HRTIM_TIMER_E
5314   * @retval PulseWidth This parameter can be one of the following values:
5315   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_16
5316   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_32
5317   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_48
5318   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_64
5319   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_80
5320   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_96
5321   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_112
5322   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_128
5323   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_144
5324   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_160
5325   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_176
5326   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_192
5327   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_208
5328   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_224
5329   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_240
5330   *         @arg @ref LL_HRTIM_CHP_PULSEWIDTH_256
5331   */
5332 __STATIC_INLINE uint32_t LL_HRTIM_CHP_GetPulseWidth(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
5333 {
5334   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_TACEN_Pos);
5335   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].CHPxR) +
5336                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
5337   return (READ_BIT(*pReg, HRTIM_CHPR_STRPW));
5338 }
5339 
5340 /**
5341   * @}
5342   */
5343 
5344 /** @defgroup HRTIM_LL_EF_Output_Management Output_Management
5345   * @ingroup RTEMSBSPsARMSTM32H7
5346   * @{
5347   */
5348 
5349 /**
5350   * @brief  Set the timer output set source.
5351   * @rmtoll SETx1R      SST          LL_HRTIM_OUT_SetOutputSetSrc\n
5352   *         SETx1R      RESYNC       LL_HRTIM_OUT_SetOutputSetSrc\n
5353   *         SETx1R      PER          LL_HRTIM_OUT_SetOutputSetSrc\n
5354   *         SETx1R      CMP1         LL_HRTIM_OUT_SetOutputSetSrc\n
5355   *         SETx1R      CMP2         LL_HRTIM_OUT_SetOutputSetSrc\n
5356   *         SETx1R      CMP3         LL_HRTIM_OUT_SetOutputSetSrc\n
5357   *         SETx1R      CMP4         LL_HRTIM_OUT_SetOutputSetSrc\n
5358   *         SETx1R      MSTPER       LL_HRTIM_OUT_SetOutputSetSrc\n
5359   *         SETx1R      MSTCMP1      LL_HRTIM_OUT_SetOutputSetSrc\n
5360   *         SETx1R      MSTCMP2      LL_HRTIM_OUT_SetOutputSetSrc\n
5361   *         SETx1R      MSTCMP3      LL_HRTIM_OUT_SetOutputSetSrc\n
5362   *         SETx1R      MSTCMP4      LL_HRTIM_OUT_SetOutputSetSrc\n
5363   *         SETx1R      TIMEVNT1     LL_HRTIM_OUT_SetOutputSetSrc\n
5364   *         SETx1R      TIMEVNT2     LL_HRTIM_OUT_SetOutputSetSrc\n
5365   *         SETx1R      TIMEVNT3     LL_HRTIM_OUT_SetOutputSetSrc\n
5366   *         SETx1R      TIMEVNT4     LL_HRTIM_OUT_SetOutputSetSrc\n
5367   *         SETx1R      TIMEVNT5     LL_HRTIM_OUT_SetOutputSetSrc\n
5368   *         SETx1R      TIMEVNT6     LL_HRTIM_OUT_SetOutputSetSrc\n
5369   *         SETx1R      TIMEVNT7     LL_HRTIM_OUT_SetOutputSetSrc\n
5370   *         SETx1R      TIMEVNT8     LL_HRTIM_OUT_SetOutputSetSrc\n
5371   *         SETx1R      TIMEVNT9     LL_HRTIM_OUT_SetOutputSetSrc\n
5372   *         SETx1R      EXEVNT1      LL_HRTIM_OUT_SetOutputSetSrc\n
5373   *         SETx1R      EXEVNT2      LL_HRTIM_OUT_SetOutputSetSrc\n
5374   *         SETx1R      EXEVNT3      LL_HRTIM_OUT_SetOutputSetSrc\n
5375   *         SETx1R      EXEVNT4      LL_HRTIM_OUT_SetOutputSetSrc\n
5376   *         SETx1R      EXEVNT5      LL_HRTIM_OUT_SetOutputSetSrc\n
5377   *         SETx1R      EXEVNT6      LL_HRTIM_OUT_SetOutputSetSrc\n
5378   *         SETx1R      EXEVNT7      LL_HRTIM_OUT_SetOutputSetSrc\n
5379   *         SETx1R      EXEVNT8      LL_HRTIM_OUT_SetOutputSetSrc\n
5380   *         SETx1R      EXEVNT9      LL_HRTIM_OUT_SetOutputSetSrc\n
5381   *         SETx1R      EXEVNT10     LL_HRTIM_OUT_SetOutputSetSrc\n
5382   *         SETx1R      UPDATE       LL_HRTIM_OUT_SetOutputSetSrc\n
5383   *         SETx1R      SST          LL_HRTIM_OUT_SetOutputSetSrc\n
5384   *         SETx1R      RESYNC       LL_HRTIM_OUT_SetOutputSetSrc\n
5385   *         SETx1R      PER          LL_HRTIM_OUT_SetOutputSetSrc\n
5386   *         SETx1R      CMP1         LL_HRTIM_OUT_SetOutputSetSrc\n
5387   *         SETx1R      CMP2         LL_HRTIM_OUT_SetOutputSetSrc\n
5388   *         SETx1R      CMP3         LL_HRTIM_OUT_SetOutputSetSrc\n
5389   *         SETx1R      CMP4         LL_HRTIM_OUT_SetOutputSetSrc\n
5390   *         SETx1R      MSTPER       LL_HRTIM_OUT_SetOutputSetSrc\n
5391   *         SETx1R      MSTCMP1      LL_HRTIM_OUT_SetOutputSetSrc\n
5392   *         SETx1R      MSTCMP2      LL_HRTIM_OUT_SetOutputSetSrc\n
5393   *         SETx1R      MSTCMP3      LL_HRTIM_OUT_SetOutputSetSrc\n
5394   *         SETx1R      MSTCMP4      LL_HRTIM_OUT_SetOutputSetSrc\n
5395   *         SETx1R      TIMEVNT1     LL_HRTIM_OUT_SetOutputSetSrc\n
5396   *         SETx1R      TIMEVNT2     LL_HRTIM_OUT_SetOutputSetSrc\n
5397   *         SETx1R      TIMEVNT3     LL_HRTIM_OUT_SetOutputSetSrc\n
5398   *         SETx1R      TIMEVNT4     LL_HRTIM_OUT_SetOutputSetSrc\n
5399   *         SETx1R      TIMEVNT5     LL_HRTIM_OUT_SetOutputSetSrc\n
5400   *         SETx1R      TIMEVNT6     LL_HRTIM_OUT_SetOutputSetSrc\n
5401   *         SETx1R      TIMEVNT7     LL_HRTIM_OUT_SetOutputSetSrc\n
5402   *         SETx1R      TIMEVNT8     LL_HRTIM_OUT_SetOutputSetSrc\n
5403   *         SETx1R      TIMEVNT9     LL_HRTIM_OUT_SetOutputSetSrc\n
5404   *         SETx1R      EXEVNT1      LL_HRTIM_OUT_SetOutputSetSrc\n
5405   *         SETx1R      EXEVNT2      LL_HRTIM_OUT_SetOutputSetSrc\n
5406   *         SETx1R      EXEVNT3      LL_HRTIM_OUT_SetOutputSetSrc\n
5407   *         SETx1R      EXEVNT4      LL_HRTIM_OUT_SetOutputSetSrc\n
5408   *         SETx1R      EXEVNT5      LL_HRTIM_OUT_SetOutputSetSrc\n
5409   *         SETx1R      EXEVNT6      LL_HRTIM_OUT_SetOutputSetSrc\n
5410   *         SETx1R      EXEVNT7      LL_HRTIM_OUT_SetOutputSetSrc\n
5411   *         SETx1R      EXEVNT8      LL_HRTIM_OUT_SetOutputSetSrc\n
5412   *         SETx1R      EXEVNT9      LL_HRTIM_OUT_SetOutputSetSrc\n
5413   *         SETx1R      EXEVNT10     LL_HRTIM_OUT_SetOutputSetSrc\n
5414   *         SETx1R      UPDATE       LL_HRTIM_OUT_SetOutputSetSrc
5415   * @param  HRTIMx High Resolution Timer instance
5416   * @param  Output This parameter can be one of the following values:
5417   *         @arg @ref LL_HRTIM_OUTPUT_TA1
5418   *         @arg @ref LL_HRTIM_OUTPUT_TA2
5419   *         @arg @ref LL_HRTIM_OUTPUT_TB1
5420   *         @arg @ref LL_HRTIM_OUTPUT_TB2
5421   *         @arg @ref LL_HRTIM_OUTPUT_TC1
5422   *         @arg @ref LL_HRTIM_OUTPUT_TC2
5423   *         @arg @ref LL_HRTIM_OUTPUT_TD1
5424   *         @arg @ref LL_HRTIM_OUTPUT_TD2
5425   *         @arg @ref LL_HRTIM_OUTPUT_TE1
5426   *         @arg @ref LL_HRTIM_OUTPUT_TE2
5427   * @param SetSrc This parameter can be a combination of the following values:
5428   *         @arg @ref LL_HRTIM_CROSSBAR_NONE
5429   *         @arg @ref LL_HRTIM_CROSSBAR_RESYNC
5430   *         @arg @ref LL_HRTIM_CROSSBAR_TIMPER
5431   *         @arg @ref LL_HRTIM_CROSSBAR_TIMCMP1
5432   *         @arg @ref LL_HRTIM_CROSSBAR_TIMCMP2
5433   *         @arg @ref LL_HRTIM_CROSSBAR_TIMCMP3
5434   *         @arg @ref LL_HRTIM_CROSSBAR_TIMCMP4
5435   *         @arg @ref LL_HRTIM_CROSSBAR_MASTERPER
5436   *         @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP1
5437   *         @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP2
5438   *         @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP3
5439   *         @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP4
5440   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_1
5441   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_2
5442   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_3
5443   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_4
5444   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_5
5445   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_6
5446   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_7
5447   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_8
5448   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_9
5449   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_1
5450   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_2
5451   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_3
5452   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_4
5453   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_5
5454   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_6
5455   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_7
5456   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_8
5457   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_9
5458   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_10
5459   *         @arg @ref LL_HRTIM_CROSSBAR_UPDATE
5460   * @retval None
5461   */
5462 __STATIC_INLINE void LL_HRTIM_OUT_SetOutputSetSrc(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t SetSrc)
5463 {
5464   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
5465   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].SETx1R) +
5466                                                               REG_OFFSET_TAB_SETxR[iOutput]));
5467   WRITE_REG(*pReg, SetSrc);
5468 }
5469 
5470 /**
5471   * @brief  Get the timer output set source.
5472   * @rmtoll SETx1R      SST          LL_HRTIM_OUT_GetOutputSetSrc\n
5473   *         SETx1R      RESYNC       LL_HRTIM_OUT_GetOutputSetSrc\n
5474   *         SETx1R      PER          LL_HRTIM_OUT_GetOutputSetSrc\n
5475   *         SETx1R      CMP1         LL_HRTIM_OUT_GetOutputSetSrc\n
5476   *         SETx1R      CMP2         LL_HRTIM_OUT_GetOutputSetSrc\n
5477   *         SETx1R      CMP3         LL_HRTIM_OUT_GetOutputSetSrc\n
5478   *         SETx1R      CMP4         LL_HRTIM_OUT_GetOutputSetSrc\n
5479   *         SETx1R      MSTPER       LL_HRTIM_OUT_GetOutputSetSrc\n
5480   *         SETx1R      MSTCMP1      LL_HRTIM_OUT_GetOutputSetSrc\n
5481   *         SETx1R      MSTCMP2      LL_HRTIM_OUT_GetOutputSetSrc\n
5482   *         SETx1R      MSTCMP3      LL_HRTIM_OUT_GetOutputSetSrc\n
5483   *         SETx1R      MSTCMP4      LL_HRTIM_OUT_GetOutputSetSrc\n
5484   *         SETx1R      TIMEVNT1     LL_HRTIM_OUT_GetOutputSetSrc\n
5485   *         SETx1R      TIMEVNT2     LL_HRTIM_OUT_GetOutputSetSrc\n
5486   *         SETx1R      TIMEVNT3     LL_HRTIM_OUT_GetOutputSetSrc\n
5487   *         SETx1R      TIMEVNT4     LL_HRTIM_OUT_GetOutputSetSrc\n
5488   *         SETx1R      TIMEVNT5     LL_HRTIM_OUT_GetOutputSetSrc\n
5489   *         SETx1R      TIMEVNT6     LL_HRTIM_OUT_GetOutputSetSrc\n
5490   *         SETx1R      TIMEVNT7     LL_HRTIM_OUT_GetOutputSetSrc\n
5491   *         SETx1R      TIMEVNT8     LL_HRTIM_OUT_GetOutputSetSrc\n
5492   *         SETx1R      TIMEVNT9     LL_HRTIM_OUT_GetOutputSetSrc\n
5493   *         SETx1R      EXEVNT1      LL_HRTIM_OUT_GetOutputSetSrc\n
5494   *         SETx1R      EXEVNT2      LL_HRTIM_OUT_GetOutputSetSrc\n
5495   *         SETx1R      EXEVNT3      LL_HRTIM_OUT_GetOutputSetSrc\n
5496   *         SETx1R      EXEVNT4      LL_HRTIM_OUT_GetOutputSetSrc\n
5497   *         SETx1R      EXEVNT5      LL_HRTIM_OUT_GetOutputSetSrc\n
5498   *         SETx1R      EXEVNT6      LL_HRTIM_OUT_GetOutputSetSrc\n
5499   *         SETx1R      EXEVNT7      LL_HRTIM_OUT_GetOutputSetSrc\n
5500   *         SETx1R      EXEVNT8      LL_HRTIM_OUT_GetOutputSetSrc\n
5501   *         SETx1R      EXEVNT9      LL_HRTIM_OUT_GetOutputSetSrc\n
5502   *         SETx1R      EXEVNT10     LL_HRTIM_OUT_GetOutputSetSrc\n
5503   *         SETx1R      UPDATE       LL_HRTIM_OUT_GetOutputSetSrc\n
5504   *         SETx1R      SST          LL_HRTIM_OUT_GetOutputSetSrc\n
5505   *         SETx1R      RESYNC       LL_HRTIM_OUT_GetOutputSetSrc\n
5506   *         SETx1R      PER          LL_HRTIM_OUT_GetOutputSetSrc\n
5507   *         SETx1R      CMP1         LL_HRTIM_OUT_GetOutputSetSrc\n
5508   *         SETx1R      CMP2         LL_HRTIM_OUT_GetOutputSetSrc\n
5509   *         SETx1R      CMP3         LL_HRTIM_OUT_GetOutputSetSrc\n
5510   *         SETx1R      CMP4         LL_HRTIM_OUT_GetOutputSetSrc\n
5511   *         SETx1R      MSTPER       LL_HRTIM_OUT_GetOutputSetSrc\n
5512   *         SETx1R      MSTCMP1      LL_HRTIM_OUT_GetOutputSetSrc\n
5513   *         SETx1R      MSTCMP2      LL_HRTIM_OUT_GetOutputSetSrc\n
5514   *         SETx1R      MSTCMP3      LL_HRTIM_OUT_GetOutputSetSrc\n
5515   *         SETx1R      MSTCMP4      LL_HRTIM_OUT_GetOutputSetSrc\n
5516   *         SETx1R      TIMEVNT1     LL_HRTIM_OUT_GetOutputSetSrc\n
5517   *         SETx1R      TIMEVNT2     LL_HRTIM_OUT_GetOutputSetSrc\n
5518   *         SETx1R      TIMEVNT3     LL_HRTIM_OUT_GetOutputSetSrc\n
5519   *         SETx1R      TIMEVNT4     LL_HRTIM_OUT_GetOutputSetSrc\n
5520   *         SETx1R      TIMEVNT5     LL_HRTIM_OUT_GetOutputSetSrc\n
5521   *         SETx1R      TIMEVNT6     LL_HRTIM_OUT_GetOutputSetSrc\n
5522   *         SETx1R      TIMEVNT7     LL_HRTIM_OUT_GetOutputSetSrc\n
5523   *         SETx1R      TIMEVNT8     LL_HRTIM_OUT_GetOutputSetSrc\n
5524   *         SETx1R      TIMEVNT9     LL_HRTIM_OUT_GetOutputSetSrc\n
5525   *         SETx1R      EXEVNT1      LL_HRTIM_OUT_GetOutputSetSrc\n
5526   *         SETx1R      EXEVNT2      LL_HRTIM_OUT_GetOutputSetSrc\n
5527   *         SETx1R      EXEVNT3      LL_HRTIM_OUT_GetOutputSetSrc\n
5528   *         SETx1R      EXEVNT4      LL_HRTIM_OUT_GetOutputSetSrc\n
5529   *         SETx1R      EXEVNT5      LL_HRTIM_OUT_GetOutputSetSrc\n
5530   *         SETx1R      EXEVNT6      LL_HRTIM_OUT_GetOutputSetSrc\n
5531   *         SETx1R      EXEVNT7      LL_HRTIM_OUT_GetOutputSetSrc\n
5532   *         SETx1R      EXEVNT8      LL_HRTIM_OUT_GetOutputSetSrc\n
5533   *         SETx1R      EXEVNT9      LL_HRTIM_OUT_GetOutputSetSrc\n
5534   *         SETx1R      EXEVNT10     LL_HRTIM_OUT_GetOutputSetSrc\n
5535   *         SETx1R      UPDATE       LL_HRTIM_OUT_GetOutputSetSrc
5536   * @param  HRTIMx High Resolution Timer instance
5537   * @param  Output This parameter can be one of the following values:
5538   *         @arg @ref LL_HRTIM_OUTPUT_TA1
5539   *         @arg @ref LL_HRTIM_OUTPUT_TA2
5540   *         @arg @ref LL_HRTIM_OUTPUT_TB1
5541   *         @arg @ref LL_HRTIM_OUTPUT_TB2
5542   *         @arg @ref LL_HRTIM_OUTPUT_TC1
5543   *         @arg @ref LL_HRTIM_OUTPUT_TC2
5544   *         @arg @ref LL_HRTIM_OUTPUT_TD1
5545   *         @arg @ref LL_HRTIM_OUTPUT_TD2
5546   *         @arg @ref LL_HRTIM_OUTPUT_TE1
5547   *         @arg @ref LL_HRTIM_OUTPUT_TE2
5548   * @retval SetSrc This parameter can be a combination of the following values:
5549   *         @arg @ref LL_HRTIM_CROSSBAR_NONE
5550   *         @arg @ref LL_HRTIM_CROSSBAR_RESYNC
5551   *         @arg @ref LL_HRTIM_CROSSBAR_TIMPER
5552   *         @arg @ref LL_HRTIM_CROSSBAR_TIMCMP1
5553   *         @arg @ref LL_HRTIM_CROSSBAR_TIMCMP2
5554   *         @arg @ref LL_HRTIM_CROSSBAR_TIMCMP3
5555   *         @arg @ref LL_HRTIM_CROSSBAR_TIMCMP4
5556   *         @arg @ref LL_HRTIM_CROSSBAR_MASTERPER
5557   *         @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP1
5558   *         @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP2
5559   *         @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP3
5560   *         @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP4
5561   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_1
5562   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_2
5563   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_3
5564   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_4
5565   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_5
5566   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_6
5567   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_7
5568   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_8
5569   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_9
5570   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_1
5571   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_2
5572   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_3
5573   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_4
5574   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_5
5575   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_6
5576   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_7
5577   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_8
5578   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_9
5579   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_10
5580   *         @arg @ref LL_HRTIM_CROSSBAR_UPDATE
5581   */
5582 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetOutputSetSrc(const HRTIM_TypeDef *HRTIMx, uint32_t Output)
5583 {
5584   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
5585   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].SETx1R) +
5586                                                                     REG_OFFSET_TAB_SETxR[iOutput]));
5587   return (uint32_t) READ_REG(*pReg);
5588 }
5589 
5590 /**
5591   * @brief  Set the timer output reset source.
5592   * @rmtoll RSTx1R      RST          LL_HRTIM_OUT_SetOutputResetSrc\n
5593   *         RSTx1R      RESYNC       LL_HRTIM_OUT_SetOutputResetSrc\n
5594   *         RSTx1R      PER          LL_HRTIM_OUT_SetOutputResetSrc\n
5595   *         RSTx1R      CMP1         LL_HRTIM_OUT_SetOutputResetSrc\n
5596   *         RSTx1R      CMP2         LL_HRTIM_OUT_SetOutputResetSrc\n
5597   *         RSTx1R      CMP3         LL_HRTIM_OUT_SetOutputResetSrc\n
5598   *         RSTx1R      CMP4         LL_HRTIM_OUT_SetOutputResetSrc\n
5599   *         RSTx1R      MSTPER       LL_HRTIM_OUT_SetOutputResetSrc\n
5600   *         RSTx1R      MSTCMP1      LL_HRTIM_OUT_SetOutputResetSrc\n
5601   *         RSTx1R      MSTCMP2      LL_HRTIM_OUT_SetOutputResetSrc\n
5602   *         RSTx1R      MSTCMP3      LL_HRTIM_OUT_SetOutputResetSrc\n
5603   *         RSTx1R      MSTCMP4      LL_HRTIM_OUT_SetOutputResetSrc\n
5604   *         RSTx1R      TIMEVNT1     LL_HRTIM_OUT_SetOutputResetSrc\n
5605   *         RSTx1R      TIMEVNT2     LL_HRTIM_OUT_SetOutputResetSrc\n
5606   *         RSTx1R      TIMEVNT3     LL_HRTIM_OUT_SetOutputResetSrc\n
5607   *         RSTx1R      TIMEVNT4     LL_HRTIM_OUT_SetOutputResetSrc\n
5608   *         RSTx1R      TIMEVNT5     LL_HRTIM_OUT_SetOutputResetSrc\n
5609   *         RSTx1R      TIMEVNT6     LL_HRTIM_OUT_SetOutputResetSrc\n
5610   *         RSTx1R      TIMEVNT7     LL_HRTIM_OUT_SetOutputResetSrc\n
5611   *         RSTx1R      TIMEVNT8     LL_HRTIM_OUT_SetOutputResetSrc\n
5612   *         RSTx1R      TIMEVNT9     LL_HRTIM_OUT_SetOutputResetSrc\n
5613   *         RSTx1R      EXEVNT1      LL_HRTIM_OUT_SetOutputResetSrc\n
5614   *         RSTx1R      EXEVNT2      LL_HRTIM_OUT_SetOutputResetSrc\n
5615   *         RSTx1R      EXEVNT3      LL_HRTIM_OUT_SetOutputResetSrc\n
5616   *         RSTx1R      EXEVNT4      LL_HRTIM_OUT_SetOutputResetSrc\n
5617   *         RSTx1R      EXEVNT5      LL_HRTIM_OUT_SetOutputResetSrc\n
5618   *         RSTx1R      EXEVNT6      LL_HRTIM_OUT_SetOutputResetSrc\n
5619   *         RSTx1R      EXEVNT7      LL_HRTIM_OUT_SetOutputResetSrc\n
5620   *         RSTx1R      EXEVNT8      LL_HRTIM_OUT_SetOutputResetSrc\n
5621   *         RSTx1R      EXEVNT9      LL_HRTIM_OUT_SetOutputResetSrc\n
5622   *         RSTx1R      EXEVNT10     LL_HRTIM_OUT_SetOutputResetSrc\n
5623   *         RSTx1R      UPDATE       LL_HRTIM_OUT_SetOutputResetSrc\n
5624   *         RSTx1R      RST          LL_HRTIM_OUT_SetOutputResetSrc\n
5625   *         RSTx1R      RESYNC       LL_HRTIM_OUT_SetOutputResetSrc\n
5626   *         RSTx1R      PER          LL_HRTIM_OUT_SetOutputResetSrc\n
5627   *         RSTx1R      CMP1         LL_HRTIM_OUT_SetOutputResetSrc\n
5628   *         RSTx1R      CMP2         LL_HRTIM_OUT_SetOutputResetSrc\n
5629   *         RSTx1R      CMP3         LL_HRTIM_OUT_SetOutputResetSrc\n
5630   *         RSTx1R      CMP4         LL_HRTIM_OUT_SetOutputResetSrc\n
5631   *         RSTx1R      MSTPER       LL_HRTIM_OUT_SetOutputResetSrc\n
5632   *         RSTx1R      MSTCMP1      LL_HRTIM_OUT_SetOutputResetSrc\n
5633   *         RSTx1R      MSTCMP2      LL_HRTIM_OUT_SetOutputResetSrc\n
5634   *         RSTx1R      MSTCMP3      LL_HRTIM_OUT_SetOutputResetSrc\n
5635   *         RSTx1R      MSTCMP4      LL_HRTIM_OUT_SetOutputResetSrc\n
5636   *         RSTx1R      TIMEVNT1     LL_HRTIM_OUT_SetOutputResetSrc\n
5637   *         RSTx1R      TIMEVNT2     LL_HRTIM_OUT_SetOutputResetSrc\n
5638   *         RSTx1R      TIMEVNT3     LL_HRTIM_OUT_SetOutputResetSrc\n
5639   *         RSTx1R      TIMEVNT4     LL_HRTIM_OUT_SetOutputResetSrc\n
5640   *         RSTx1R      TIMEVNT5     LL_HRTIM_OUT_SetOutputResetSrc\n
5641   *         RSTx1R      TIMEVNT6     LL_HRTIM_OUT_SetOutputResetSrc\n
5642   *         RSTx1R      TIMEVNT7     LL_HRTIM_OUT_SetOutputResetSrc\n
5643   *         RSTx1R      TIMEVNT8     LL_HRTIM_OUT_SetOutputResetSrc\n
5644   *         RSTx1R      TIMEVNT9     LL_HRTIM_OUT_SetOutputResetSrc\n
5645   *         RSTx1R      EXEVNT1      LL_HRTIM_OUT_SetOutputResetSrc\n
5646   *         RSTx1R      EXEVNT2      LL_HRTIM_OUT_SetOutputResetSrc\n
5647   *         RSTx1R      EXEVNT3      LL_HRTIM_OUT_SetOutputResetSrc\n
5648   *         RSTx1R      EXEVNT4      LL_HRTIM_OUT_SetOutputResetSrc\n
5649   *         RSTx1R      EXEVNT5      LL_HRTIM_OUT_SetOutputResetSrc\n
5650   *         RSTx1R      EXEVNT6      LL_HRTIM_OUT_SetOutputResetSrc\n
5651   *         RSTx1R      EXEVNT7      LL_HRTIM_OUT_SetOutputResetSrc\n
5652   *         RSTx1R      EXEVNT8      LL_HRTIM_OUT_SetOutputResetSrc\n
5653   *         RSTx1R      EXEVNT9      LL_HRTIM_OUT_SetOutputResetSrc\n
5654   *         RSTx1R      EXEVNT10     LL_HRTIM_OUT_SetOutputResetSrc\n
5655   *         RSTx1R      UPDATE       LL_HRTIM_OUT_SetOutputResetSrc
5656   * @param  HRTIMx High Resolution Timer instance
5657   * @param  Output This parameter can be one of the following values:
5658   *         @arg @ref LL_HRTIM_OUTPUT_TA1
5659   *         @arg @ref LL_HRTIM_OUTPUT_TA2
5660   *         @arg @ref LL_HRTIM_OUTPUT_TB1
5661   *         @arg @ref LL_HRTIM_OUTPUT_TB2
5662   *         @arg @ref LL_HRTIM_OUTPUT_TC1
5663   *         @arg @ref LL_HRTIM_OUTPUT_TC2
5664   *         @arg @ref LL_HRTIM_OUTPUT_TD1
5665   *         @arg @ref LL_HRTIM_OUTPUT_TD2
5666   *         @arg @ref LL_HRTIM_OUTPUT_TE1
5667   *         @arg @ref LL_HRTIM_OUTPUT_TE2
5668   * @param ResetSrc This parameter can be a combination of the following values:
5669   *         @arg @ref LL_HRTIM_CROSSBAR_NONE
5670   *         @arg @ref LL_HRTIM_CROSSBAR_RESYNC
5671   *         @arg @ref LL_HRTIM_CROSSBAR_TIMPER
5672   *         @arg @ref LL_HRTIM_CROSSBAR_TIMCMP1
5673   *         @arg @ref LL_HRTIM_CROSSBAR_TIMCMP2
5674   *         @arg @ref LL_HRTIM_CROSSBAR_TIMCMP3
5675   *         @arg @ref LL_HRTIM_CROSSBAR_TIMCMP4
5676   *         @arg @ref LL_HRTIM_CROSSBAR_MASTERPER
5677   *         @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP1
5678   *         @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP2
5679   *         @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP3
5680   *         @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP4
5681   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_1
5682   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_2
5683   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_3
5684   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_4
5685   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_5
5686   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_6
5687   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_7
5688   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_8
5689   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_9
5690   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_1
5691   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_2
5692   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_3
5693   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_4
5694   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_5
5695   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_6
5696   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_7
5697   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_8
5698   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_9
5699   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_10
5700   *         @arg @ref LL_HRTIM_CROSSBAR_UPDATE
5701   * @retval None
5702   */
5703 __STATIC_INLINE void LL_HRTIM_OUT_SetOutputResetSrc(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t ResetSrc)
5704 {
5705   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
5706   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].RSTx1R) +
5707                                                               REG_OFFSET_TAB_SETxR[iOutput]));
5708   WRITE_REG(*pReg, ResetSrc);
5709 }
5710 
5711 /**
5712   * @brief  Get the timer output set source.
5713   * @rmtoll RSTx1R      RST          LL_HRTIM_OUT_GetOutputResetSrc\n
5714   *         RSTx1R      RESYNC       LL_HRTIM_OUT_GetOutputResetSrc\n
5715   *         RSTx1R      PER          LL_HRTIM_OUT_GetOutputResetSrc\n
5716   *         RSTx1R      CMP1         LL_HRTIM_OUT_GetOutputResetSrc\n
5717   *         RSTx1R      CMP2         LL_HRTIM_OUT_GetOutputResetSrc\n
5718   *         RSTx1R      CMP3         LL_HRTIM_OUT_GetOutputResetSrc\n
5719   *         RSTx1R      CMP4         LL_HRTIM_OUT_GetOutputResetSrc\n
5720   *         RSTx1R      MSTPER       LL_HRTIM_OUT_GetOutputResetSrc\n
5721   *         RSTx1R      MSTCMP1      LL_HRTIM_OUT_GetOutputResetSrc\n
5722   *         RSTx1R      MSTCMP2      LL_HRTIM_OUT_GetOutputResetSrc\n
5723   *         RSTx1R      MSTCMP3      LL_HRTIM_OUT_GetOutputResetSrc\n
5724   *         RSTx1R      MSTCMP4      LL_HRTIM_OUT_GetOutputResetSrc\n
5725   *         RSTx1R      TIMEVNT1     LL_HRTIM_OUT_GetOutputResetSrc\n
5726   *         RSTx1R      TIMEVNT2     LL_HRTIM_OUT_GetOutputResetSrc\n
5727   *         RSTx1R      TIMEVNT3     LL_HRTIM_OUT_GetOutputResetSrc\n
5728   *         RSTx1R      TIMEVNT4     LL_HRTIM_OUT_GetOutputResetSrc\n
5729   *         RSTx1R      TIMEVNT5     LL_HRTIM_OUT_GetOutputResetSrc\n
5730   *         RSTx1R      TIMEVNT6     LL_HRTIM_OUT_GetOutputResetSrc\n
5731   *         RSTx1R      TIMEVNT7     LL_HRTIM_OUT_GetOutputResetSrc\n
5732   *         RSTx1R      TIMEVNT8     LL_HRTIM_OUT_GetOutputResetSrc\n
5733   *         RSTx1R      TIMEVNT9     LL_HRTIM_OUT_GetOutputResetSrc\n
5734   *         RSTx1R      EXEVNT1      LL_HRTIM_OUT_GetOutputResetSrc\n
5735   *         RSTx1R      EXEVNT2      LL_HRTIM_OUT_GetOutputResetSrc\n
5736   *         RSTx1R      EXEVNT3      LL_HRTIM_OUT_GetOutputResetSrc\n
5737   *         RSTx1R      EXEVNT4      LL_HRTIM_OUT_GetOutputResetSrc\n
5738   *         RSTx1R      EXEVNT5      LL_HRTIM_OUT_GetOutputResetSrc\n
5739   *         RSTx1R      EXEVNT6      LL_HRTIM_OUT_GetOutputResetSrc\n
5740   *         RSTx1R      EXEVNT7      LL_HRTIM_OUT_GetOutputResetSrc\n
5741   *         RSTx1R      EXEVNT8      LL_HRTIM_OUT_GetOutputResetSrc\n
5742   *         RSTx1R      EXEVNT9      LL_HRTIM_OUT_GetOutputResetSrc\n
5743   *         RSTx1R      EXEVNT10     LL_HRTIM_OUT_GetOutputResetSrc\n
5744   *         RSTx1R      UPDATE       LL_HRTIM_OUT_GetOutputResetSrc\n
5745   *         RSTx1R      RST          LL_HRTIM_OUT_GetOutputResetSrc\n
5746   *         RSTx1R      RESYNC       LL_HRTIM_OUT_GetOutputResetSrc\n
5747   *         RSTx1R      PER          LL_HRTIM_OUT_GetOutputResetSrc\n
5748   *         RSTx1R      CMP1         LL_HRTIM_OUT_GetOutputResetSrc\n
5749   *         RSTx1R      CMP2         LL_HRTIM_OUT_GetOutputResetSrc\n
5750   *         RSTx1R      CMP3         LL_HRTIM_OUT_GetOutputResetSrc\n
5751   *         RSTx1R      CMP4         LL_HRTIM_OUT_GetOutputResetSrc\n
5752   *         RSTx1R      MSTPER       LL_HRTIM_OUT_GetOutputResetSrc\n
5753   *         RSTx1R      MSTCMP1      LL_HRTIM_OUT_GetOutputResetSrc\n
5754   *         RSTx1R      MSTCMP2      LL_HRTIM_OUT_GetOutputResetSrc\n
5755   *         RSTx1R      MSTCMP3      LL_HRTIM_OUT_GetOutputResetSrc\n
5756   *         RSTx1R      MSTCMP4      LL_HRTIM_OUT_GetOutputResetSrc\n
5757   *         RSTx1R      TIMEVNT1     LL_HRTIM_OUT_GetOutputResetSrc\n
5758   *         RSTx1R      TIMEVNT2     LL_HRTIM_OUT_GetOutputResetSrc\n
5759   *         RSTx1R      TIMEVNT3     LL_HRTIM_OUT_GetOutputResetSrc\n
5760   *         RSTx1R      TIMEVNT4     LL_HRTIM_OUT_GetOutputResetSrc\n
5761   *         RSTx1R      TIMEVNT5     LL_HRTIM_OUT_GetOutputResetSrc\n
5762   *         RSTx1R      TIMEVNT6     LL_HRTIM_OUT_GetOutputResetSrc\n
5763   *         RSTx1R      TIMEVNT7     LL_HRTIM_OUT_GetOutputResetSrc\n
5764   *         RSTx1R      TIMEVNT8     LL_HRTIM_OUT_GetOutputResetSrc\n
5765   *         RSTx1R      TIMEVNT9     LL_HRTIM_OUT_GetOutputResetSrc\n
5766   *         RSTx1R      EXEVNT1      LL_HRTIM_OUT_GetOutputResetSrc\n
5767   *         RSTx1R      EXEVNT2      LL_HRTIM_OUT_GetOutputResetSrc\n
5768   *         RSTx1R      EXEVNT3      LL_HRTIM_OUT_GetOutputResetSrc\n
5769   *         RSTx1R      EXEVNT4      LL_HRTIM_OUT_GetOutputResetSrc\n
5770   *         RSTx1R      EXEVNT5      LL_HRTIM_OUT_GetOutputResetSrc\n
5771   *         RSTx1R      EXEVNT6      LL_HRTIM_OUT_GetOutputResetSrc\n
5772   *         RSTx1R      EXEVNT7      LL_HRTIM_OUT_GetOutputResetSrc\n
5773   *         RSTx1R      EXEVNT8      LL_HRTIM_OUT_GetOutputResetSrc\n
5774   *         RSTx1R      EXEVNT9      LL_HRTIM_OUT_GetOutputResetSrc\n
5775   *         RSTx1R      EXEVNT10     LL_HRTIM_OUT_GetOutputResetSrc\n
5776   *         RSTx1R      UPDATE       LL_HRTIM_OUT_GetOutputResetSrc
5777   * @param  HRTIMx High Resolution Timer instance
5778   * @param  Output This parameter can be one of the following values:
5779   *         @arg @ref LL_HRTIM_OUTPUT_TA1
5780   *         @arg @ref LL_HRTIM_OUTPUT_TA2
5781   *         @arg @ref LL_HRTIM_OUTPUT_TB1
5782   *         @arg @ref LL_HRTIM_OUTPUT_TB2
5783   *         @arg @ref LL_HRTIM_OUTPUT_TC1
5784   *         @arg @ref LL_HRTIM_OUTPUT_TC2
5785   *         @arg @ref LL_HRTIM_OUTPUT_TD1
5786   *         @arg @ref LL_HRTIM_OUTPUT_TD2
5787   *         @arg @ref LL_HRTIM_OUTPUT_TE1
5788   *         @arg @ref LL_HRTIM_OUTPUT_TE2
5789   * @retval ResetSrc This parameter can be a combination of the following values:
5790   *         @arg @ref LL_HRTIM_CROSSBAR_NONE
5791   *         @arg @ref LL_HRTIM_CROSSBAR_RESYNC
5792   *         @arg @ref LL_HRTIM_CROSSBAR_TIMPER
5793   *         @arg @ref LL_HRTIM_CROSSBAR_TIMCMP1
5794   *         @arg @ref LL_HRTIM_CROSSBAR_TIMCMP2
5795   *         @arg @ref LL_HRTIM_CROSSBAR_TIMCMP3
5796   *         @arg @ref LL_HRTIM_CROSSBAR_TIMCMP4
5797   *         @arg @ref LL_HRTIM_CROSSBAR_MASTERPER
5798   *         @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP1
5799   *         @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP2
5800   *         @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP3
5801   *         @arg @ref LL_HRTIM_CROSSBAR_MASTERCMP4
5802   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_1
5803   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_2
5804   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_3
5805   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_4
5806   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_5
5807   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_6
5808   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_7
5809   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_8
5810   *         @arg @ref LL_HRTIM_CROSSBAR_TIMEV_9
5811   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_1
5812   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_2
5813   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_3
5814   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_4
5815   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_5
5816   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_6
5817   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_7
5818   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_8
5819   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_9
5820   *         @arg @ref LL_HRTIM_CROSSBAR_EEV_10
5821   *         @arg @ref LL_HRTIM_CROSSBAR_UPDATE
5822   */
5823 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetOutputResetSrc(const HRTIM_TypeDef *HRTIMx, uint32_t Output)
5824 {
5825   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
5826   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].RSTx1R) +
5827                                                                     REG_OFFSET_TAB_SETxR[iOutput]));
5828   return (uint32_t) READ_REG(*pReg);
5829 }
5830 
5831 /**
5832   * @brief  Configure a timer output.
5833   * @rmtoll OUTxR      POL1          LL_HRTIM_OUT_Config\n
5834   *         OUTxR      IDLEM1        LL_HRTIM_OUT_Config\n
5835   *         OUTxR      IDLES1        LL_HRTIM_OUT_Config\n
5836   *         OUTxR      FAULT1        LL_HRTIM_OUT_Config\n
5837   *         OUTxR      CHP1          LL_HRTIM_OUT_Config\n
5838   *         OUTxR      DIDL1         LL_HRTIM_OUT_Config\n
5839   *         OUTxR      POL2          LL_HRTIM_OUT_Config\n
5840   *         OUTxR      IDLEM2        LL_HRTIM_OUT_Config\n
5841   *         OUTxR      IDLES2        LL_HRTIM_OUT_Config\n
5842   *         OUTxR      FAULT2        LL_HRTIM_OUT_Config\n
5843   *         OUTxR      CHP2          LL_HRTIM_OUT_Config\n
5844   *         OUTxR      DIDL2         LL_HRTIM_OUT_Config
5845   * @param  HRTIMx High Resolution Timer instance
5846   * @param  Output This parameter can be one of the following values:
5847   *         @arg @ref LL_HRTIM_OUTPUT_TA1
5848   *         @arg @ref LL_HRTIM_OUTPUT_TA2
5849   *         @arg @ref LL_HRTIM_OUTPUT_TB1
5850   *         @arg @ref LL_HRTIM_OUTPUT_TB2
5851   *         @arg @ref LL_HRTIM_OUTPUT_TC1
5852   *         @arg @ref LL_HRTIM_OUTPUT_TC2
5853   *         @arg @ref LL_HRTIM_OUTPUT_TD1
5854   *         @arg @ref LL_HRTIM_OUTPUT_TD2
5855   *         @arg @ref LL_HRTIM_OUTPUT_TE1
5856   *         @arg @ref LL_HRTIM_OUTPUT_TE2
5857   * @param  Configuration This parameter must be a combination of all the following values:
5858   *         @arg @ref LL_HRTIM_OUT_POSITIVE_POLARITY or @ref LL_HRTIM_OUT_NEGATIVE_POLARITY
5859   *         @arg @ref LL_HRTIM_OUT_NO_IDLE or @ref LL_HRTIM_OUT_IDLE_WHEN_BURST
5860   *         @arg @ref LL_HRTIM_OUT_IDLELEVEL_INACTIVE or @ref LL_HRTIM_OUT_IDLELEVEL_ACTIVE
5861   *         @arg @ref LL_HRTIM_OUT_FAULTSTATE_NO_ACTION or @ref LL_HRTIM_OUT_FAULTSTATE_ACTIVE or @ref LL_HRTIM_OUT_FAULTSTATE_INACTIVE or @ref LL_HRTIM_OUT_FAULTSTATE_HIGHZ
5862   *         @arg @ref LL_HRTIM_OUT_CHOPPERMODE_DISABLED or @ref LL_HRTIM_OUT_CHOPPERMODE_ENABLED
5863   *         @arg @ref LL_HRTIM_OUT_BM_ENTRYMODE_REGULAR or @ref LL_HRTIM_OUT_BM_ENTRYMODE_DELAYED
5864   * @retval None
5865   */
5866 __STATIC_INLINE void LL_HRTIM_OUT_Config(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t Configuration)
5867 {
5868   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
5869   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
5870                                                               REG_OFFSET_TAB_OUTxR[iOutput]));
5871   MODIFY_REG(*pReg, (HRTIM_OUT_CONFIG_MASK << REG_SHIFT_TAB_OUTxR[iOutput]),
5872              (Configuration << REG_SHIFT_TAB_OUTxR[iOutput]));
5873 }
5874 
5875 /**
5876   * @brief  Set the polarity of a timer output.
5877   * @rmtoll OUTxR      POL1          LL_HRTIM_OUT_SetPolarity\n
5878   *         OUTxR      POL2          LL_HRTIM_OUT_SetPolarity
5879   * @param  HRTIMx High Resolution Timer instance
5880   * @param  Output This parameter can be one of the following values:
5881   *         @arg @ref LL_HRTIM_OUTPUT_TA1
5882   *         @arg @ref LL_HRTIM_OUTPUT_TA2
5883   *         @arg @ref LL_HRTIM_OUTPUT_TB1
5884   *         @arg @ref LL_HRTIM_OUTPUT_TB2
5885   *         @arg @ref LL_HRTIM_OUTPUT_TC1
5886   *         @arg @ref LL_HRTIM_OUTPUT_TC2
5887   *         @arg @ref LL_HRTIM_OUTPUT_TD1
5888   *         @arg @ref LL_HRTIM_OUTPUT_TD2
5889   *         @arg @ref LL_HRTIM_OUTPUT_TE1
5890   *         @arg @ref LL_HRTIM_OUTPUT_TE2
5891   * @param  Polarity This parameter can be one of the following values:
5892   *         @arg @ref LL_HRTIM_OUT_POSITIVE_POLARITY
5893   *         @arg @ref LL_HRTIM_OUT_NEGATIVE_POLARITY
5894   * @retval None
5895   */
5896 __STATIC_INLINE void LL_HRTIM_OUT_SetPolarity(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t Polarity)
5897 {
5898   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
5899   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
5900                                                               REG_OFFSET_TAB_OUTxR[iOutput]));
5901   MODIFY_REG(*pReg, (HRTIM_OUTR_POL1 << REG_SHIFT_TAB_OUTxR[iOutput]), (Polarity << REG_SHIFT_TAB_OUTxR[iOutput]));
5902 }
5903 
5904 /**
5905   * @brief  Get actual polarity of the timer output.
5906   * @rmtoll OUTxR      POL1          LL_HRTIM_OUT_GetPolarity\n
5907   *         OUTxR      POL2          LL_HRTIM_OUT_GetPolarity
5908   * @param  HRTIMx High Resolution Timer instance
5909   * @param  Output This parameter can be one of the following values:
5910   *         @arg @ref LL_HRTIM_OUTPUT_TA1
5911   *         @arg @ref LL_HRTIM_OUTPUT_TA2
5912   *         @arg @ref LL_HRTIM_OUTPUT_TB1
5913   *         @arg @ref LL_HRTIM_OUTPUT_TB2
5914   *         @arg @ref LL_HRTIM_OUTPUT_TC1
5915   *         @arg @ref LL_HRTIM_OUTPUT_TC2
5916   *         @arg @ref LL_HRTIM_OUTPUT_TD1
5917   *         @arg @ref LL_HRTIM_OUTPUT_TD2
5918   *         @arg @ref LL_HRTIM_OUTPUT_TE1
5919   *         @arg @ref LL_HRTIM_OUTPUT_TE2
5920   * @retval Polarity This parameter can be one of the following values:
5921   *         @arg @ref LL_HRTIM_OUT_POSITIVE_POLARITY
5922   *         @arg @ref LL_HRTIM_OUT_NEGATIVE_POLARITY
5923   */
5924 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetPolarity(const HRTIM_TypeDef *HRTIMx, uint32_t Output)
5925 {
5926   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
5927   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
5928                                                                     REG_OFFSET_TAB_OUTxR[iOutput]));
5929   return (READ_BIT(*pReg, (uint32_t)(HRTIM_OUTR_POL1) << REG_SHIFT_TAB_OUTxR[iOutput]) >> REG_SHIFT_TAB_OUTxR[iOutput]);
5930 }
5931 
5932 /**
5933   * @brief  Set the output IDLE mode.
5934   * @rmtoll OUTxR      IDLEM1          LL_HRTIM_OUT_SetIdleMode\n
5935   *         OUTxR      IDLEM2          LL_HRTIM_OUT_SetIdleMode
5936   * @note This function must not be called when the burst mode is active
5937   * @param  HRTIMx High Resolution Timer instance
5938   * @param  Output This parameter can be one of the following values:
5939   *         @arg @ref LL_HRTIM_OUTPUT_TA1
5940   *         @arg @ref LL_HRTIM_OUTPUT_TA2
5941   *         @arg @ref LL_HRTIM_OUTPUT_TB1
5942   *         @arg @ref LL_HRTIM_OUTPUT_TB2
5943   *         @arg @ref LL_HRTIM_OUTPUT_TC1
5944   *         @arg @ref LL_HRTIM_OUTPUT_TC2
5945   *         @arg @ref LL_HRTIM_OUTPUT_TD1
5946   *         @arg @ref LL_HRTIM_OUTPUT_TD2
5947   *         @arg @ref LL_HRTIM_OUTPUT_TE1
5948   *         @arg @ref LL_HRTIM_OUTPUT_TE2
5949   * @param  IdleMode This parameter can be one of the following values:
5950   *         @arg @ref LL_HRTIM_OUT_NO_IDLE
5951   *         @arg @ref LL_HRTIM_OUT_IDLE_WHEN_BURST
5952   * @retval None
5953   */
5954 __STATIC_INLINE void LL_HRTIM_OUT_SetIdleMode(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t IdleMode)
5955 {
5956   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
5957   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
5958                                                               REG_OFFSET_TAB_OUTxR[iOutput]));
5959   MODIFY_REG(*pReg, (HRTIM_OUTR_IDLM1 << (REG_SHIFT_TAB_OUTxR[iOutput])), (IdleMode << (REG_SHIFT_TAB_OUTxR[iOutput])));
5960 }
5961 
5962 /**
5963   * @brief  Get actual output IDLE mode.
5964   * @rmtoll OUTxR      IDLEM1          LL_HRTIM_OUT_GetIdleMode\n
5965   *         OUTxR      IDLEM2          LL_HRTIM_OUT_GetIdleMode
5966   * @param  HRTIMx High Resolution Timer instance
5967   * @param  Output This parameter can be one of the following values:
5968   *         @arg @ref LL_HRTIM_OUTPUT_TA1
5969   *         @arg @ref LL_HRTIM_OUTPUT_TA2
5970   *         @arg @ref LL_HRTIM_OUTPUT_TB1
5971   *         @arg @ref LL_HRTIM_OUTPUT_TB2
5972   *         @arg @ref LL_HRTIM_OUTPUT_TC1
5973   *         @arg @ref LL_HRTIM_OUTPUT_TC2
5974   *         @arg @ref LL_HRTIM_OUTPUT_TD1
5975   *         @arg @ref LL_HRTIM_OUTPUT_TD2
5976   *         @arg @ref LL_HRTIM_OUTPUT_TE1
5977   *         @arg @ref LL_HRTIM_OUTPUT_TE2
5978   * @retval IdleMode This parameter can be one of the following values:
5979   *         @arg @ref LL_HRTIM_OUT_NO_IDLE
5980   *         @arg @ref LL_HRTIM_OUT_IDLE_WHEN_BURST
5981   */
5982 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetIdleMode(const HRTIM_TypeDef *HRTIMx, uint32_t Output)
5983 {
5984   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
5985   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
5986                                                                     REG_OFFSET_TAB_OUTxR[iOutput]));
5987   return (READ_BIT(*pReg, (uint32_t)(HRTIM_OUTR_IDLM1) << REG_SHIFT_TAB_OUTxR[iOutput]) >> REG_SHIFT_TAB_OUTxR[iOutput]);
5988 }
5989 
5990 /**
5991   * @brief  Set the output IDLE level.
5992   * @rmtoll OUTxR      IDLES1          LL_HRTIM_OUT_SetIdleLevel\n
5993   *         OUTxR      IDLES2          LL_HRTIM_OUT_SetIdleLevel
5994   * @note This function must be called prior enabling the timer.
5995   * @note Idle level isn't relevant when the output idle mode is set to LL_HRTIM_OUT_NO_IDLE.
5996   * @param  HRTIMx High Resolution Timer instance
5997   * @param  Output This parameter can be one of the following values:
5998   *         @arg @ref LL_HRTIM_OUTPUT_TA1
5999   *         @arg @ref LL_HRTIM_OUTPUT_TA2
6000   *         @arg @ref LL_HRTIM_OUTPUT_TB1
6001   *         @arg @ref LL_HRTIM_OUTPUT_TB2
6002   *         @arg @ref LL_HRTIM_OUTPUT_TC1
6003   *         @arg @ref LL_HRTIM_OUTPUT_TC2
6004   *         @arg @ref LL_HRTIM_OUTPUT_TD1
6005   *         @arg @ref LL_HRTIM_OUTPUT_TD2
6006   *         @arg @ref LL_HRTIM_OUTPUT_TE1
6007   *         @arg @ref LL_HRTIM_OUTPUT_TE2
6008   * @param  IdleLevel This parameter can be one of the following values:
6009   *         @arg @ref LL_HRTIM_OUT_IDLELEVEL_INACTIVE
6010   *         @arg @ref LL_HRTIM_OUT_IDLELEVEL_ACTIVE
6011   * @retval None
6012   */
6013 __STATIC_INLINE void LL_HRTIM_OUT_SetIdleLevel(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t IdleLevel)
6014 {
6015   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
6016   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
6017                                                               REG_OFFSET_TAB_OUTxR[iOutput]));
6018   MODIFY_REG(*pReg, (HRTIM_OUTR_IDLES1 << REG_SHIFT_TAB_OUTxR[iOutput]), (IdleLevel << REG_SHIFT_TAB_OUTxR[iOutput]));
6019 }
6020 
6021 /**
6022   * @brief  Get actual output IDLE level.
6023   * @rmtoll OUTxR      IDLES1          LL_HRTIM_OUT_GetIdleLevel\n
6024   *         OUTxR      IDLES2          LL_HRTIM_OUT_GetIdleLevel
6025   * @param  HRTIMx High Resolution Timer instance
6026   * @param  Output This parameter can be one of the following values:
6027   *         @arg @ref LL_HRTIM_OUTPUT_TA1
6028   *         @arg @ref LL_HRTIM_OUTPUT_TA2
6029   *         @arg @ref LL_HRTIM_OUTPUT_TB1
6030   *         @arg @ref LL_HRTIM_OUTPUT_TB2
6031   *         @arg @ref LL_HRTIM_OUTPUT_TC1
6032   *         @arg @ref LL_HRTIM_OUTPUT_TC2
6033   *         @arg @ref LL_HRTIM_OUTPUT_TD1
6034   *         @arg @ref LL_HRTIM_OUTPUT_TD2
6035   *         @arg @ref LL_HRTIM_OUTPUT_TE1
6036   *         @arg @ref LL_HRTIM_OUTPUT_TE2
6037   * @retval IdleLevel This parameter can be one of the following values:
6038   *         @arg @ref LL_HRTIM_OUT_IDLELEVEL_INACTIVE
6039   *         @arg @ref LL_HRTIM_OUT_IDLELEVEL_ACTIVE
6040   */
6041 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetIdleLevel(const HRTIM_TypeDef *HRTIMx, uint32_t Output)
6042 {
6043   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
6044   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
6045                                                                     REG_OFFSET_TAB_OUTxR[iOutput]));
6046   return (READ_BIT(*pReg, (uint32_t)(HRTIM_OUTR_IDLES1) << REG_SHIFT_TAB_OUTxR[iOutput]) >> REG_SHIFT_TAB_OUTxR[iOutput]);
6047 }
6048 
6049 /**
6050   * @brief  Set the output FAULT state.
6051   * @rmtoll OUTxR      FAULT1          LL_HRTIM_OUT_SetFaultState\n
6052   *         OUTxR      FAULT2          LL_HRTIM_OUT_SetFaultState
6053   * @note This function must not called when the timer is enabled and a fault
6054   *       channel is enabled at timer level.
6055   * @param  HRTIMx High Resolution Timer instance
6056   * @param  Output This parameter can be one of the following values:
6057   *         @arg @ref LL_HRTIM_OUTPUT_TA1
6058   *         @arg @ref LL_HRTIM_OUTPUT_TA2
6059   *         @arg @ref LL_HRTIM_OUTPUT_TB1
6060   *         @arg @ref LL_HRTIM_OUTPUT_TB2
6061   *         @arg @ref LL_HRTIM_OUTPUT_TC1
6062   *         @arg @ref LL_HRTIM_OUTPUT_TC2
6063   *         @arg @ref LL_HRTIM_OUTPUT_TD1
6064   *         @arg @ref LL_HRTIM_OUTPUT_TD2
6065   *         @arg @ref LL_HRTIM_OUTPUT_TE1
6066   *         @arg @ref LL_HRTIM_OUTPUT_TE2
6067   * @param  FaultState This parameter can be one of the following values:
6068   *         @arg @ref LL_HRTIM_OUT_FAULTSTATE_NO_ACTION
6069   *         @arg @ref LL_HRTIM_OUT_FAULTSTATE_ACTIVE
6070   *         @arg @ref LL_HRTIM_OUT_FAULTSTATE_INACTIVE
6071   *         @arg @ref LL_HRTIM_OUT_FAULTSTATE_HIGHZ
6072   * @retval None
6073   */
6074 __STATIC_INLINE void LL_HRTIM_OUT_SetFaultState(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t FaultState)
6075 {
6076   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
6077   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
6078                                                               REG_OFFSET_TAB_OUTxR[iOutput]));
6079   MODIFY_REG(*pReg, (HRTIM_OUTR_FAULT1 << REG_SHIFT_TAB_OUTxR[iOutput]), (FaultState << REG_SHIFT_TAB_OUTxR[iOutput]));
6080 }
6081 
6082 /**
6083   * @brief  Get actual FAULT state.
6084   * @rmtoll OUTxR      FAULT1          LL_HRTIM_OUT_GetFaultState\n
6085   *         OUTxR      FAULT2          LL_HRTIM_OUT_GetFaultState
6086   * @param  HRTIMx High Resolution Timer instance
6087   * @param  Output This parameter can be one of the following values:
6088   *         @arg @ref LL_HRTIM_OUTPUT_TA1
6089   *         @arg @ref LL_HRTIM_OUTPUT_TA2
6090   *         @arg @ref LL_HRTIM_OUTPUT_TB1
6091   *         @arg @ref LL_HRTIM_OUTPUT_TB2
6092   *         @arg @ref LL_HRTIM_OUTPUT_TC1
6093   *         @arg @ref LL_HRTIM_OUTPUT_TC2
6094   *         @arg @ref LL_HRTIM_OUTPUT_TD1
6095   *         @arg @ref LL_HRTIM_OUTPUT_TD2
6096   *         @arg @ref LL_HRTIM_OUTPUT_TE1
6097   *         @arg @ref LL_HRTIM_OUTPUT_TE2
6098   * @retval FaultState This parameter can be one of the following values:
6099   *         @arg @ref LL_HRTIM_OUT_FAULTSTATE_NO_ACTION
6100   *         @arg @ref LL_HRTIM_OUT_FAULTSTATE_ACTIVE
6101   *         @arg @ref LL_HRTIM_OUT_FAULTSTATE_INACTIVE
6102   *         @arg @ref LL_HRTIM_OUT_FAULTSTATE_HIGHZ
6103   */
6104 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetFaultState(const HRTIM_TypeDef *HRTIMx, uint32_t Output)
6105 {
6106   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
6107   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
6108                                                                     REG_OFFSET_TAB_OUTxR[iOutput]));
6109   return (READ_BIT(*pReg, (uint32_t)(HRTIM_OUTR_FAULT1) << REG_SHIFT_TAB_OUTxR[iOutput]) >> REG_SHIFT_TAB_OUTxR[iOutput]);
6110 }
6111 
6112 /**
6113   * @brief  Set the output chopper mode.
6114   * @rmtoll OUTxR      CHP1          LL_HRTIM_OUT_SetChopperMode\n
6115   *         OUTxR      CHP2          LL_HRTIM_OUT_SetChopperMode
6116   * @note This function must not called when the timer is enabled.
6117   * @param  HRTIMx High Resolution Timer instance
6118   * @param  Output This parameter can be one of the following values:
6119   *         @arg @ref LL_HRTIM_OUTPUT_TA1
6120   *         @arg @ref LL_HRTIM_OUTPUT_TA2
6121   *         @arg @ref LL_HRTIM_OUTPUT_TB1
6122   *         @arg @ref LL_HRTIM_OUTPUT_TB2
6123   *         @arg @ref LL_HRTIM_OUTPUT_TC1
6124   *         @arg @ref LL_HRTIM_OUTPUT_TC2
6125   *         @arg @ref LL_HRTIM_OUTPUT_TD1
6126   *         @arg @ref LL_HRTIM_OUTPUT_TD2
6127   *         @arg @ref LL_HRTIM_OUTPUT_TE1
6128   *         @arg @ref LL_HRTIM_OUTPUT_TE2
6129   * @param  ChopperMode This parameter can be one of the following values:
6130   *         @arg @ref LL_HRTIM_OUT_CHOPPERMODE_DISABLED
6131   *         @arg @ref LL_HRTIM_OUT_CHOPPERMODE_ENABLED
6132   * @retval None
6133   */
6134 __STATIC_INLINE void LL_HRTIM_OUT_SetChopperMode(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t ChopperMode)
6135 {
6136   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
6137   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
6138                                                               REG_OFFSET_TAB_OUTxR[iOutput]));
6139   MODIFY_REG(*pReg, (HRTIM_OUTR_CHP1 << REG_SHIFT_TAB_OUTxR[iOutput]), (ChopperMode << REG_SHIFT_TAB_OUTxR[iOutput]));
6140 }
6141 
6142 /**
6143   * @brief  Get actual output chopper mode
6144   * @rmtoll OUTxR      CHP1          LL_HRTIM_OUT_GetChopperMode\n
6145   *         OUTxR      CHP2          LL_HRTIM_OUT_GetChopperMode
6146   * @param  HRTIMx High Resolution Timer instance
6147   * @param  Output This parameter can be one of the following values:
6148   *         @arg @ref LL_HRTIM_OUTPUT_TA1
6149   *         @arg @ref LL_HRTIM_OUTPUT_TA2
6150   *         @arg @ref LL_HRTIM_OUTPUT_TB1
6151   *         @arg @ref LL_HRTIM_OUTPUT_TB2
6152   *         @arg @ref LL_HRTIM_OUTPUT_TC1
6153   *         @arg @ref LL_HRTIM_OUTPUT_TC2
6154   *         @arg @ref LL_HRTIM_OUTPUT_TD1
6155   *         @arg @ref LL_HRTIM_OUTPUT_TD2
6156   *         @arg @ref LL_HRTIM_OUTPUT_TE1
6157   *         @arg @ref LL_HRTIM_OUTPUT_TE2
6158   * @retval ChopperMode This parameter can be one of the following values:
6159   *         @arg @ref LL_HRTIM_OUT_CHOPPERMODE_DISABLED
6160   *         @arg @ref LL_HRTIM_OUT_CHOPPERMODE_ENABLED
6161   */
6162 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetChopperMode(const HRTIM_TypeDef *HRTIMx, uint32_t Output)
6163 {
6164   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
6165   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
6166                                                                     REG_OFFSET_TAB_OUTxR[iOutput]));
6167   return (READ_BIT(*pReg, (uint32_t)(HRTIM_OUTR_CHP1) << REG_SHIFT_TAB_OUTxR[iOutput]) >> REG_SHIFT_TAB_OUTxR[iOutput]);
6168 }
6169 
6170 /**
6171   * @brief  Set the output burst mode entry mode.
6172   * @rmtoll OUTxR      DIDL1          LL_HRTIM_OUT_SetBMEntryMode\n
6173   *         OUTxR      DIDL2          LL_HRTIM_OUT_SetBMEntryMode
6174   * @note This function must not called when the timer is enabled.
6175   * @param  HRTIMx High Resolution Timer instance
6176   * @param  Output This parameter can be one of the following values:
6177   *         @arg @ref LL_HRTIM_OUTPUT_TA1
6178   *         @arg @ref LL_HRTIM_OUTPUT_TA2
6179   *         @arg @ref LL_HRTIM_OUTPUT_TB1
6180   *         @arg @ref LL_HRTIM_OUTPUT_TB2
6181   *         @arg @ref LL_HRTIM_OUTPUT_TC1
6182   *         @arg @ref LL_HRTIM_OUTPUT_TC2
6183   *         @arg @ref LL_HRTIM_OUTPUT_TD1
6184   *         @arg @ref LL_HRTIM_OUTPUT_TD2
6185   *         @arg @ref LL_HRTIM_OUTPUT_TE1
6186   *         @arg @ref LL_HRTIM_OUTPUT_TE2
6187   * @param  BMEntryMode This parameter can be one of the following values:
6188   *         @arg @ref LL_HRTIM_OUT_BM_ENTRYMODE_REGULAR
6189   *         @arg @ref LL_HRTIM_OUT_BM_ENTRYMODE_DELAYED
6190   * @retval None
6191   */
6192 __STATIC_INLINE void LL_HRTIM_OUT_SetBMEntryMode(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t BMEntryMode)
6193 {
6194   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
6195   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
6196                                                               REG_OFFSET_TAB_OUTxR[iOutput]));
6197   MODIFY_REG(*pReg, (HRTIM_OUTR_DIDL1 << REG_SHIFT_TAB_OUTxR[iOutput]), (BMEntryMode << REG_SHIFT_TAB_OUTxR[iOutput]));
6198 }
6199 
6200 /**
6201   * @brief  Get actual output burst mode entry mode.
6202   * @rmtoll OUTxR      DIDL1          LL_HRTIM_OUT_GetBMEntryMode\n
6203   *         OUTxR      DIDL2          LL_HRTIM_OUT_GetBMEntryMode
6204   * @param  HRTIMx High Resolution Timer instance
6205   * @param  Output This parameter can be one of the following values:
6206   *         @arg @ref LL_HRTIM_OUTPUT_TA1
6207   *         @arg @ref LL_HRTIM_OUTPUT_TA2
6208   *         @arg @ref LL_HRTIM_OUTPUT_TB1
6209   *         @arg @ref LL_HRTIM_OUTPUT_TB2
6210   *         @arg @ref LL_HRTIM_OUTPUT_TC1
6211   *         @arg @ref LL_HRTIM_OUTPUT_TC2
6212   *         @arg @ref LL_HRTIM_OUTPUT_TD1
6213   *         @arg @ref LL_HRTIM_OUTPUT_TD2
6214   *         @arg @ref LL_HRTIM_OUTPUT_TE1
6215   *         @arg @ref LL_HRTIM_OUTPUT_TE2
6216   * @retval BMEntryMode This parameter can be one of the following values:
6217   *         @arg @ref LL_HRTIM_OUT_BM_ENTRYMODE_REGULAR
6218   *         @arg @ref LL_HRTIM_OUT_BM_ENTRYMODE_DELAYED
6219   */
6220 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetBMEntryMode(const HRTIM_TypeDef *HRTIMx, uint32_t Output)
6221 {
6222   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
6223   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].OUTxR) +
6224                                                                     REG_OFFSET_TAB_OUTxR[iOutput]));
6225   return (READ_BIT(*pReg, (uint32_t)(HRTIM_OUTR_DIDL1) << REG_SHIFT_TAB_OUTxR[iOutput]) >> REG_SHIFT_TAB_OUTxR[iOutput]);
6226 }
6227 
6228 /**
6229   * @brief  Get the level (active or inactive) of the designated output when the
6230   *         delayed protection was triggered.
6231   * @rmtoll TIMxISR      O1SRSR          LL_HRTIM_OUT_GetDLYPRTOutStatus\n
6232   *         TIMxISR      O2SRSR          LL_HRTIM_OUT_GetDLYPRTOutStatus
6233   * @param  HRTIMx High Resolution Timer instance
6234   * @param  Output This parameter can be one of the following values:
6235   *         @arg @ref LL_HRTIM_OUTPUT_TA1
6236   *         @arg @ref LL_HRTIM_OUTPUT_TA2
6237   *         @arg @ref LL_HRTIM_OUTPUT_TB1
6238   *         @arg @ref LL_HRTIM_OUTPUT_TB2
6239   *         @arg @ref LL_HRTIM_OUTPUT_TC1
6240   *         @arg @ref LL_HRTIM_OUTPUT_TC2
6241   *         @arg @ref LL_HRTIM_OUTPUT_TD1
6242   *         @arg @ref LL_HRTIM_OUTPUT_TD2
6243   *         @arg @ref LL_HRTIM_OUTPUT_TE1
6244   *         @arg @ref LL_HRTIM_OUTPUT_TE2
6245   * @retval OutputLevel This parameter can be one of the following values:
6246   *         @arg @ref LL_HRTIM_OUT_LEVEL_INACTIVE
6247   *         @arg @ref LL_HRTIM_OUT_LEVEL_ACTIVE
6248   */
6249 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetDLYPRTOutStatus(const HRTIM_TypeDef *HRTIMx, uint32_t Output)
6250 {
6251   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
6252   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxISR) +
6253                                                                     REG_OFFSET_TAB_OUTxR[iOutput]));
6254   return ((READ_BIT(*pReg, (uint32_t)(HRTIM_TIMISR_O1STAT) << REG_SHIFT_TAB_OxSTAT[iOutput]) >> REG_SHIFT_TAB_OxSTAT[iOutput]) >>
6255           HRTIM_TIMISR_O1STAT_Pos);
6256 }
6257 
6258 /**
6259   * @brief  Force the timer output to its active or inactive level.
6260   * @rmtoll SETx1R      SST          LL_HRTIM_OUT_ForceLevel\n
6261   *         RSTx1R      SRT          LL_HRTIM_OUT_ForceLevel\n
6262   *         SETx2R      SST          LL_HRTIM_OUT_ForceLevel\n
6263   *         RSTx2R      SRT          LL_HRTIM_OUT_ForceLevel
6264   * @param  HRTIMx High Resolution Timer instance
6265   * @param  Output This parameter can be one of the following values:
6266   *         @arg @ref LL_HRTIM_OUTPUT_TA1
6267   *         @arg @ref LL_HRTIM_OUTPUT_TA2
6268   *         @arg @ref LL_HRTIM_OUTPUT_TB1
6269   *         @arg @ref LL_HRTIM_OUTPUT_TB2
6270   *         @arg @ref LL_HRTIM_OUTPUT_TC1
6271   *         @arg @ref LL_HRTIM_OUTPUT_TC2
6272   *         @arg @ref LL_HRTIM_OUTPUT_TD1
6273   *         @arg @ref LL_HRTIM_OUTPUT_TD2
6274   *         @arg @ref LL_HRTIM_OUTPUT_TE1
6275   *         @arg @ref LL_HRTIM_OUTPUT_TE2
6276   * @param  OutputLevel This parameter can be one of the following values:
6277   *         @arg @ref LL_HRTIM_OUT_LEVEL_INACTIVE
6278   *         @arg @ref LL_HRTIM_OUT_LEVEL_ACTIVE
6279   * @retval None
6280   */
6281 __STATIC_INLINE void LL_HRTIM_OUT_ForceLevel(HRTIM_TypeDef *HRTIMx, uint32_t Output, uint32_t OutputLevel)
6282 {
6283   const uint8_t REG_OFFSET_TAB_OUT_LEVEL[] =
6284   {
6285     0x04U,   /* 0: LL_HRTIM_OUT_LEVEL_INACTIVE  */
6286     0x00U    /* 1: LL_HRTIM_OUT_LEVEL_ACTIVE  */
6287   };
6288 
6289   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
6290   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].SETx1R) +
6291                                                               REG_OFFSET_TAB_SETxR[iOutput] + REG_OFFSET_TAB_OUT_LEVEL[OutputLevel]));
6292   SET_BIT(*pReg, HRTIM_SET1R_SST);
6293 }
6294 
6295 /**
6296   * @brief  Get actual output level, before the output stage (chopper, polarity).
6297   * @rmtoll TIMxISR     O1CPY          LL_HRTIM_OUT_GetLevel\n
6298   *         TIMxISR     O2CPY          LL_HRTIM_OUT_GetLevel
6299   * @param  HRTIMx High Resolution Timer instance
6300   * @param  Output This parameter can be one of the following values:
6301   *         @arg @ref LL_HRTIM_OUTPUT_TA1
6302   *         @arg @ref LL_HRTIM_OUTPUT_TA2
6303   *         @arg @ref LL_HRTIM_OUTPUT_TB1
6304   *         @arg @ref LL_HRTIM_OUTPUT_TB2
6305   *         @arg @ref LL_HRTIM_OUTPUT_TC1
6306   *         @arg @ref LL_HRTIM_OUTPUT_TC2
6307   *         @arg @ref LL_HRTIM_OUTPUT_TD1
6308   *         @arg @ref LL_HRTIM_OUTPUT_TD2
6309   *         @arg @ref LL_HRTIM_OUTPUT_TE1
6310   *         @arg @ref LL_HRTIM_OUTPUT_TE2
6311   * @retval OutputLevel This parameter can be one of the following values:
6312   *         @arg @ref LL_HRTIM_OUT_LEVEL_INACTIVE
6313   *         @arg @ref LL_HRTIM_OUT_LEVEL_ACTIVE
6314   */
6315 __STATIC_INLINE uint32_t LL_HRTIM_OUT_GetLevel(const HRTIM_TypeDef *HRTIMx, uint32_t Output)
6316 {
6317   uint32_t iOutput = (uint8_t)(POSITION_VAL(Output) - POSITION_VAL(LL_HRTIM_OUTPUT_TA1));
6318   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sTimerxRegs[0].TIMxISR) +
6319                                                                     REG_OFFSET_TAB_OUTxR[iOutput]));
6320   return ((READ_BIT(*pReg, (uint32_t)(HRTIM_TIMISR_O1CPY) << REG_SHIFT_TAB_OxSTAT[iOutput]) >> REG_SHIFT_TAB_OxSTAT[iOutput]) >>
6321           HRTIM_TIMISR_O1CPY_Pos);
6322 }
6323 
6324 /**
6325   * @}
6326   */
6327 
6328 /** @defgroup HRTIM_LL_EF_External_Event_management External_Event_management
6329   * @ingroup RTEMSBSPsARMSTM32H7
6330   * @{
6331   */
6332 
6333 /**
6334   * @brief  Configure external event conditioning.
6335   * @rmtoll EECR1     EE1SRC          LL_HRTIM_EE_Config\n
6336   *         EECR1     EE1POL          LL_HRTIM_EE_Config\n
6337   *         EECR1     EE1SNS          LL_HRTIM_EE_Config\n
6338   *         EECR1     EE1FAST         LL_HRTIM_EE_Config\n
6339   *         EECR1     EE2SRC          LL_HRTIM_EE_Config\n
6340   *         EECR1     EE2POL          LL_HRTIM_EE_Config\n
6341   *         EECR1     EE2SNS          LL_HRTIM_EE_Config\n
6342   *         EECR1     EE2FAST         LL_HRTIM_EE_Config\n
6343   *         EECR1     EE3SRC          LL_HRTIM_EE_Config\n
6344   *         EECR1     EE3POL          LL_HRTIM_EE_Config\n
6345   *         EECR1     EE3SNS          LL_HRTIM_EE_Config\n
6346   *         EECR1     EE3FAST         LL_HRTIM_EE_Config\n
6347   *         EECR1     EE4SRC          LL_HRTIM_EE_Config\n
6348   *         EECR1     EE4POL          LL_HRTIM_EE_Config\n
6349   *         EECR1     EE4SNS          LL_HRTIM_EE_Config\n
6350   *         EECR1     EE4FAST         LL_HRTIM_EE_Config\n
6351   *         EECR1     EE5SRC          LL_HRTIM_EE_Config\n
6352   *         EECR1     EE5POL          LL_HRTIM_EE_Config\n
6353   *         EECR1     EE5SNS          LL_HRTIM_EE_Config\n
6354   *         EECR1     EE5FAST         LL_HRTIM_EE_Config\n
6355   *         EECR2     EE6SRC          LL_HRTIM_EE_Config\n
6356   *         EECR2     EE6POL          LL_HRTIM_EE_Config\n
6357   *         EECR2     EE6SNS          LL_HRTIM_EE_Config\n
6358   *         EECR2     EE6FAST         LL_HRTIM_EE_Config\n
6359   *         EECR2     EE7SRC          LL_HRTIM_EE_Config\n
6360   *         EECR2     EE7POL          LL_HRTIM_EE_Config\n
6361   *         EECR2     EE7SNS          LL_HRTIM_EE_Config\n
6362   *         EECR2     EE7FAST         LL_HRTIM_EE_Config\n
6363   *         EECR2     EE8SRC          LL_HRTIM_EE_Config\n
6364   *         EECR2     EE8POL          LL_HRTIM_EE_Config\n
6365   *         EECR2     EE8SNS          LL_HRTIM_EE_Config\n
6366   *         EECR2     EE8FAST         LL_HRTIM_EE_Config\n
6367   *         EECR2     EE9SRC          LL_HRTIM_EE_Config\n
6368   *         EECR2     EE9POL          LL_HRTIM_EE_Config\n
6369   *         EECR2     EE9SNS          LL_HRTIM_EE_Config\n
6370   *         EECR2     EE9FAST         LL_HRTIM_EE_Config\n
6371   *         EECR2     EE10SRC         LL_HRTIM_EE_Config\n
6372   *         EECR2     EE10POL         LL_HRTIM_EE_Config\n
6373   *         EECR2     EE10SNS         LL_HRTIM_EE_Config\n
6374   *         EECR2     EE10FAST        LL_HRTIM_EE_Config
6375   * @note This function must not be called when the timer counter is enabled.
6376   * @note Event source (EExSrc1..EExSRC4) mapping depends on configured event channel.
6377   * @note Fast mode is available only for LL_HRTIM_EVENT_1..5.
6378   * @param  HRTIMx High Resolution Timer instance
6379   * @param  Event This parameter can be one of the following values:
6380   *         @arg @ref LL_HRTIM_EVENT_1
6381   *         @arg @ref LL_HRTIM_EVENT_2
6382   *         @arg @ref LL_HRTIM_EVENT_3
6383   *         @arg @ref LL_HRTIM_EVENT_4
6384   *         @arg @ref LL_HRTIM_EVENT_5
6385   *         @arg @ref LL_HRTIM_EVENT_6
6386   *         @arg @ref LL_HRTIM_EVENT_7
6387   *         @arg @ref LL_HRTIM_EVENT_8
6388   *         @arg @ref LL_HRTIM_EVENT_9
6389   *         @arg @ref LL_HRTIM_EVENT_10
6390   * @param  Configuration This parameter must be a combination of all the following values:
6391   *         @arg External event source 1 or External event source 2 or External event source 3 or External event source 4
6392   *         @arg @ref LL_HRTIM_EE_POLARITY_HIGH or @ref LL_HRTIM_EE_POLARITY_LOW
6393   *         @arg @ref LL_HRTIM_EE_SENSITIVITY_LEVEL or @ref LL_HRTIM_EE_SENSITIVITY_RISINGEDGE or @ref LL_HRTIM_EE_SENSITIVITY_FALLINGEDGE or @ref LL_HRTIM_EE_SENSITIVITY_BOTHEDGES
6394   *         @arg @ref LL_HRTIM_EE_FASTMODE_DISABLE or @ref LL_HRTIM_EE_FASTMODE_ENABLE
6395   * @retval None
6396   */
6397 __STATIC_INLINE void LL_HRTIM_EE_Config(HRTIM_TypeDef *HRTIMx, uint32_t Event, uint32_t Configuration)
6398 {
6399   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
6400   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) +
6401                                                               REG_OFFSET_TAB_EECR[iEvent]));
6402   MODIFY_REG(*pReg, (HRTIM_EE_CONFIG_MASK << REG_SHIFT_TAB_EExSRC[iEvent]),
6403              (Configuration << REG_SHIFT_TAB_EExSRC[iEvent]));
6404 }
6405 
6406 /**
6407   * @brief  Set the external event source.
6408   * @rmtoll EECR1     EE1SRC          LL_HRTIM_EE_SetSrc\n
6409   *         EECR1     EE2SRC          LL_HRTIM_EE_SetSrc\n
6410   *         EECR1     EE3SRC          LL_HRTIM_EE_SetSrc\n
6411   *         EECR1     EE4SRC          LL_HRTIM_EE_SetSrc\n
6412   *         EECR1     EE5SRC          LL_HRTIM_EE_SetSrc\n
6413   *         EECR2     EE6SRC          LL_HRTIM_EE_SetSrc\n
6414   *         EECR2     EE7SRC          LL_HRTIM_EE_SetSrc\n
6415   *         EECR2     EE8SRC          LL_HRTIM_EE_SetSrc\n
6416   *         EECR2     EE9SRC          LL_HRTIM_EE_SetSrc\n
6417   *         EECR2     EE10SRC         LL_HRTIM_EE_SetSrc
6418   * @param  HRTIMx High Resolution Timer instance
6419   * @param  Event This parameter can be one of the following values:
6420   *         @arg @ref LL_HRTIM_EVENT_1
6421   *         @arg @ref LL_HRTIM_EVENT_2
6422   *         @arg @ref LL_HRTIM_EVENT_3
6423   *         @arg @ref LL_HRTIM_EVENT_4
6424   *         @arg @ref LL_HRTIM_EVENT_5
6425   *         @arg @ref LL_HRTIM_EVENT_6
6426   *         @arg @ref LL_HRTIM_EVENT_7
6427   *         @arg @ref LL_HRTIM_EVENT_8
6428   *         @arg @ref LL_HRTIM_EVENT_9
6429   *         @arg @ref LL_HRTIM_EVENT_10
6430   * @param  Src This parameter can be one of the following values:
6431   *         @arg External event source 1
6432   *         @arg External event source 2
6433   *         @arg External event source 3
6434   *         @arg External event source 4
6435   * @retval None
6436   */
6437 __STATIC_INLINE void LL_HRTIM_EE_SetSrc(HRTIM_TypeDef *HRTIMx, uint32_t Event, uint32_t Src)
6438 {
6439   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
6440   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) +
6441                                                               REG_OFFSET_TAB_EECR[iEvent]));
6442   MODIFY_REG(*pReg, (HRTIM_EECR1_EE1SRC << REG_SHIFT_TAB_EExSRC[iEvent]), (Src << REG_SHIFT_TAB_EExSRC[iEvent]));
6443 }
6444 
6445 /**
6446   * @brief  Get actual external event source.
6447   * @rmtoll EECR1     EE1SRC          LL_HRTIM_EE_GetSrc\n
6448   *         EECR1     EE2SRC          LL_HRTIM_EE_GetSrc\n
6449   *         EECR1     EE3SRC          LL_HRTIM_EE_GetSrc\n
6450   *         EECR1     EE4SRC          LL_HRTIM_EE_GetSrc\n
6451   *         EECR1     EE5SRC          LL_HRTIM_EE_GetSrc\n
6452   *         EECR2     EE6SRC          LL_HRTIM_EE_GetSrc\n
6453   *         EECR2     EE7SRC          LL_HRTIM_EE_GetSrc\n
6454   *         EECR2     EE8SRC          LL_HRTIM_EE_GetSrc\n
6455   *         EECR2     EE9SRC          LL_HRTIM_EE_GetSrc\n
6456   *         EECR2     EE10SRC         LL_HRTIM_EE_GetSrc
6457   * @param  HRTIMx High Resolution Timer instance
6458   * @param  Event This parameter can be one of the following values:
6459   *         @arg @ref LL_HRTIM_EVENT_1
6460   *         @arg @ref LL_HRTIM_EVENT_2
6461   *         @arg @ref LL_HRTIM_EVENT_3
6462   *         @arg @ref LL_HRTIM_EVENT_4
6463   *         @arg @ref LL_HRTIM_EVENT_5
6464   *         @arg @ref LL_HRTIM_EVENT_6
6465   *         @arg @ref LL_HRTIM_EVENT_7
6466   *         @arg @ref LL_HRTIM_EVENT_8
6467   *         @arg @ref LL_HRTIM_EVENT_9
6468   *         @arg @ref LL_HRTIM_EVENT_10
6469   * @retval EventSrc This parameter can be one of the following values:
6470   *         @arg External event source 1
6471   *         @arg External event source 2
6472   *         @arg External event source 3
6473   *         @arg External event source 4
6474   */
6475 __STATIC_INLINE uint32_t LL_HRTIM_EE_GetSrc(const HRTIM_TypeDef *HRTIMx, uint32_t Event)
6476 {
6477   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
6478   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) +
6479                                                                     REG_OFFSET_TAB_EECR[iEvent]));
6480   return (READ_BIT(*pReg, (uint32_t)(HRTIM_EECR1_EE1SRC) << REG_SHIFT_TAB_EExSRC[iEvent]) >>  REG_SHIFT_TAB_EExSRC[iEvent]);
6481 }
6482 
6483 /**
6484   * @brief  Set the polarity of an external event.
6485   * @rmtoll EECR1     EE1POL          LL_HRTIM_EE_SetPolarity\n
6486   *         EECR1     EE2POL          LL_HRTIM_EE_SetPolarity\n
6487   *         EECR1     EE3POL          LL_HRTIM_EE_SetPolarity\n
6488   *         EECR1     EE4POL          LL_HRTIM_EE_SetPolarity\n
6489   *         EECR1     EE5POL          LL_HRTIM_EE_SetPolarity\n
6490   *         EECR2     EE6POL          LL_HRTIM_EE_SetPolarity\n
6491   *         EECR2     EE7POL          LL_HRTIM_EE_SetPolarity\n
6492   *         EECR2     EE8POL          LL_HRTIM_EE_SetPolarity\n
6493   *         EECR2     EE9POL          LL_HRTIM_EE_SetPolarity\n
6494   *         EECR2     EE10POL         LL_HRTIM_EE_SetPolarity
6495   * @note This function must not be called when the timer counter is enabled.
6496   * @note Event polarity is only significant when event detection is level-sensitive.
6497   * @param  HRTIMx High Resolution Timer instance
6498   * @param  Event This parameter can be one of the following values:
6499   *         @arg @ref LL_HRTIM_EVENT_1
6500   *         @arg @ref LL_HRTIM_EVENT_2
6501   *         @arg @ref LL_HRTIM_EVENT_3
6502   *         @arg @ref LL_HRTIM_EVENT_4
6503   *         @arg @ref LL_HRTIM_EVENT_5
6504   *         @arg @ref LL_HRTIM_EVENT_6
6505   *         @arg @ref LL_HRTIM_EVENT_7
6506   *         @arg @ref LL_HRTIM_EVENT_8
6507   *         @arg @ref LL_HRTIM_EVENT_9
6508   *         @arg @ref LL_HRTIM_EVENT_10
6509   * @param  Polarity This parameter can be one of the following values:
6510   *         @arg @ref LL_HRTIM_EE_POLARITY_HIGH
6511   *         @arg @ref LL_HRTIM_EE_POLARITY_LOW
6512   * @retval None
6513   */
6514 __STATIC_INLINE void LL_HRTIM_EE_SetPolarity(HRTIM_TypeDef *HRTIMx, uint32_t Event, uint32_t Polarity)
6515 {
6516   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
6517   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) +
6518                                                               REG_OFFSET_TAB_EECR[iEvent]));
6519   MODIFY_REG(*pReg, (HRTIM_EECR1_EE1POL << REG_SHIFT_TAB_EExSRC[iEvent]), (Polarity << REG_SHIFT_TAB_EExSRC[iEvent]));
6520 }
6521 
6522 /**
6523   * @brief  Get actual polarity setting of an external event.
6524   * @rmtoll EECR1     EE1POL          LL_HRTIM_EE_GetPolarity\n
6525   *         EECR1     EE2POL          LL_HRTIM_EE_GetPolarity\n
6526   *         EECR1     EE3POL          LL_HRTIM_EE_GetPolarity\n
6527   *         EECR1     EE4POL          LL_HRTIM_EE_GetPolarity\n
6528   *         EECR1     EE5POL          LL_HRTIM_EE_GetPolarity\n
6529   *         EECR2     EE6POL          LL_HRTIM_EE_GetPolarity\n
6530   *         EECR2     EE7POL          LL_HRTIM_EE_GetPolarity\n
6531   *         EECR2     EE8POL          LL_HRTIM_EE_GetPolarity\n
6532   *         EECR2     EE9POL          LL_HRTIM_EE_GetPolarity\n
6533   *         EECR2     EE10POL         LL_HRTIM_EE_GetPolarity
6534   * @param  HRTIMx High Resolution Timer instance
6535   * @param  Event This parameter can be one of the following values:
6536   *         @arg @ref LL_HRTIM_EVENT_1
6537   *         @arg @ref LL_HRTIM_EVENT_2
6538   *         @arg @ref LL_HRTIM_EVENT_3
6539   *         @arg @ref LL_HRTIM_EVENT_4
6540   *         @arg @ref LL_HRTIM_EVENT_5
6541   *         @arg @ref LL_HRTIM_EVENT_6
6542   *         @arg @ref LL_HRTIM_EVENT_7
6543   *         @arg @ref LL_HRTIM_EVENT_8
6544   *         @arg @ref LL_HRTIM_EVENT_9
6545   *         @arg @ref LL_HRTIM_EVENT_10
6546   * @retval Polarity This parameter can be one of the following values:
6547   *         @arg @ref LL_HRTIM_EE_POLARITY_HIGH
6548   *         @arg @ref LL_HRTIM_EE_POLARITY_LOW
6549   */
6550 __STATIC_INLINE uint32_t LL_HRTIM_EE_GetPolarity(const HRTIM_TypeDef *HRTIMx, uint32_t Event)
6551 {
6552   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
6553   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) +
6554                                                                     REG_OFFSET_TAB_EECR[iEvent]));
6555   return (READ_BIT(*pReg, (uint32_t)(HRTIM_EECR1_EE1POL) << REG_SHIFT_TAB_EExSRC[iEvent]) >>  REG_SHIFT_TAB_EExSRC[iEvent]);
6556 }
6557 
6558 /**
6559   * @brief  Set the sensitivity of an external event.
6560   * @rmtoll EECR1     EE1SNS          LL_HRTIM_EE_SetSensitivity\n
6561   *         EECR1     EE2SNS          LL_HRTIM_EE_SetSensitivity\n
6562   *         EECR1     EE3SNS          LL_HRTIM_EE_SetSensitivity\n
6563   *         EECR1     EE4SNS          LL_HRTIM_EE_SetSensitivity\n
6564   *         EECR1     EE5SNS          LL_HRTIM_EE_SetSensitivity\n
6565   *         EECR2     EE6SNS          LL_HRTIM_EE_SetSensitivity\n
6566   *         EECR2     EE7SNS          LL_HRTIM_EE_SetSensitivity\n
6567   *         EECR2     EE8SNS          LL_HRTIM_EE_SetSensitivity\n
6568   *         EECR2     EE9SNS          LL_HRTIM_EE_SetSensitivity\n
6569   *         EECR2     EE10SNS         LL_HRTIM_EE_SetSensitivity
6570   * @param  HRTIMx High Resolution Timer instance
6571   * @param  Event This parameter can be one of the following values:
6572   *         @arg @ref LL_HRTIM_EVENT_1
6573   *         @arg @ref LL_HRTIM_EVENT_2
6574   *         @arg @ref LL_HRTIM_EVENT_3
6575   *         @arg @ref LL_HRTIM_EVENT_4
6576   *         @arg @ref LL_HRTIM_EVENT_5
6577   *         @arg @ref LL_HRTIM_EVENT_6
6578   *         @arg @ref LL_HRTIM_EVENT_7
6579   *         @arg @ref LL_HRTIM_EVENT_8
6580   *         @arg @ref LL_HRTIM_EVENT_9
6581   *         @arg @ref LL_HRTIM_EVENT_10
6582   * @param  Sensitivity This parameter can be one of the following values:
6583   *         @arg @ref LL_HRTIM_EE_SENSITIVITY_LEVEL
6584   *         @arg @ref LL_HRTIM_EE_SENSITIVITY_RISINGEDGE
6585   *         @arg @ref LL_HRTIM_EE_SENSITIVITY_FALLINGEDGE
6586   *         @arg @ref LL_HRTIM_EE_SENSITIVITY_BOTHEDGES
6587   * @retval None
6588   */
6589 
6590 __STATIC_INLINE void LL_HRTIM_EE_SetSensitivity(HRTIM_TypeDef *HRTIMx, uint32_t Event, uint32_t Sensitivity)
6591 {
6592   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
6593   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) +
6594                                                               REG_OFFSET_TAB_EECR[iEvent]));
6595   MODIFY_REG(*pReg, (HRTIM_EECR1_EE1SNS << REG_SHIFT_TAB_EExSRC[iEvent]), (Sensitivity << REG_SHIFT_TAB_EExSRC[iEvent]));
6596 }
6597 
6598 /**
6599   * @brief  Get actual sensitivity setting of an external event.
6600   * @rmtoll EECR1     EE1SNS          LL_HRTIM_EE_GetSensitivity\n
6601   *         EECR1     EE2SNS          LL_HRTIM_EE_GetSensitivity\n
6602   *         EECR1     EE3SNS          LL_HRTIM_EE_GetSensitivity\n
6603   *         EECR1     EE4SNS          LL_HRTIM_EE_GetSensitivity\n
6604   *         EECR1     EE5SNS          LL_HRTIM_EE_GetSensitivity\n
6605   *         EECR2     EE6SNS          LL_HRTIM_EE_GetSensitivity\n
6606   *         EECR2     EE7SNS          LL_HRTIM_EE_GetSensitivity\n
6607   *         EECR2     EE8SNS          LL_HRTIM_EE_GetSensitivity\n
6608   *         EECR2     EE9SNS          LL_HRTIM_EE_GetSensitivity\n
6609   *         EECR2     EE10SNS         LL_HRTIM_EE_GetSensitivity
6610   * @param  HRTIMx High Resolution Timer instance
6611   * @param  Event This parameter can be one of the following values:
6612   *         @arg @ref LL_HRTIM_EVENT_1
6613   *         @arg @ref LL_HRTIM_EVENT_2
6614   *         @arg @ref LL_HRTIM_EVENT_3
6615   *         @arg @ref LL_HRTIM_EVENT_4
6616   *         @arg @ref LL_HRTIM_EVENT_5
6617   *         @arg @ref LL_HRTIM_EVENT_6
6618   *         @arg @ref LL_HRTIM_EVENT_7
6619   *         @arg @ref LL_HRTIM_EVENT_8
6620   *         @arg @ref LL_HRTIM_EVENT_9
6621   *         @arg @ref LL_HRTIM_EVENT_10
6622   * @retval Polarity This parameter can be one of the following values:
6623   *         @arg @ref LL_HRTIM_EE_SENSITIVITY_LEVEL
6624   *         @arg @ref LL_HRTIM_EE_SENSITIVITY_RISINGEDGE
6625   *         @arg @ref LL_HRTIM_EE_SENSITIVITY_FALLINGEDGE
6626   *         @arg @ref LL_HRTIM_EE_SENSITIVITY_BOTHEDGES
6627   */
6628 __STATIC_INLINE uint32_t LL_HRTIM_EE_GetSensitivity(const HRTIM_TypeDef *HRTIMx, uint32_t Event)
6629 {
6630   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
6631   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) +
6632                                                                     REG_OFFSET_TAB_EECR[iEvent]));
6633   return (READ_BIT(*pReg, (uint32_t)(HRTIM_EECR1_EE1SNS) << REG_SHIFT_TAB_EExSRC[iEvent]) >>  REG_SHIFT_TAB_EExSRC[iEvent]);
6634 }
6635 
6636 /**
6637   * @brief  Set the fast mode of an external event.
6638   * @rmtoll EECR1     EE1FAST         LL_HRTIM_EE_SetFastMode\n
6639   *         EECR1     EE2FAST         LL_HRTIM_EE_SetFastMode\n
6640   *         EECR1     EE3FAST         LL_HRTIM_EE_SetFastMode\n
6641   *         EECR1     EE4FAST         LL_HRTIM_EE_SetFastMode\n
6642   *         EECR1     EE5FAST         LL_HRTIM_EE_SetFastMode\n
6643   *         EECR2     EE6FAST         LL_HRTIM_EE_SetFastMode\n
6644   *         EECR2     EE7FAST         LL_HRTIM_EE_SetFastMode\n
6645   *         EECR2     EE8FAST         LL_HRTIM_EE_SetFastMode\n
6646   *         EECR2     EE9FAST         LL_HRTIM_EE_SetFastMode\n
6647   *         EECR2     EE10FAST        LL_HRTIM_EE_SetFastMode
6648   * @note This function must not be called when the timer counter is enabled.
6649   * @param  HRTIMx High Resolution Timer instance
6650   * @param  Event This parameter can be one of the following values:
6651   *         @arg @ref LL_HRTIM_EVENT_1
6652   *         @arg @ref LL_HRTIM_EVENT_2
6653   *         @arg @ref LL_HRTIM_EVENT_3
6654   *         @arg @ref LL_HRTIM_EVENT_4
6655   *         @arg @ref LL_HRTIM_EVENT_5
6656   * @param  FastMode This parameter can be one of the following values:
6657   *         @arg @ref LL_HRTIM_EE_FASTMODE_DISABLE
6658   *         @arg @ref LL_HRTIM_EE_FASTMODE_ENABLE
6659   * @retval None
6660   */
6661 __STATIC_INLINE void LL_HRTIM_EE_SetFastMode(HRTIM_TypeDef *HRTIMx, uint32_t Event, uint32_t FastMode)
6662 {
6663   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
6664   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) +
6665                                                               REG_OFFSET_TAB_EECR[iEvent]));
6666   MODIFY_REG(*pReg, (HRTIM_EECR1_EE1FAST << REG_SHIFT_TAB_EExSRC[iEvent]), (FastMode << REG_SHIFT_TAB_EExSRC[iEvent]));
6667 }
6668 
6669 /**
6670   * @brief  Get actual fast mode setting of an external event.
6671   * @rmtoll EECR1     EE1FAST         LL_HRTIM_EE_GetFastMode\n
6672   *         EECR1     EE2FAST         LL_HRTIM_EE_GetFastMode\n
6673   *         EECR1     EE3FAST         LL_HRTIM_EE_GetFastMode\n
6674   *         EECR1     EE4FAST         LL_HRTIM_EE_GetFastMode\n
6675   *         EECR1     EE5FAST         LL_HRTIM_EE_GetFastMode\n
6676   *         EECR2     EE6FAST         LL_HRTIM_EE_GetFastMode\n
6677   *         EECR2     EE7FAST         LL_HRTIM_EE_GetFastMode\n
6678   *         EECR2     EE8FAST         LL_HRTIM_EE_GetFastMode\n
6679   *         EECR2     EE9FAST         LL_HRTIM_EE_GetFastMode\n
6680   *         EECR2     EE10FAST        LL_HRTIM_EE_GetFastMode
6681   * @param  HRTIMx High Resolution Timer instance
6682   * @param  Event This parameter can be one of the following values:
6683   *         @arg @ref LL_HRTIM_EVENT_1
6684   *         @arg @ref LL_HRTIM_EVENT_2
6685   *         @arg @ref LL_HRTIM_EVENT_3
6686   *         @arg @ref LL_HRTIM_EVENT_4
6687   *         @arg @ref LL_HRTIM_EVENT_5
6688   * @retval FastMode This parameter can be one of the following values:
6689   *         @arg @ref LL_HRTIM_EE_FASTMODE_DISABLE
6690   *         @arg @ref LL_HRTIM_EE_FASTMODE_ENABLE
6691   */
6692 __STATIC_INLINE uint32_t LL_HRTIM_EE_GetFastMode(const HRTIM_TypeDef *HRTIMx, uint32_t Event)
6693 {
6694   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
6695   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.EECR1) +
6696                                                                     REG_OFFSET_TAB_EECR[iEvent]));
6697   return (READ_BIT(*pReg, (uint32_t)(HRTIM_EECR1_EE1FAST) << REG_SHIFT_TAB_EExSRC[iEvent]) >>  REG_SHIFT_TAB_EExSRC[iEvent]);
6698 }
6699 
6700 /**
6701   * @brief  Set the digital noise filter of a external event.
6702   * @rmtoll EECR3     EE6F         LL_HRTIM_EE_SetFilter\n
6703   *         EECR3     EE7F         LL_HRTIM_EE_SetFilter\n
6704   *         EECR3     EE8F         LL_HRTIM_EE_SetFilter\n
6705   *         EECR3     EE9F         LL_HRTIM_EE_SetFilter\n
6706   *         EECR3     EE10F        LL_HRTIM_EE_SetFilter
6707   * @param  HRTIMx High Resolution Timer instance
6708   * @param  Event This parameter can be one of the following values:
6709   *         @arg @ref LL_HRTIM_EVENT_6
6710   *         @arg @ref LL_HRTIM_EVENT_7
6711   *         @arg @ref LL_HRTIM_EVENT_8
6712   *         @arg @ref LL_HRTIM_EVENT_9
6713   *         @arg @ref LL_HRTIM_EVENT_10
6714   * @param  Filter This parameter can be one of the following values:
6715   *         @arg @ref LL_HRTIM_EE_FILTER_NONE
6716   *         @arg @ref LL_HRTIM_EE_FILTER_1
6717   *         @arg @ref LL_HRTIM_EE_FILTER_2
6718   *         @arg @ref LL_HRTIM_EE_FILTER_3
6719   *         @arg @ref LL_HRTIM_EE_FILTER_4
6720   *         @arg @ref LL_HRTIM_EE_FILTER_5
6721   *         @arg @ref LL_HRTIM_EE_FILTER_6
6722   *         @arg @ref LL_HRTIM_EE_FILTER_7
6723   *         @arg @ref LL_HRTIM_EE_FILTER_8
6724   *         @arg @ref LL_HRTIM_EE_FILTER_9
6725   *         @arg @ref LL_HRTIM_EE_FILTER_10
6726   *         @arg @ref LL_HRTIM_EE_FILTER_11
6727   *         @arg @ref LL_HRTIM_EE_FILTER_12
6728   *         @arg @ref LL_HRTIM_EE_FILTER_13
6729   *         @arg @ref LL_HRTIM_EE_FILTER_14
6730   *         @arg @ref LL_HRTIM_EE_FILTER_15
6731   * @retval None
6732   */
6733 __STATIC_INLINE void LL_HRTIM_EE_SetFilter(HRTIM_TypeDef *HRTIMx, uint32_t Event, uint32_t Filter)
6734 {
6735   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_1));
6736   MODIFY_REG(HRTIMx->sCommonRegs.EECR3, (HRTIM_EECR3_EE6F << REG_SHIFT_TAB_EExSRC[iEvent]),
6737              (Filter << REG_SHIFT_TAB_EExSRC[iEvent]));
6738 }
6739 
6740 /**
6741   * @brief  Get actual digital noise filter setting of a external event.
6742   * @rmtoll EECR3     EE6F         LL_HRTIM_EE_GetFilter\n
6743   *         EECR3     EE7F         LL_HRTIM_EE_GetFilter\n
6744   *         EECR3     EE8F         LL_HRTIM_EE_GetFilter\n
6745   *         EECR3     EE9F         LL_HRTIM_EE_GetFilter\n
6746   *         EECR3     EE10F        LL_HRTIM_EE_GetFilter
6747   * @param  HRTIMx High Resolution Timer instance
6748   * @param  Event This parameter can be one of the following values:
6749   *         @arg @ref LL_HRTIM_EVENT_6
6750   *         @arg @ref LL_HRTIM_EVENT_7
6751   *         @arg @ref LL_HRTIM_EVENT_8
6752   *         @arg @ref LL_HRTIM_EVENT_9
6753   *         @arg @ref LL_HRTIM_EVENT_10
6754   * @retval Filter This parameter can be one of the following values:
6755   *         @arg @ref LL_HRTIM_EE_FILTER_NONE
6756   *         @arg @ref LL_HRTIM_EE_FILTER_1
6757   *         @arg @ref LL_HRTIM_EE_FILTER_2
6758   *         @arg @ref LL_HRTIM_EE_FILTER_3
6759   *         @arg @ref LL_HRTIM_EE_FILTER_4
6760   *         @arg @ref LL_HRTIM_EE_FILTER_5
6761   *         @arg @ref LL_HRTIM_EE_FILTER_6
6762   *         @arg @ref LL_HRTIM_EE_FILTER_7
6763   *         @arg @ref LL_HRTIM_EE_FILTER_8
6764   *         @arg @ref LL_HRTIM_EE_FILTER_9
6765   *         @arg @ref LL_HRTIM_EE_FILTER_10
6766   *         @arg @ref LL_HRTIM_EE_FILTER_11
6767   *         @arg @ref LL_HRTIM_EE_FILTER_12
6768   *         @arg @ref LL_HRTIM_EE_FILTER_13
6769   *         @arg @ref LL_HRTIM_EE_FILTER_14
6770   *         @arg @ref LL_HRTIM_EE_FILTER_15
6771   */
6772 __STATIC_INLINE uint32_t LL_HRTIM_EE_GetFilter(const HRTIM_TypeDef *HRTIMx, uint32_t Event)
6773 {
6774   uint32_t iEvent = (uint8_t)(POSITION_VAL(Event) - POSITION_VAL(LL_HRTIM_EVENT_6));
6775   return (READ_BIT(HRTIMx->sCommonRegs.EECR3,
6776                    (uint32_t)(HRTIM_EECR3_EE6F) << REG_SHIFT_TAB_EExSRC[iEvent]) >>  REG_SHIFT_TAB_EExSRC[iEvent]);
6777 }
6778 
6779 /**
6780   * @brief  Set the external event prescaler.
6781   * @rmtoll EECR3     EEVSD        LL_HRTIM_EE_SetPrescaler
6782   * @param  HRTIMx High Resolution Timer instance
6783   * @param  Prescaler This parameter can be one of the following values:
6784   *         @arg @ref LL_HRTIM_EE_PRESCALER_DIV1
6785   *         @arg @ref LL_HRTIM_EE_PRESCALER_DIV2
6786   *         @arg @ref LL_HRTIM_EE_PRESCALER_DIV4
6787   *         @arg @ref LL_HRTIM_EE_PRESCALER_DIV8
6788   * @retval None
6789   */
6790 
6791 __STATIC_INLINE void LL_HRTIM_EE_SetPrescaler(HRTIM_TypeDef *HRTIMx, uint32_t Prescaler)
6792 {
6793   MODIFY_REG(HRTIMx->sCommonRegs.EECR3, HRTIM_EECR3_EEVSD, Prescaler);
6794 }
6795 
6796 /**
6797   * @brief  Get actual external event prescaler setting.
6798   * @rmtoll EECR3     EEVSD        LL_HRTIM_EE_GetPrescaler
6799   * @param  HRTIMx High Resolution Timer instance
6800   * @retval Prescaler This parameter can be one of the following values:
6801   *         @arg @ref LL_HRTIM_EE_PRESCALER_DIV1
6802   *         @arg @ref LL_HRTIM_EE_PRESCALER_DIV2
6803   *         @arg @ref LL_HRTIM_EE_PRESCALER_DIV4
6804   *         @arg @ref LL_HRTIM_EE_PRESCALER_DIV8
6805   */
6806 
6807 __STATIC_INLINE uint32_t LL_HRTIM_EE_GetPrescaler(const HRTIM_TypeDef *HRTIMx)
6808 {
6809   return (READ_BIT(HRTIMx->sCommonRegs.EECR3, HRTIM_EECR3_EEVSD));
6810 }
6811 
6812 /**
6813   * @}
6814   */
6815 
6816 /** @defgroup HRTIM_LL_EF_Fault_management Fault_management
6817   * @ingroup RTEMSBSPsARMSTM32H7
6818   * @{
6819   */
6820 /**
6821   * @brief  Configure fault signal conditioning Polarity and Source.
6822   * @rmtoll FLTINR1     FLT1P        LL_HRTIM_FLT_Config\n
6823   *         FLTINR1     FLT1SRC      LL_HRTIM_FLT_Config\n
6824   *         FLTINR1     FLT2P        LL_HRTIM_FLT_Config\n
6825   *         FLTINR1     FLT2SRC      LL_HRTIM_FLT_Config\n
6826   *         FLTINR1     FLT3P        LL_HRTIM_FLT_Config\n
6827   *         FLTINR1     FLT3SRC      LL_HRTIM_FLT_Config\n
6828   *         FLTINR1     FLT4P        LL_HRTIM_FLT_Config\n
6829   *         FLTINR1     FLT4SRC      LL_HRTIM_FLT_Config\n
6830   *         FLTINR2     FLT5P        LL_HRTIM_FLT_Config\n
6831   *         FLTINR2     FLT5SRC      LL_HRTIM_FLT_Config
6832   * @note This function must not be called when the fault channel is enabled.
6833   * @param  HRTIMx High Resolution Timer instance
6834   * @param  Fault This parameter can be one of the following values:
6835   *         @arg @ref LL_HRTIM_FAULT_1
6836   *         @arg @ref LL_HRTIM_FAULT_2
6837   *         @arg @ref LL_HRTIM_FAULT_3
6838   *         @arg @ref LL_HRTIM_FAULT_4
6839   *         @arg @ref LL_HRTIM_FAULT_5
6840   * @param  Configuration This parameter must be a combination of all the following values:
6841   *         @arg @ref LL_HRTIM_FLT_SRC_DIGITALINPUT..LL_HRTIM_FLT_SRC_INTERNAL
6842   *         @arg @ref LL_HRTIM_FLT_POLARITY_LOW..LL_HRTIM_FLT_POLARITY_HIGH
6843   * @retval None
6844   */
6845 __STATIC_INLINE void LL_HRTIM_FLT_Config(HRTIM_TypeDef *HRTIMx, uint32_t Fault, uint32_t Configuration)
6846 {
6847   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
6848   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) +
6849                                                               REG_OFFSET_TAB_FLTINR[iFault]));
6850   MODIFY_REG(*pReg, (HRTIM_FLT_CONFIG_MASK << REG_SHIFT_TAB_FLTxE[iFault]),
6851              (Configuration << REG_SHIFT_TAB_FLTxE[iFault]));
6852 }
6853 
6854 /**
6855   * @brief  Set the source of a fault signal.
6856   * @rmtoll FLTINR1     FLT1SRC      LL_HRTIM_FLT_SetSrc\n
6857   *         FLTINR1     FLT2SRC      LL_HRTIM_FLT_SetSrc\n
6858   *         FLTINR1     FLT3SRC      LL_HRTIM_FLT_SetSrc\n
6859   *         FLTINR1     FLT4SRC      LL_HRTIM_FLT_SetSrc\n
6860   *         FLTINR2     FLT5SRC      LL_HRTIM_FLT_SetSrc
6861   * @note This function must not be called when the fault channel is enabled.
6862   * @param  HRTIMx High Resolution Timer instance
6863   * @param  Fault This parameter can be one of the following values:
6864   *         @arg @ref LL_HRTIM_FAULT_1
6865   *         @arg @ref LL_HRTIM_FAULT_2
6866   *         @arg @ref LL_HRTIM_FAULT_3
6867   *         @arg @ref LL_HRTIM_FAULT_4
6868   *         @arg @ref LL_HRTIM_FAULT_5
6869   * @param  Src This parameter can be one of the following values:
6870   *         @arg @ref LL_HRTIM_FLT_SRC_DIGITALINPUT
6871   *         @arg @ref LL_HRTIM_FLT_SRC_INTERNAL
6872   * @retval None
6873   */
6874 __STATIC_INLINE void LL_HRTIM_FLT_SetSrc(HRTIM_TypeDef *HRTIMx, uint32_t Fault, uint32_t Src)
6875 {
6876   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
6877   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) +
6878                                                               REG_OFFSET_TAB_FLTINR[iFault]));
6879   MODIFY_REG(*pReg, (HRTIM_FLTINR1_FLT1SRC << REG_SHIFT_TAB_FLTxE[iFault]), (Src << REG_SHIFT_TAB_FLTxE[iFault]));
6880 }
6881 
6882 /**
6883   * @brief  Get actual source of a fault signal.
6884   * @rmtoll FLTINR1     FLT1SRC      LL_HRTIM_FLT_GetSrc\n
6885   *         FLTINR1     FLT2SRC      LL_HRTIM_FLT_GetSrc\n
6886   *         FLTINR1     FLT3SRC      LL_HRTIM_FLT_GetSrc\n
6887   *         FLTINR1     FLT4SRC      LL_HRTIM_FLT_GetSrc\n
6888   *         FLTINR2     FLT5SRC      LL_HRTIM_FLT_GetSrc
6889   * @param  HRTIMx High Resolution Timer instance
6890   * @param  Fault This parameter can be one of the following values:
6891   *         @arg @ref LL_HRTIM_FAULT_1
6892   *         @arg @ref LL_HRTIM_FAULT_2
6893   *         @arg @ref LL_HRTIM_FAULT_3
6894   *         @arg @ref LL_HRTIM_FAULT_4
6895   *         @arg @ref LL_HRTIM_FAULT_5
6896   * @retval Source This parameter can be one of the following values:
6897   *         @arg @ref LL_HRTIM_FLT_SRC_DIGITALINPUT
6898   *         @arg @ref LL_HRTIM_FLT_SRC_INTERNAL
6899   */
6900 __STATIC_INLINE uint32_t LL_HRTIM_FLT_GetSrc(const HRTIM_TypeDef *HRTIMx, uint32_t Fault)
6901 {
6902   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
6903   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) +
6904                                                               REG_OFFSET_TAB_FLTINR[iFault]));
6905   return (READ_BIT(*pReg, (HRTIM_FLTINR1_FLT1SRC << REG_SHIFT_TAB_FLTxE[iFault])) >>  REG_SHIFT_TAB_FLTxE[iFault]);
6906 }
6907 
6908 /**
6909   * @brief  Set the polarity of a fault signal.
6910   * @rmtoll FLTINR1     FLT1P        LL_HRTIM_FLT_SetPolarity\n
6911   *         FLTINR1     FLT2P        LL_HRTIM_FLT_SetPolarity\n
6912   *         FLTINR1     FLT3P        LL_HRTIM_FLT_SetPolarity\n
6913   *         FLTINR1     FLT4P        LL_HRTIM_FLT_SetPolarity\n
6914   *         FLTINR2     FLT5P        LL_HRTIM_FLT_SetPolarity
6915   * @note This function must not be called when the fault channel is enabled.
6916   * @param  HRTIMx High Resolution Timer instance
6917   * @param  Fault This parameter can be one of the following values:
6918   *         @arg @ref LL_HRTIM_FAULT_1
6919   *         @arg @ref LL_HRTIM_FAULT_2
6920   *         @arg @ref LL_HRTIM_FAULT_3
6921   *         @arg @ref LL_HRTIM_FAULT_4
6922   *         @arg @ref LL_HRTIM_FAULT_5
6923   * @param  Polarity This parameter can be one of the following values:
6924   *         @arg @ref LL_HRTIM_FLT_POLARITY_LOW
6925   *         @arg @ref LL_HRTIM_FLT_POLARITY_HIGH
6926   * @retval None
6927   */
6928 __STATIC_INLINE void LL_HRTIM_FLT_SetPolarity(HRTIM_TypeDef *HRTIMx, uint32_t Fault, uint32_t Polarity)
6929 {
6930   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
6931   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) +
6932                                                               REG_OFFSET_TAB_FLTINR[iFault]));
6933   MODIFY_REG(*pReg, (HRTIM_FLTINR1_FLT1P << REG_SHIFT_TAB_FLTxE[iFault]), (Polarity << REG_SHIFT_TAB_FLTxE[iFault]));
6934 }
6935 
6936 /**
6937   * @brief  Get actual polarity of a fault signal.
6938   * @rmtoll FLTINR1     FLT1P        LL_HRTIM_FLT_GetPolarity\n
6939   *         FLTINR1     FLT2P        LL_HRTIM_FLT_GetPolarity\n
6940   *         FLTINR1     FLT3P        LL_HRTIM_FLT_GetPolarity\n
6941   *         FLTINR1     FLT4P        LL_HRTIM_FLT_GetPolarity\n
6942   *         FLTINR2     FLT5P        LL_HRTIM_FLT_GetPolarity
6943   * @param  HRTIMx High Resolution Timer instance
6944   * @param  Fault This parameter can be one of the following values:
6945   *         @arg @ref LL_HRTIM_FAULT_1
6946   *         @arg @ref LL_HRTIM_FAULT_2
6947   *         @arg @ref LL_HRTIM_FAULT_3
6948   *         @arg @ref LL_HRTIM_FAULT_4
6949   *         @arg @ref LL_HRTIM_FAULT_5
6950   * @retval Polarity This parameter can be one of the following values:
6951   *         @arg @ref LL_HRTIM_FLT_POLARITY_LOW
6952   *         @arg @ref LL_HRTIM_FLT_POLARITY_HIGH
6953   */
6954 __STATIC_INLINE uint32_t LL_HRTIM_FLT_GetPolarity(const HRTIM_TypeDef *HRTIMx, uint32_t Fault)
6955 {
6956   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
6957   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) +
6958                                                               REG_OFFSET_TAB_FLTINR[iFault]));
6959   return (READ_BIT(*pReg, (HRTIM_FLTINR1_FLT1P << REG_SHIFT_TAB_FLTxE[iFault])) >>  REG_SHIFT_TAB_FLTxE[iFault]);
6960 }
6961 
6962 /**
6963   * @brief  Set the digital noise filter of a fault signal.
6964   * @rmtoll FLTINR1     FLT1F      LL_HRTIM_FLT_SetFilter\n
6965   *         FLTINR1     FLT2F      LL_HRTIM_FLT_SetFilter\n
6966   *         FLTINR1     FLT3F      LL_HRTIM_FLT_SetFilter\n
6967   *         FLTINR1     FLT4F      LL_HRTIM_FLT_SetFilter\n
6968   *         FLTINR2     FLT5F      LL_HRTIM_FLT_SetFilter
6969   * @note This function must not be called when the fault channel is enabled.
6970   * @param  HRTIMx High Resolution Timer instance
6971   * @param  Fault This parameter can be one of the following values:
6972   *         @arg @ref LL_HRTIM_FAULT_1
6973   *         @arg @ref LL_HRTIM_FAULT_2
6974   *         @arg @ref LL_HRTIM_FAULT_3
6975   *         @arg @ref LL_HRTIM_FAULT_4
6976   *         @arg @ref LL_HRTIM_FAULT_5
6977   * @param  Filter This parameter can be one of the following values:
6978   *         @arg @ref LL_HRTIM_FLT_FILTER_NONE
6979   *         @arg @ref LL_HRTIM_FLT_FILTER_1
6980   *         @arg @ref LL_HRTIM_FLT_FILTER_2
6981   *         @arg @ref LL_HRTIM_FLT_FILTER_3
6982   *         @arg @ref LL_HRTIM_FLT_FILTER_4
6983   *         @arg @ref LL_HRTIM_FLT_FILTER_5
6984   *         @arg @ref LL_HRTIM_FLT_FILTER_6
6985   *         @arg @ref LL_HRTIM_FLT_FILTER_7
6986   *         @arg @ref LL_HRTIM_FLT_FILTER_8
6987   *         @arg @ref LL_HRTIM_FLT_FILTER_9
6988   *         @arg @ref LL_HRTIM_FLT_FILTER_10
6989   *         @arg @ref LL_HRTIM_FLT_FILTER_11
6990   *         @arg @ref LL_HRTIM_FLT_FILTER_12
6991   *         @arg @ref LL_HRTIM_FLT_FILTER_13
6992   *         @arg @ref LL_HRTIM_FLT_FILTER_14
6993   *         @arg @ref LL_HRTIM_FLT_FILTER_15
6994   * @retval None
6995   */
6996 __STATIC_INLINE void LL_HRTIM_FLT_SetFilter(HRTIM_TypeDef *HRTIMx, uint32_t Fault, uint32_t Filter)
6997 {
6998   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
6999   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) +
7000                                                               REG_OFFSET_TAB_FLTINR[iFault]));
7001   MODIFY_REG(*pReg, (HRTIM_FLTINR1_FLT1F << REG_SHIFT_TAB_FLTxE[iFault]), (Filter << REG_SHIFT_TAB_FLTxE[iFault]));
7002 }
7003 
7004 /**
7005   * @brief  Get actual digital noise filter setting of a fault signal.
7006   * @rmtoll FLTINR1     FLT1F      LL_HRTIM_FLT_GetFilter\n
7007   *         FLTINR1     FLT2F      LL_HRTIM_FLT_GetFilter\n
7008   *         FLTINR1     FLT3F      LL_HRTIM_FLT_GetFilter\n
7009   *         FLTINR1     FLT4F      LL_HRTIM_FLT_GetFilter\n
7010   *         FLTINR2     FLT5F      LL_HRTIM_FLT_GetFilter
7011   * @param  HRTIMx High Resolution Timer instance
7012   * @param  Fault This parameter can be one of the following values:
7013   *         @arg @ref LL_HRTIM_FAULT_1
7014   *         @arg @ref LL_HRTIM_FAULT_2
7015   *         @arg @ref LL_HRTIM_FAULT_3
7016   *         @arg @ref LL_HRTIM_FAULT_4
7017   *         @arg @ref LL_HRTIM_FAULT_5
7018   * @retval Filter This parameter can be one of the following values:
7019   *         @arg @ref LL_HRTIM_FLT_FILTER_NONE
7020   *         @arg @ref LL_HRTIM_FLT_FILTER_1
7021   *         @arg @ref LL_HRTIM_FLT_FILTER_2
7022   *         @arg @ref LL_HRTIM_FLT_FILTER_3
7023   *         @arg @ref LL_HRTIM_FLT_FILTER_4
7024   *         @arg @ref LL_HRTIM_FLT_FILTER_5
7025   *         @arg @ref LL_HRTIM_FLT_FILTER_6
7026   *         @arg @ref LL_HRTIM_FLT_FILTER_7
7027   *         @arg @ref LL_HRTIM_FLT_FILTER_8
7028   *         @arg @ref LL_HRTIM_FLT_FILTER_9
7029   *         @arg @ref LL_HRTIM_FLT_FILTER_10
7030   *         @arg @ref LL_HRTIM_FLT_FILTER_11
7031   *         @arg @ref LL_HRTIM_FLT_FILTER_12
7032   *         @arg @ref LL_HRTIM_FLT_FILTER_13
7033   *         @arg @ref LL_HRTIM_FLT_FILTER_14
7034   *         @arg @ref LL_HRTIM_FLT_FILTER_15
7035   */
7036 __STATIC_INLINE uint32_t LL_HRTIM_FLT_GetFilter(const HRTIM_TypeDef *HRTIMx, uint32_t Fault)
7037 {
7038   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
7039   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) +
7040                                                               REG_OFFSET_TAB_FLTINR[iFault]));
7041   return (READ_BIT(*pReg, (HRTIM_FLTINR1_FLT1F << REG_SHIFT_TAB_FLTxE[iFault])) >>  REG_SHIFT_TAB_FLTxE[iFault]);
7042 
7043 }
7044 
7045 /**
7046   * @brief  Set the fault circuitry prescaler.
7047   * @rmtoll FLTINR2     FLTSD      LL_HRTIM_FLT_SetPrescaler
7048   * @param  HRTIMx High Resolution Timer instance
7049   * @param  Prescaler This parameter can be one of the following values:
7050   *         @arg @ref LL_HRTIM_FLT_PRESCALER_DIV1
7051   *         @arg @ref LL_HRTIM_FLT_PRESCALER_DIV2
7052   *         @arg @ref LL_HRTIM_FLT_PRESCALER_DIV4
7053   *         @arg @ref LL_HRTIM_FLT_PRESCALER_DIV8
7054   * @retval None
7055   */
7056 __STATIC_INLINE void LL_HRTIM_FLT_SetPrescaler(HRTIM_TypeDef *HRTIMx, uint32_t Prescaler)
7057 {
7058   MODIFY_REG(HRTIMx->sCommonRegs.FLTINR2, HRTIM_FLTINR2_FLTSD, Prescaler);
7059 }
7060 
7061 /**
7062   * @brief  Get actual fault circuitry prescaler setting.
7063   * @rmtoll FLTINR2     FLTSD      LL_HRTIM_FLT_GetPrescaler
7064   * @param  HRTIMx High Resolution Timer instance
7065   * @retval Prescaler This parameter can be one of the following values:
7066   *         @arg @ref LL_HRTIM_FLT_PRESCALER_DIV1
7067   *         @arg @ref LL_HRTIM_FLT_PRESCALER_DIV2
7068   *         @arg @ref LL_HRTIM_FLT_PRESCALER_DIV4
7069   *         @arg @ref LL_HRTIM_FLT_PRESCALER_DIV8
7070   */
7071 __STATIC_INLINE uint32_t LL_HRTIM_FLT_GetPrescaler(const HRTIM_TypeDef *HRTIMx)
7072 {
7073   return (READ_BIT(HRTIMx->sCommonRegs.FLTINR2, HRTIM_FLTINR2_FLTSD));
7074 }
7075 
7076 /**
7077   * @brief  Lock the fault signal conditioning settings.
7078   * @rmtoll FLTINR1     FLT1LCK      LL_HRTIM_FLT_Lock\n
7079   *         FLTINR1     FLT2LCK      LL_HRTIM_FLT_Lock\n
7080   *         FLTINR1     FLT3LCK      LL_HRTIM_FLT_Lock\n
7081   *         FLTINR1     FLT4LCK      LL_HRTIM_FLT_Lock\n
7082   *         FLTINR2     FLT5LCK      LL_HRTIM_FLT_Lock
7083   * @param  HRTIMx High Resolution Timer instance
7084   * @param  Fault This parameter can be one of the following values:
7085   *         @arg @ref LL_HRTIM_FAULT_1
7086   *         @arg @ref LL_HRTIM_FAULT_2
7087   *         @arg @ref LL_HRTIM_FAULT_3
7088   *         @arg @ref LL_HRTIM_FAULT_4
7089   *         @arg @ref LL_HRTIM_FAULT_5
7090   * @retval None
7091   */
7092 __STATIC_INLINE void LL_HRTIM_FLT_Lock(HRTIM_TypeDef *HRTIMx, uint32_t Fault)
7093 {
7094   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
7095   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) +
7096                                                               REG_OFFSET_TAB_FLTINR[iFault]));
7097   SET_BIT(*pReg, (HRTIM_FLTINR1_FLT1LCK << REG_SHIFT_TAB_FLTxE[iFault]));
7098 }
7099 
7100 /**
7101   * @brief  Enable the fault circuitry for the designated fault input.
7102   * @rmtoll FLTINR1     FLT1E      LL_HRTIM_FLT_Enable\n
7103   *         FLTINR1     FLT2E      LL_HRTIM_FLT_Enable\n
7104   *         FLTINR1     FLT3E      LL_HRTIM_FLT_Enable\n
7105   *         FLTINR1     FLT4E      LL_HRTIM_FLT_Enable\n
7106   *         FLTINR2     FLT5E      LL_HRTIM_FLT_Enable
7107   * @param  HRTIMx High Resolution Timer instance
7108   * @param  Fault This parameter can be one of the following values:
7109   *         @arg @ref LL_HRTIM_FAULT_1
7110   *         @arg @ref LL_HRTIM_FAULT_2
7111   *         @arg @ref LL_HRTIM_FAULT_3
7112   *         @arg @ref LL_HRTIM_FAULT_4
7113   *         @arg @ref LL_HRTIM_FAULT_5
7114   * @retval None
7115   */
7116 __STATIC_INLINE void LL_HRTIM_FLT_Enable(HRTIM_TypeDef *HRTIMx, uint32_t Fault)
7117 {
7118   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
7119   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) +
7120                                                               REG_OFFSET_TAB_FLTINR[iFault]));
7121   SET_BIT(*pReg, (HRTIM_FLTINR1_FLT1E << REG_SHIFT_TAB_FLTxE[iFault]));
7122 }
7123 
7124 /**
7125   * @brief  Disable the fault circuitry for for the designated fault input.
7126   * @rmtoll FLTINR1     FLT1E      LL_HRTIM_FLT_Disable\n
7127   *         FLTINR1     FLT2E      LL_HRTIM_FLT_Disable\n
7128   *         FLTINR1     FLT3E      LL_HRTIM_FLT_Disable\n
7129   *         FLTINR1     FLT4E      LL_HRTIM_FLT_Disable\n
7130   *         FLTINR2     FLT5E      LL_HRTIM_FLT_Disable
7131   * @param  HRTIMx High Resolution Timer instance
7132   * @param  Fault This parameter can be one of the following values:
7133   *         @arg @ref LL_HRTIM_FAULT_1
7134   *         @arg @ref LL_HRTIM_FAULT_2
7135   *         @arg @ref LL_HRTIM_FAULT_3
7136   *         @arg @ref LL_HRTIM_FAULT_4
7137   *         @arg @ref LL_HRTIM_FAULT_5
7138   * @retval None
7139   */
7140 __STATIC_INLINE void LL_HRTIM_FLT_Disable(HRTIM_TypeDef *HRTIMx, uint32_t Fault)
7141 {
7142   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
7143   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) +
7144                                                               REG_OFFSET_TAB_FLTINR[iFault]));
7145   CLEAR_BIT(*pReg, (HRTIM_FLTINR1_FLT1E << REG_SHIFT_TAB_FLTxE[iFault]));
7146 }
7147 
7148 /**
7149   * @brief  Indicate whether the fault circuitry is enabled for a given fault input.
7150   * @rmtoll FLTINR1     FLT1E      LL_HRTIM_FLT_IsEnabled\n
7151   *         FLTINR1     FLT2E      LL_HRTIM_FLT_IsEnabled\n
7152   *         FLTINR1     FLT3E      LL_HRTIM_FLT_IsEnabled\n
7153   *         FLTINR1     FLT4E      LL_HRTIM_FLT_IsEnabled\n
7154   *         FLTINR2     FLT5E      LL_HRTIM_FLT_IsEnabled
7155   * @param  HRTIMx High Resolution Timer instance
7156   * @param  Fault This parameter can be one of the following values:
7157   *         @arg @ref LL_HRTIM_FAULT_1
7158   *         @arg @ref LL_HRTIM_FAULT_2
7159   *         @arg @ref LL_HRTIM_FAULT_3
7160   *         @arg @ref LL_HRTIM_FAULT_4
7161   *         @arg @ref LL_HRTIM_FAULT_5
7162   * @retval State of FLTxEN bit in HRTIM_FLTINRx register (1 or 0).
7163   */
7164 __STATIC_INLINE uint32_t LL_HRTIM_FLT_IsEnabled(const HRTIM_TypeDef *HRTIMx, uint32_t Fault)
7165 {
7166   uint32_t iFault = (uint8_t)POSITION_VAL(Fault);
7167   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sCommonRegs.FLTINR1) +
7168                                                                     REG_OFFSET_TAB_FLTINR[iFault]));
7169   return (((READ_BIT(*pReg, (HRTIM_FLTINR1_FLT1E << REG_SHIFT_TAB_FLTxE[iFault])) >> REG_SHIFT_TAB_FLTxE[iFault]) ==
7170            (HRTIM_IER_FLT1)) ? 1UL : 0UL);
7171 }
7172 
7173 /**
7174   * @}
7175   */
7176 
7177 /** @defgroup HRTIM_LL_EF_Burst_Mode_management Burst_Mode_management
7178   * @ingroup RTEMSBSPsARMSTM32H7
7179   * @{
7180   */
7181 
7182 /**
7183   * @brief  Configure the burst mode controller.
7184   * @rmtoll BMCR     BMOM        LL_HRTIM_BM_Config\n
7185   *         BMCR     BMCLK       LL_HRTIM_BM_Config\n
7186   *         BMCR     BMPRSC      LL_HRTIM_BM_Config
7187   * @param  HRTIMx High Resolution Timer instance
7188   * @param  Configuration This parameter must be a combination of all the following values:
7189   *         @arg @ref LL_HRTIM_BM_MODE_SINGLESHOT or @ref LL_HRTIM_BM_MODE_CONTINOUS
7190   *         @arg @ref LL_HRTIM_BM_CLKSRC_MASTER or ... or @ref LL_HRTIM_BM_CLKSRC_FHRTIM
7191   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV1 or ... @ref LL_HRTIM_BM_PRESCALER_DIV32768
7192   * @retval None
7193   */
7194 __STATIC_INLINE void LL_HRTIM_BM_Config(HRTIM_TypeDef *HRTIMx, uint32_t Configuration)
7195 {
7196   MODIFY_REG(HRTIMx->sCommonRegs.BMCR, HRTIM_BM_CONFIG_MASK, Configuration);
7197 }
7198 
7199 /**
7200   * @brief  Set the burst mode controller operating mode.
7201   * @rmtoll BMCR     BMOM        LL_HRTIM_BM_SetMode
7202   * @param  HRTIMx High Resolution Timer instance
7203   * @param  Mode This parameter can be one of the following values:
7204   *         @arg @ref LL_HRTIM_BM_MODE_SINGLESHOT
7205   *         @arg @ref LL_HRTIM_BM_MODE_CONTINOUS
7206   * @retval None
7207   */
7208 __STATIC_INLINE void LL_HRTIM_BM_SetMode(HRTIM_TypeDef *HRTIMx, uint32_t Mode)
7209 {
7210   MODIFY_REG(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMOM, Mode);
7211 }
7212 
7213 /**
7214   * @brief  Get actual burst mode controller operating mode.
7215   * @rmtoll BMCR     BMOM        LL_HRTIM_BM_GetMode
7216   * @param  HRTIMx High Resolution Timer instance
7217   * @retval Mode This parameter can be one of the following values:
7218   *         @arg @ref LL_HRTIM_BM_MODE_SINGLESHOT
7219   *         @arg @ref LL_HRTIM_BM_MODE_CONTINOUS
7220   */
7221 __STATIC_INLINE uint32_t LL_HRTIM_BM_GetMode(const HRTIM_TypeDef *HRTIMx)
7222 {
7223   return (uint32_t)READ_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMOM);
7224 }
7225 
7226 /**
7227   * @brief  Set the burst mode controller clock source.
7228   * @rmtoll BMCR     BMCLK       LL_HRTIM_BM_SetClockSrc
7229   * @param  HRTIMx High Resolution Timer instance
7230   * @param  ClockSrc This parameter can be one of the following values:
7231   *         @arg @ref LL_HRTIM_BM_CLKSRC_MASTER
7232   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_A
7233   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_B
7234   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_C
7235   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_D
7236   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_E
7237   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIM16_OC
7238   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIM17_OC
7239   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIM7_TRGO
7240   *         @arg @ref LL_HRTIM_BM_CLKSRC_FHRTIM
7241   * @retval None
7242   */
7243 __STATIC_INLINE void LL_HRTIM_BM_SetClockSrc(HRTIM_TypeDef *HRTIMx, uint32_t ClockSrc)
7244 {
7245   MODIFY_REG(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMCLK, ClockSrc);
7246 }
7247 
7248 /**
7249   * @brief  Get actual burst mode controller clock source.
7250   * @rmtoll BMCR     BMCLK       LL_HRTIM_BM_GetClockSrc
7251   * @param  HRTIMx High Resolution Timer instance
7252   * @retval ClockSrc This parameter can be one of the following values:
7253   *         @arg @ref LL_HRTIM_BM_CLKSRC_MASTER
7254   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_A
7255   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_B
7256   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_C
7257   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_D
7258   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_E
7259   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIM16_OC
7260   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIM17_OC
7261   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIM7_TRGO
7262   *         @arg @ref LL_HRTIM_BM_CLKSRC_FHRTIM
7263   * @retval ClockSrc This parameter can be one of the following values:
7264   *         @arg @ref LL_HRTIM_BM_CLKSRC_MASTER
7265   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_A
7266   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_B
7267   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_C
7268   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_D
7269   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIMER_E
7270   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIM16_OC
7271   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIM17_OC
7272   *         @arg @ref LL_HRTIM_BM_CLKSRC_TIM7_TRGO
7273   *         @arg @ref LL_HRTIM_BM_CLKSRC_FHRTIM
7274   */
7275 __STATIC_INLINE uint32_t LL_HRTIM_BM_GetClockSrc(const HRTIM_TypeDef *HRTIMx)
7276 {
7277   return (uint32_t)READ_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMCLK);
7278 }
7279 
7280 /**
7281   * @brief  Set the burst mode controller prescaler.
7282   * @rmtoll BMCR     BMPRSC      LL_HRTIM_BM_SetPrescaler
7283   * @param  HRTIMx High Resolution Timer instance
7284   * @param  Prescaler This parameter can be one of the following values:
7285   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV1
7286   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV2
7287   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV4
7288   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV8
7289   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV16
7290   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV32
7291   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV64
7292   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV128
7293   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV256
7294   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV512
7295   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV1024
7296   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV2048
7297   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV4096
7298   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV8192
7299   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV16384
7300   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV32768
7301   * @retval None
7302   */
7303 __STATIC_INLINE void LL_HRTIM_BM_SetPrescaler(HRTIM_TypeDef *HRTIMx, uint32_t Prescaler)
7304 {
7305   MODIFY_REG(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMPRSC, Prescaler);
7306 }
7307 
7308 /**
7309   * @brief  Get actual burst mode controller prescaler setting.
7310   * @rmtoll BMCR     BMPRSC      LL_HRTIM_BM_GetPrescaler
7311   * @param  HRTIMx High Resolution Timer instance
7312   * @retval Prescaler This parameter can be one of the following values:
7313   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV1
7314   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV2
7315   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV4
7316   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV8
7317   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV16
7318   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV32
7319   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV64
7320   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV128
7321   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV256
7322   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV512
7323   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV1024
7324   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV2048
7325   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV4096
7326   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV8192
7327   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV16384
7328   *         @arg @ref LL_HRTIM_BM_PRESCALER_DIV32768
7329   */
7330 __STATIC_INLINE uint32_t LL_HRTIM_BM_GetPrescaler(const HRTIM_TypeDef *HRTIMx)
7331 {
7332   return (uint32_t)READ_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMPRSC);
7333 }
7334 
7335 /**
7336   * @brief  Enable burst mode compare and period registers preload.
7337   * @rmtoll BMCR     BMPREN      LL_HRTIM_BM_EnablePreload
7338   * @param  HRTIMx High Resolution Timer instance
7339   * @retval None
7340   */
7341 __STATIC_INLINE void LL_HRTIM_BM_EnablePreload(HRTIM_TypeDef *HRTIMx)
7342 {
7343   SET_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMPREN);
7344 }
7345 
7346 /**
7347   * @brief  Disable burst mode compare and period registers preload.
7348   * @rmtoll BMCR     BMPREN      LL_HRTIM_BM_DisablePreload
7349   * @param  HRTIMx High Resolution Timer instance
7350   * @retval None
7351   */
7352 __STATIC_INLINE void LL_HRTIM_BM_DisablePreload(HRTIM_TypeDef *HRTIMx)
7353 {
7354   CLEAR_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMPREN);
7355 }
7356 
7357 /**
7358   * @brief  Indicate whether burst mode compare and period registers are preloaded.
7359   * @rmtoll BMCR     BMPREN      LL_HRTIM_BM_IsEnabledPreload
7360   * @param  HRTIMx High Resolution Timer instance
7361   * @retval State of BMPREN bit in HRTIM_BMCR register (1 or 0).
7362   */
7363 __STATIC_INLINE uint32_t LL_HRTIM_BM_IsEnabledPreload(const HRTIM_TypeDef *HRTIMx)
7364 {
7365   uint32_t temp; /* MISRAC-2012 compliance */
7366   temp = READ_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMPREN);
7367 
7368   return ((temp == (HRTIM_BMCR_BMPREN)) ? 1UL : 0UL);
7369 }
7370 
7371 /**
7372   * @brief  Set the burst mode controller trigger
7373   * @rmtoll BMTRGR     SW           LL_HRTIM_BM_SetTrig\n
7374   *         BMTRGR     MSTRST       LL_HRTIM_BM_SetTrig\n
7375   *         BMTRGR     MSTREP       LL_HRTIM_BM_SetTrig\n
7376   *         BMTRGR     MSTCMP1      LL_HRTIM_BM_SetTrig\n
7377   *         BMTRGR     MSTCMP2      LL_HRTIM_BM_SetTrig\n
7378   *         BMTRGR     MSTCMP3      LL_HRTIM_BM_SetTrig\n
7379   *         BMTRGR     MSTCMP4      LL_HRTIM_BM_SetTrig\n
7380   *         BMTRGR     TARST        LL_HRTIM_BM_SetTrig\n
7381   *         BMTRGR     TAREP        LL_HRTIM_BM_SetTrig\n
7382   *         BMTRGR     TACMP1       LL_HRTIM_BM_SetTrig\n
7383   *         BMTRGR     TACMP2       LL_HRTIM_BM_SetTrig\n
7384   *         BMTRGR     TBRST        LL_HRTIM_BM_SetTrig\n
7385   *         BMTRGR     TBREP        LL_HRTIM_BM_SetTrig\n
7386   *         BMTRGR     TBCMP1       LL_HRTIM_BM_SetTrig\n
7387   *         BMTRGR     TBCMP2       LL_HRTIM_BM_SetTrig\n
7388   *         BMTRGR     TCRST        LL_HRTIM_BM_SetTrig\n
7389   *         BMTRGR     TCREP        LL_HRTIM_BM_SetTrig\n
7390   *         BMTRGR     TCCMP1       LL_HRTIM_BM_SetTrig\n
7391   *         BMTRGR     TCCMP2       LL_HRTIM_BM_SetTrig\n
7392   *         BMTRGR     TDRST        LL_HRTIM_BM_SetTrig\n
7393   *         BMTRGR     TDREP        LL_HRTIM_BM_SetTrig\n
7394   *         BMTRGR     TDCMP1       LL_HRTIM_BM_SetTrig\n
7395   *         BMTRGR     TDCMP2       LL_HRTIM_BM_SetTrig\n
7396   *         BMTRGR     TERST        LL_HRTIM_BM_SetTrig\n
7397   *         BMTRGR     TEREP        LL_HRTIM_BM_SetTrig\n
7398   *         BMTRGR     TECMP1       LL_HRTIM_BM_SetTrig\n
7399   *         BMTRGR     TECMP2       LL_HRTIM_BM_SetTrig\n
7400   *         BMTRGR     TAEEV7       LL_HRTIM_BM_SetTrig\n
7401   *         BMTRGR     TAEEV8       LL_HRTIM_BM_SetTrig\n
7402   *         BMTRGR     EEV7         LL_HRTIM_BM_SetTrig\n
7403   *         BMTRGR     EEV8         LL_HRTIM_BM_SetTrig\n
7404   *         BMTRGR     OCHIPEV      LL_HRTIM_BM_SetTrig
7405   * @param  HRTIMx High Resolution Timer instance
7406   * @param  Trig This parameter can be a combination of the following values:
7407   *         @arg @ref LL_HRTIM_BM_TRIG_NONE
7408   *         @arg @ref LL_HRTIM_BM_TRIG_MASTER_RESET
7409   *         @arg @ref LL_HRTIM_BM_TRIG_MASTER_REPETITION
7410   *         @arg @ref LL_HRTIM_BM_TRIG_MASTER_CMP1
7411   *         @arg @ref LL_HRTIM_BM_TRIG_MASTER_CMP2
7412   *         @arg @ref LL_HRTIM_BM_TRIG_MASTER_CMP3
7413   *         @arg @ref LL_HRTIM_BM_TRIG_MASTER_CMP4
7414   *         @arg @ref LL_HRTIM_BM_TRIG_TIMA_RESET
7415   *         @arg @ref LL_HRTIM_BM_TRIG_TIMA_REPETITION
7416   *         @arg @ref LL_HRTIM_BM_TRIG_TIMA_CMP1
7417   *         @arg @ref LL_HRTIM_BM_TRIG_TIMA_CMP2
7418   *         @arg @ref LL_HRTIM_BM_TRIG_TIMB_RESET
7419   *         @arg @ref LL_HRTIM_BM_TRIG_TIMB_REPETITION
7420   *         @arg @ref LL_HRTIM_BM_TRIG_TIMB_CMP1
7421   *         @arg @ref LL_HRTIM_BM_TRIG_TIMB_CMP2
7422   *         @arg @ref LL_HRTIM_BM_TRIG_TIMC_RESET
7423   *         @arg @ref LL_HRTIM_BM_TRIG_TIMC_REPETITION
7424   *         @arg @ref LL_HRTIM_BM_TRIG_TIMC_CMP1
7425   *         @arg @ref LL_HRTIM_BM_TRIG_TIMC_CMP2
7426   *         @arg @ref LL_HRTIM_BM_TRIG_TIMD_RESET
7427   *         @arg @ref LL_HRTIM_BM_TRIG_TIMD_REPETITION
7428   *         @arg @ref LL_HRTIM_BM_TRIG_TIMD_CMP1
7429   *         @arg @ref LL_HRTIM_BM_TRIG_TIMD_CMP2
7430   *         @arg @ref LL_HRTIM_BM_TRIG_TIME_RESET
7431   *         @arg @ref LL_HRTIM_BM_TRIG_TIME_REPETITION
7432   *         @arg @ref LL_HRTIM_BM_TRIG_TIME_CMP1
7433   *         @arg @ref LL_HRTIM_BM_TRIG_TIME_CMP2
7434   *         @arg @ref LL_HRTIM_BM_TRIG_TIMA_EVENT7
7435   *         @arg @ref LL_HRTIM_BM_TRIG_TIMD_EVENT8
7436   *         @arg @ref LL_HRTIM_BM_TRIG_EVENT_7
7437   *         @arg @ref LL_HRTIM_BM_TRIG_EVENT_8
7438   *         @arg @ref LL_HRTIM_BM_TRIG_EVENT_ONCHIP
7439     * @retval None
7440   */
7441 __STATIC_INLINE void LL_HRTIM_BM_SetTrig(HRTIM_TypeDef *HRTIMx, uint32_t Trig)
7442 {
7443   WRITE_REG(HRTIMx->sCommonRegs.BMTRGR, Trig);
7444 }
7445 
7446 /**
7447   * @brief  Get actual burst mode controller trigger.
7448   * @rmtoll BMTRGR     SW           LL_HRTIM_BM_GetTrig\n
7449   *         BMTRGR     MSTRST       LL_HRTIM_BM_GetTrig\n
7450   *         BMTRGR     MSTREP       LL_HRTIM_BM_GetTrig\n
7451   *         BMTRGR     MSTCMP1      LL_HRTIM_BM_GetTrig\n
7452   *         BMTRGR     MSTCMP2      LL_HRTIM_BM_GetTrig\n
7453   *         BMTRGR     MSTCMP3      LL_HRTIM_BM_GetTrig\n
7454   *         BMTRGR     MSTCMP4      LL_HRTIM_BM_GetTrig\n
7455   *         BMTRGR     TARST        LL_HRTIM_BM_GetTrig\n
7456   *         BMTRGR     TAREP        LL_HRTIM_BM_GetTrig\n
7457   *         BMTRGR     TACMP1       LL_HRTIM_BM_GetTrig\n
7458   *         BMTRGR     TACMP2       LL_HRTIM_BM_GetTrig\n
7459   *         BMTRGR     TBRST        LL_HRTIM_BM_GetTrig\n
7460   *         BMTRGR     TBREP        LL_HRTIM_BM_GetTrig\n
7461   *         BMTRGR     TBCMP1       LL_HRTIM_BM_GetTrig\n
7462   *         BMTRGR     TBCMP2       LL_HRTIM_BM_GetTrig\n
7463   *         BMTRGR     TCRST        LL_HRTIM_BM_GetTrig\n
7464   *         BMTRGR     TCREP        LL_HRTIM_BM_GetTrig\n
7465   *         BMTRGR     TCCMP1       LL_HRTIM_BM_GetTrig\n
7466   *         BMTRGR     TCCMP2       LL_HRTIM_BM_GetTrig\n
7467   *         BMTRGR     TDRST        LL_HRTIM_BM_GetTrig\n
7468   *         BMTRGR     TDREP        LL_HRTIM_BM_GetTrig\n
7469   *         BMTRGR     TDCMP1       LL_HRTIM_BM_GetTrig\n
7470   *         BMTRGR     TDCMP2       LL_HRTIM_BM_GetTrig\n
7471   *         BMTRGR     TERST        LL_HRTIM_BM_GetTrig\n
7472   *         BMTRGR     TEREP        LL_HRTIM_BM_GetTrig\n
7473   *         BMTRGR     TECMP1       LL_HRTIM_BM_GetTrig\n
7474   *         BMTRGR     TECMP2       LL_HRTIM_BM_GetTrig\n
7475   *         BMTRGR     TAEEV7       LL_HRTIM_BM_GetTrig\n
7476   *         BMTRGR     TAEEV8       LL_HRTIM_BM_GetTrig\n
7477   *         BMTRGR     EEV7         LL_HRTIM_BM_GetTrig\n
7478   *         BMTRGR     EEV8         LL_HRTIM_BM_GetTrig\n
7479   *         BMTRGR     OCHIPEV      LL_HRTIM_BM_GetTrig
7480   * @param  HRTIMx High Resolution Timer instance
7481   * @retval Trig This parameter can be a combination of the following values:
7482   *         @arg @ref LL_HRTIM_BM_TRIG_NONE
7483   *         @arg @ref LL_HRTIM_BM_TRIG_MASTER_RESET
7484   *         @arg @ref LL_HRTIM_BM_TRIG_MASTER_REPETITION
7485   *         @arg @ref LL_HRTIM_BM_TRIG_MASTER_CMP1
7486   *         @arg @ref LL_HRTIM_BM_TRIG_MASTER_CMP2
7487   *         @arg @ref LL_HRTIM_BM_TRIG_MASTER_CMP3
7488   *         @arg @ref LL_HRTIM_BM_TRIG_MASTER_CMP4
7489   *         @arg @ref LL_HRTIM_BM_TRIG_TIMA_RESET
7490   *         @arg @ref LL_HRTIM_BM_TRIG_TIMA_REPETITION
7491   *         @arg @ref LL_HRTIM_BM_TRIG_TIMA_CMP1
7492   *         @arg @ref LL_HRTIM_BM_TRIG_TIMA_CMP2
7493   *         @arg @ref LL_HRTIM_BM_TRIG_TIMB_RESET
7494   *         @arg @ref LL_HRTIM_BM_TRIG_TIMB_REPETITION
7495   *         @arg @ref LL_HRTIM_BM_TRIG_TIMB_CMP1
7496   *         @arg @ref LL_HRTIM_BM_TRIG_TIMB_CMP2
7497   *         @arg @ref LL_HRTIM_BM_TRIG_TIMC_RESET
7498   *         @arg @ref LL_HRTIM_BM_TRIG_TIMC_REPETITION
7499   *         @arg @ref LL_HRTIM_BM_TRIG_TIMC_CMP1
7500   *         @arg @ref LL_HRTIM_BM_TRIG_TIMC_CMP2
7501   *         @arg @ref LL_HRTIM_BM_TRIG_TIMD_RESET
7502   *         @arg @ref LL_HRTIM_BM_TRIG_TIMD_REPETITION
7503   *         @arg @ref LL_HRTIM_BM_TRIG_TIMD_CMP1
7504   *         @arg @ref LL_HRTIM_BM_TRIG_TIMD_CMP2
7505   *         @arg @ref LL_HRTIM_BM_TRIG_TIME_RESET
7506   *         @arg @ref LL_HRTIM_BM_TRIG_TIME_REPETITION
7507   *         @arg @ref LL_HRTIM_BM_TRIG_TIME_CMP1
7508   *         @arg @ref LL_HRTIM_BM_TRIG_TIME_CMP2
7509   *         @arg @ref LL_HRTIM_BM_TRIG_TIMA_EVENT7
7510   *         @arg @ref LL_HRTIM_BM_TRIG_TIMD_EVENT8
7511   *         @arg @ref LL_HRTIM_BM_TRIG_EVENT_7
7512   *         @arg @ref LL_HRTIM_BM_TRIG_EVENT_8
7513   *         @arg @ref LL_HRTIM_BM_TRIG_EVENT_ONCHIP
7514   */
7515 __STATIC_INLINE uint32_t LL_HRTIM_BM_GetTrig(const HRTIM_TypeDef *HRTIMx)
7516 {
7517   return (uint32_t)READ_REG(HRTIMx->sCommonRegs.BMTRGR);
7518 }
7519 
7520 /**
7521   * @brief  Set the burst mode controller compare value.
7522   * @rmtoll BMCMPR     BMCMP      LL_HRTIM_BM_SetCompare
7523   * @param  HRTIMx High Resolution Timer instance
7524   * @param  CompareValue Compare value must be above or equal to 3
7525   *         periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0,
7526   *         0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,...
7527   * @retval None
7528   */
7529 __STATIC_INLINE void LL_HRTIM_BM_SetCompare(HRTIM_TypeDef *HRTIMx, uint32_t CompareValue)
7530 {
7531   WRITE_REG(HRTIMx->sCommonRegs.BMCMPR, CompareValue);
7532 }
7533 
7534 /**
7535   * @brief  Get actual burst mode controller compare value.
7536   * @rmtoll BMCMPR     BMCMP      LL_HRTIM_BM_GetCompare
7537   * @param  HRTIMx High Resolution Timer instance
7538   * @retval CompareValue Compare value must be above or equal to 3
7539   *         periods of the fHRTIM clock, that is 0x60 if CKPSC[2:0] = 0,
7540   *         0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,...
7541   */
7542 __STATIC_INLINE uint32_t LL_HRTIM_BM_GetCompare(const HRTIM_TypeDef *HRTIMx)
7543 {
7544   return (uint32_t)READ_REG(HRTIMx->sCommonRegs.BMCMPR);
7545 }
7546 
7547 /**
7548   * @brief  Set the burst mode controller period.
7549   * @rmtoll BMPER     BMPER      LL_HRTIM_BM_SetPeriod
7550   * @param  HRTIMx High Resolution Timer instance
7551   * @param  Period The period value must be above or equal to 3 periods of the fHRTIM clock,
7552   *         that is 0x60 if CKPSC[2:0] = 0, 0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,...
7553   *         The maximum value is 0x0000 FFDF.
7554   * @retval None
7555   */
7556 __STATIC_INLINE void LL_HRTIM_BM_SetPeriod(HRTIM_TypeDef *HRTIMx, uint32_t Period)
7557 {
7558   WRITE_REG(HRTIMx->sCommonRegs.BMPER, Period);
7559 }
7560 
7561 /**
7562   * @brief  Get actual burst mode controller period.
7563   * @rmtoll BMPER     BMPER      LL_HRTIM_BM_GetPeriod
7564   * @param  HRTIMx High Resolution Timer instance
7565   * @retval The period value must be above or equal to 3 periods of the fHRTIM clock,
7566   *         that is 0x60 if CKPSC[2:0] = 0, 0x30 if CKPSC[2:0] = 1, 0x18 if CKPSC[2:0] = 2,...
7567   *         The maximum value is 0x0000 FFDF.
7568   */
7569 __STATIC_INLINE uint32_t LL_HRTIM_BM_GetPeriod(const HRTIM_TypeDef *HRTIMx)
7570 {
7571   return (uint32_t)READ_REG(HRTIMx->sCommonRegs.BMPER);
7572 }
7573 
7574 /**
7575   * @brief  Enable the burst mode controller
7576   * @rmtoll BMCR     BME      LL_HRTIM_BM_Enable
7577   * @param  HRTIMx High Resolution Timer instance
7578   * @retval None
7579   */
7580 __STATIC_INLINE void LL_HRTIM_BM_Enable(HRTIM_TypeDef *HRTIMx)
7581 {
7582   SET_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BME);
7583 }
7584 
7585 /**
7586   * @brief  Disable the burst mode controller
7587   * @rmtoll BMCR     BME      LL_HRTIM_BM_Disable
7588   * @param  HRTIMx High Resolution Timer instance
7589   * @retval None
7590   */
7591 __STATIC_INLINE void LL_HRTIM_BM_Disable(HRTIM_TypeDef *HRTIMx)
7592 {
7593   CLEAR_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BME);
7594 }
7595 
7596 /**
7597   * @brief  Indicate whether the burst mode controller is enabled.
7598   * @rmtoll BMCR     BME      LL_HRTIM_BM_IsEnabled
7599   * @param  HRTIMx High Resolution Timer instance
7600   * @retval State of BME bit in HRTIM_BMCR register (1 or 0).
7601   */
7602 __STATIC_INLINE uint32_t LL_HRTIM_BM_IsEnabled(const HRTIM_TypeDef *HRTIMx)
7603 {
7604   return ((READ_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BME) == (HRTIM_BMCR_BME)) ? 1UL : 0UL);
7605 }
7606 
7607 /**
7608   * @brief  Trigger the burst operation (software trigger)
7609   * @rmtoll BMTRGR     SW           LL_HRTIM_BM_Start
7610   * @param  HRTIMx High Resolution Timer instance
7611   * @retval None
7612   */
7613 __STATIC_INLINE void LL_HRTIM_BM_Start(HRTIM_TypeDef *HRTIMx)
7614 {
7615   SET_BIT(HRTIMx->sCommonRegs.BMTRGR, HRTIM_BMTRGR_SW);
7616 }
7617 
7618 /**
7619   * @brief  Stop the burst mode operation.
7620   * @rmtoll BMCR     BMSTAT           LL_HRTIM_BM_Stop
7621   * @note Causes a burst mode early termination.
7622   * @param  HRTIMx High Resolution Timer instance
7623   * @retval None
7624   */
7625 __STATIC_INLINE void LL_HRTIM_BM_Stop(HRTIM_TypeDef *HRTIMx)
7626 {
7627   CLEAR_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMSTAT);
7628 }
7629 
7630 /**
7631   * @brief  Get actual burst mode status
7632   * @rmtoll BMCR     BMSTAT           LL_HRTIM_BM_GetStatus
7633   * @param  HRTIMx High Resolution Timer instance
7634   * @retval Status This parameter can be one of the following values:
7635   *         @arg @ref LL_HRTIM_BM_STATUS_NORMAL
7636   *         @arg @ref LL_HRTIM_BM_STATUS_BURST_ONGOING
7637   */
7638 __STATIC_INLINE uint32_t LL_HRTIM_BM_GetStatus(const HRTIM_TypeDef *HRTIMx)
7639 {
7640   return (READ_BIT(HRTIMx->sCommonRegs.BMCR, HRTIM_BMCR_BMSTAT));
7641 }
7642 
7643 /**
7644   * @}
7645   */
7646 
7647 /** @defgroup HRTIM_LL_EF_FLAG_Management FLAG_Management
7648   * @ingroup RTEMSBSPsARMSTM32H7
7649   * @{
7650   */
7651 
7652 /**
7653   * @brief  Clear the Fault 1 interrupt flag.
7654   * @rmtoll ICR     FLT1C           LL_HRTIM_ClearFlag_FLT1
7655   * @param  HRTIMx High Resolution Timer instance
7656   * @retval None
7657   */
7658 __STATIC_INLINE void LL_HRTIM_ClearFlag_FLT1(HRTIM_TypeDef *HRTIMx)
7659 {
7660   SET_BIT(HRTIMx->sCommonRegs.ICR, HRTIM_ICR_FLT1C);
7661 }
7662 
7663 /**
7664   * @brief  Indicate whether Fault 1 interrupt occurred.
7665   * @rmtoll ICR     FLT1           LL_HRTIM_IsActiveFlag_FLT1
7666   * @param  HRTIMx High Resolution Timer instance
7667   * @retval State of FLT1 bit in HRTIM_ISR register (1 or 0).
7668   */
7669 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_FLT1(const HRTIM_TypeDef *HRTIMx)
7670 {
7671   return ((READ_BIT(HRTIMx->sCommonRegs.ISR, HRTIM_ISR_FLT1) == (HRTIM_ISR_FLT1)) ? 1UL : 0UL);
7672 }
7673 
7674 /**
7675   * @brief  Clear the Fault 2 interrupt flag.
7676   * @rmtoll ICR     FLT2C           LL_HRTIM_ClearFlag_FLT2
7677   * @param  HRTIMx High Resolution Timer instance
7678   * @retval None
7679   */
7680 __STATIC_INLINE void LL_HRTIM_ClearFlag_FLT2(HRTIM_TypeDef *HRTIMx)
7681 {
7682   SET_BIT(HRTIMx->sCommonRegs.ICR, HRTIM_ICR_FLT2C);
7683 }
7684 
7685 /**
7686   * @brief  Indicate whether Fault 2 interrupt occurred.
7687   * @rmtoll ICR     FLT2           LL_HRTIM_IsActiveFlag_FLT2
7688   * @param  HRTIMx High Resolution Timer instance
7689   * @retval State of FLT2 bit in HRTIM_ISR register (1 or 0).
7690   */
7691 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_FLT2(const HRTIM_TypeDef *HRTIMx)
7692 {
7693   return ((READ_BIT(HRTIMx->sCommonRegs.ISR, HRTIM_ISR_FLT2) == (HRTIM_ISR_FLT2)) ? 1UL : 0UL);
7694 }
7695 
7696 /**
7697   * @brief  Clear the Fault 3 interrupt flag.
7698   * @rmtoll ICR     FLT3C           LL_HRTIM_ClearFlag_FLT3
7699   * @param  HRTIMx High Resolution Timer instance
7700   * @retval None
7701   */
7702 __STATIC_INLINE void LL_HRTIM_ClearFlag_FLT3(HRTIM_TypeDef *HRTIMx)
7703 {
7704   SET_BIT(HRTIMx->sCommonRegs.ICR, HRTIM_ICR_FLT3C);
7705 }
7706 
7707 /**
7708   * @brief  Indicate whether Fault 3 interrupt occurred.
7709   * @rmtoll ICR     FLT3           LL_HRTIM_IsActiveFlag_FLT3
7710   * @param  HRTIMx High Resolution Timer instance
7711   * @retval State of FLT3 bit in HRTIM_ISR register (1 or 0).
7712   */
7713 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_FLT3(const HRTIM_TypeDef *HRTIMx)
7714 {
7715   return ((READ_BIT(HRTIMx->sCommonRegs.ISR, HRTIM_ISR_FLT3) == (HRTIM_ISR_FLT3)) ? 1UL : 0UL);
7716 }
7717 
7718 /**
7719   * @brief  Clear the Fault 4 interrupt flag.
7720   * @rmtoll ICR     FLT4C           LL_HRTIM_ClearFlag_FLT4
7721   * @param  HRTIMx High Resolution Timer instance
7722   * @retval None
7723   */
7724 __STATIC_INLINE void LL_HRTIM_ClearFlag_FLT4(HRTIM_TypeDef *HRTIMx)
7725 {
7726   SET_BIT(HRTIMx->sCommonRegs.ICR, HRTIM_ICR_FLT4C);
7727 }
7728 
7729 /**
7730   * @brief  Indicate whether Fault 4 interrupt occurred.
7731   * @rmtoll ICR     FLT4           LL_HRTIM_IsActiveFlag_FLT4
7732   * @param  HRTIMx High Resolution Timer instance
7733   * @retval State of FLT4 bit in HRTIM_ISR register (1 or 0).
7734   */
7735 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_FLT4(const HRTIM_TypeDef *HRTIMx)
7736 {
7737   return ((READ_BIT(HRTIMx->sCommonRegs.ISR, HRTIM_ISR_FLT4) == (HRTIM_ISR_FLT4)) ? 1UL : 0UL);
7738 }
7739 
7740 /**
7741   * @brief  Clear the Fault 5 interrupt flag.
7742   * @rmtoll ICR     FLT5C           LL_HRTIM_ClearFlag_FLT5
7743   * @param  HRTIMx High Resolution Timer instance
7744   * @retval None
7745   */
7746 __STATIC_INLINE void LL_HRTIM_ClearFlag_FLT5(HRTIM_TypeDef *HRTIMx)
7747 {
7748   SET_BIT(HRTIMx->sCommonRegs.ICR, HRTIM_ICR_FLT5C);
7749 }
7750 
7751 /**
7752   * @brief  Indicate whether Fault 5 interrupt occurred.
7753   * @rmtoll ICR     FLT5           LL_HRTIM_IsActiveFlag_FLT5
7754   * @param  HRTIMx High Resolution Timer instance
7755   * @retval State of FLT5 bit in HRTIM_ISR register (1 or 0).
7756   */
7757 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_FLT5(const HRTIM_TypeDef *HRTIMx)
7758 {
7759   return ((READ_BIT(HRTIMx->sCommonRegs.ISR, HRTIM_ISR_FLT5) == (HRTIM_ISR_FLT5)) ? 1UL : 0UL);
7760 }
7761 
7762 /**
7763   * @brief  Clear the System Fault interrupt flag.
7764   * @rmtoll ICR     SYSFLTC           LL_HRTIM_ClearFlag_SYSFLT
7765   * @param  HRTIMx High Resolution Timer instance
7766   * @retval None
7767   */
7768 __STATIC_INLINE void LL_HRTIM_ClearFlag_SYSFLT(HRTIM_TypeDef *HRTIMx)
7769 {
7770   SET_BIT(HRTIMx->sCommonRegs.ICR, HRTIM_ICR_SYSFLTC);
7771 }
7772 
7773 /**
7774   * @brief  Indicate whether System Fault interrupt occurred.
7775   * @rmtoll ISR     SYSFLT           LL_HRTIM_IsActiveFlag_SYSFLT
7776   * @param  HRTIMx High Resolution Timer instance
7777   * @retval State of SYSFLT bit in HRTIM_ISR register (1 or 0).
7778   */
7779 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_SYSFLT(const HRTIM_TypeDef *HRTIMx)
7780 {
7781   return ((READ_BIT(HRTIMx->sCommonRegs.ISR, HRTIM_ISR_SYSFLT) == (HRTIM_ISR_SYSFLT)) ? 1UL : 0UL);
7782 }
7783 
7784 /**
7785   * @brief  Clear the Burst Mode period interrupt flag.
7786   * @rmtoll ICR     BMPERC           LL_HRTIM_ClearFlag_BMPER
7787   * @param  HRTIMx High Resolution Timer instance
7788   * @retval None
7789   */
7790 __STATIC_INLINE void LL_HRTIM_ClearFlag_BMPER(HRTIM_TypeDef *HRTIMx)
7791 {
7792   SET_BIT(HRTIMx->sCommonRegs.ICR, HRTIM_ICR_BMPERC);
7793 }
7794 
7795 /**
7796   * @brief  Indicate whether Burst Mode period interrupt occurred.
7797   * @rmtoll ISR     BMPER           LL_HRTIM_IsActiveFlag_BMPER
7798   * @param  HRTIMx High Resolution Timer instance
7799   * @retval State of BMPER bit in HRTIM_ISR register (1 or 0).
7800   */
7801 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_BMPER(const HRTIM_TypeDef *HRTIMx)
7802 {
7803   return ((READ_BIT(HRTIMx->sCommonRegs.ISR, HRTIM_ISR_BMPER) == (HRTIM_ISR_BMPER)) ? 1UL : 0UL);
7804 }
7805 
7806 /**
7807   * @brief  Clear the Synchronization Input interrupt flag.
7808   * @rmtoll MICR     SYNCC           LL_HRTIM_ClearFlag_SYNC
7809   * @param  HRTIMx High Resolution Timer instance
7810   * @retval None
7811   */
7812 __STATIC_INLINE void LL_HRTIM_ClearFlag_SYNC(HRTIM_TypeDef *HRTIMx)
7813 {
7814   SET_BIT(HRTIMx->sMasterRegs.MICR, HRTIM_MICR_SYNC);
7815 }
7816 
7817 /**
7818   * @brief  Indicate whether the Synchronization Input interrupt occurred.
7819   * @rmtoll MISR     SYNC           LL_HRTIM_IsActiveFlag_SYNC
7820   * @param  HRTIMx High Resolution Timer instance
7821   * @retval State of SYNC bit in HRTIM_MISR register  (1 or 0).
7822   */
7823 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_SYNC(const HRTIM_TypeDef *HRTIMx)
7824 {
7825   return ((READ_BIT(HRTIMx->sMasterRegs.MISR, HRTIM_MISR_SYNC) == (HRTIM_MISR_SYNC)) ? 1UL : 0UL);
7826 }
7827 
7828 /**
7829   * @brief  Clear the update interrupt flag for a given timer (including the master timer) .
7830   * @rmtoll MICR        MUPDC          LL_HRTIM_ClearFlag_UPDATE\n
7831   *         TIMxICR     UPDC           LL_HRTIM_ClearFlag_UPDATE
7832   * @param  HRTIMx High Resolution Timer instance
7833   * @param  Timer This parameter can be one of the following values:
7834   *         @arg @ref LL_HRTIM_TIMER_MASTER
7835   *         @arg @ref LL_HRTIM_TIMER_A
7836   *         @arg @ref LL_HRTIM_TIMER_B
7837   *         @arg @ref LL_HRTIM_TIMER_C
7838   *         @arg @ref LL_HRTIM_TIMER_D
7839   *         @arg @ref LL_HRTIM_TIMER_E
7840   * @retval None
7841   */
7842 __STATIC_INLINE void LL_HRTIM_ClearFlag_UPDATE(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
7843 {
7844   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
7845   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
7846                                                               REG_OFFSET_TAB_TIMER[iTimer]));
7847   SET_BIT(*pReg, HRTIM_MICR_MUPD);
7848 }
7849 
7850 /**
7851   * @brief  Indicate whether the update interrupt has occurred for a given timer (including the master timer) .
7852   * @rmtoll MISR        MUPD          LL_HRTIM_IsActiveFlag_UPDATE\n
7853   *         TIMxISR     UPD           LL_HRTIM_IsActiveFlag_UPDATE
7854   * @param  HRTIMx High Resolution Timer instance
7855   * @param  Timer This parameter can be one of the following values:
7856   *         @arg @ref LL_HRTIM_TIMER_MASTER
7857   *         @arg @ref LL_HRTIM_TIMER_A
7858   *         @arg @ref LL_HRTIM_TIMER_B
7859   *         @arg @ref LL_HRTIM_TIMER_C
7860   *         @arg @ref LL_HRTIM_TIMER_D
7861   *         @arg @ref LL_HRTIM_TIMER_E
7862   * @retval State of MUPD/UPD bit in HRTIM_MISR/HRTIM_TIMxISR register (1 or 0).
7863   */
7864 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_UPDATE(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
7865 {
7866   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
7867   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
7868                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
7869 
7870   return ((READ_BIT(*pReg, HRTIM_MISR_MUPD) == (HRTIM_MISR_MUPD)) ? 1UL : 0UL);
7871 }
7872 
7873 /**
7874   * @brief  Clear the repetition interrupt flag for a given timer (including the master timer) .
7875   * @rmtoll MICR        MREPC          LL_HRTIM_ClearFlag_REP\n
7876   *         TIMxICR     REPC           LL_HRTIM_ClearFlag_REP
7877   * @param  HRTIMx High Resolution Timer instance
7878   * @param  Timer This parameter can be one of the following values:
7879   *         @arg @ref LL_HRTIM_TIMER_MASTER
7880   *         @arg @ref LL_HRTIM_TIMER_A
7881   *         @arg @ref LL_HRTIM_TIMER_B
7882   *         @arg @ref LL_HRTIM_TIMER_C
7883   *         @arg @ref LL_HRTIM_TIMER_D
7884   *         @arg @ref LL_HRTIM_TIMER_E
7885   * @retval None
7886   */
7887 __STATIC_INLINE void LL_HRTIM_ClearFlag_REP(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
7888 {
7889   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
7890   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
7891                                                               REG_OFFSET_TAB_TIMER[iTimer]));
7892   SET_BIT(*pReg, HRTIM_MICR_MREP);
7893 
7894 }
7895 
7896 /**
7897   * @brief  Indicate whether the repetition  interrupt has occurred for a given timer (including the master timer) .
7898   * @rmtoll MISR        MREP          LL_HRTIM_IsActiveFlag_REP\n
7899   *         TIMxISR     REP           LL_HRTIM_IsActiveFlag_REP
7900   * @param  HRTIMx High Resolution Timer instance
7901   * @param  Timer This parameter can be one of the following values:
7902   *         @arg @ref LL_HRTIM_TIMER_MASTER
7903   *         @arg @ref LL_HRTIM_TIMER_A
7904   *         @arg @ref LL_HRTIM_TIMER_B
7905   *         @arg @ref LL_HRTIM_TIMER_C
7906   *         @arg @ref LL_HRTIM_TIMER_D
7907   *         @arg @ref LL_HRTIM_TIMER_E
7908   * @retval State of MREP/REP bit in HRTIM_MISR/HRTIM_TIMxISR register (1 or 0).
7909   */
7910 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_REP(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
7911 {
7912   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
7913   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
7914                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
7915 
7916   return ((READ_BIT(*pReg, HRTIM_MISR_MREP) == (HRTIM_MISR_MREP)) ? 1UL : 0UL);
7917 }
7918 
7919 /**
7920   * @brief  Clear the compare 1 match interrupt for a given timer (including the master timer).
7921   * @rmtoll MICR        MCMP1C          LL_HRTIM_ClearFlag_CMP1\n
7922   *         TIMxICR     CMP1C           LL_HRTIM_ClearFlag_CMP1
7923   * @param  HRTIMx High Resolution Timer instance
7924   * @param  Timer This parameter can be one of the following values:
7925   *         @arg @ref LL_HRTIM_TIMER_MASTER
7926   *         @arg @ref LL_HRTIM_TIMER_A
7927   *         @arg @ref LL_HRTIM_TIMER_B
7928   *         @arg @ref LL_HRTIM_TIMER_C
7929   *         @arg @ref LL_HRTIM_TIMER_D
7930   *         @arg @ref LL_HRTIM_TIMER_E
7931   * @retval None
7932   */
7933 __STATIC_INLINE void LL_HRTIM_ClearFlag_CMP1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
7934 {
7935   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
7936   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
7937                                                               REG_OFFSET_TAB_TIMER[iTimer]));
7938   SET_BIT(*pReg, HRTIM_MICR_MCMP1);
7939 }
7940 
7941 /**
7942   * @brief  Indicate whether the compare match 1  interrupt has occurred for a given timer (including the master timer) .
7943   * @rmtoll MISR        MCMP1          LL_HRTIM_IsActiveFlag_CMP1\n
7944   *         TIMxISR     CMP1           LL_HRTIM_IsActiveFlag_CMP1
7945   * @param  HRTIMx High Resolution Timer instance
7946   * @param  Timer This parameter can be one of the following values:
7947   *         @arg @ref LL_HRTIM_TIMER_MASTER
7948   *         @arg @ref LL_HRTIM_TIMER_A
7949   *         @arg @ref LL_HRTIM_TIMER_B
7950   *         @arg @ref LL_HRTIM_TIMER_C
7951   *         @arg @ref LL_HRTIM_TIMER_D
7952   *         @arg @ref LL_HRTIM_TIMER_E
7953   * @retval State of MCMP1/CMP1 bit in HRTIM_MISR/HRTIM_TIMxISR register (1 or 0).
7954   */
7955 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_CMP1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
7956 {
7957   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
7958   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
7959                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
7960 
7961   return ((READ_BIT(*pReg, HRTIM_MISR_MCMP1) == (HRTIM_MISR_MCMP1)) ? 1UL : 0UL);
7962 }
7963 
7964 /**
7965   * @brief  Clear the compare 2 match interrupt for a given timer (including the master timer).
7966   * @rmtoll MICR        MCMP2C          LL_HRTIM_ClearFlag_CMP2\n
7967   *         TIMxICR     CMP2C           LL_HRTIM_ClearFlag_CMP2
7968   * @param  HRTIMx High Resolution Timer instance
7969   * @param  Timer This parameter can be one of the following values:
7970   *         @arg @ref LL_HRTIM_TIMER_MASTER
7971   *         @arg @ref LL_HRTIM_TIMER_A
7972   *         @arg @ref LL_HRTIM_TIMER_B
7973   *         @arg @ref LL_HRTIM_TIMER_C
7974   *         @arg @ref LL_HRTIM_TIMER_D
7975   *         @arg @ref LL_HRTIM_TIMER_E
7976   * @retval None
7977   */
7978 __STATIC_INLINE void LL_HRTIM_ClearFlag_CMP2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
7979 {
7980   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
7981   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
7982                                                               REG_OFFSET_TAB_TIMER[iTimer]));
7983   SET_BIT(*pReg, HRTIM_MICR_MCMP2);
7984 }
7985 
7986 /**
7987   * @brief  Indicate whether the compare match 2  interrupt has occurred for a given timer (including the master timer) .
7988   * @rmtoll MISR        MCMP2          LL_HRTIM_IsActiveFlag_CMP2\n
7989   *         TIMxISR     CMP2           LL_HRTIM_IsActiveFlag_CMP2
7990   * @param  HRTIMx High Resolution Timer instance
7991   * @param  Timer This parameter can be one of the following values:
7992   *         @arg @ref LL_HRTIM_TIMER_MASTER
7993   *         @arg @ref LL_HRTIM_TIMER_A
7994   *         @arg @ref LL_HRTIM_TIMER_B
7995   *         @arg @ref LL_HRTIM_TIMER_C
7996   *         @arg @ref LL_HRTIM_TIMER_D
7997   *         @arg @ref LL_HRTIM_TIMER_E
7998   * @retval State of MCMP2/CMP2 bit in HRTIM_MISR/HRTIM_TIMxISR register (1 or 0).
7999   */
8000 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_CMP2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8001 {
8002   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8003   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
8004                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
8005 
8006   return ((READ_BIT(*pReg, HRTIM_MISR_MCMP2) == (HRTIM_MISR_MCMP2)) ? 1UL : 0UL);
8007 }
8008 
8009 /**
8010   * @brief  Clear the compare 3 match interrupt for a given timer (including the master timer).
8011   * @rmtoll MICR        MCMP3C          LL_HRTIM_ClearFlag_CMP3\n
8012   *         TIMxICR     CMP3C           LL_HRTIM_ClearFlag_CMP3
8013   * @param  HRTIMx High Resolution Timer instance
8014   * @param  Timer This parameter can be one of the following values:
8015   *         @arg @ref LL_HRTIM_TIMER_MASTER
8016   *         @arg @ref LL_HRTIM_TIMER_A
8017   *         @arg @ref LL_HRTIM_TIMER_B
8018   *         @arg @ref LL_HRTIM_TIMER_C
8019   *         @arg @ref LL_HRTIM_TIMER_D
8020   *         @arg @ref LL_HRTIM_TIMER_E
8021   * @retval None
8022   */
8023 __STATIC_INLINE void LL_HRTIM_ClearFlag_CMP3(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8024 {
8025   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8026   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
8027                                                               REG_OFFSET_TAB_TIMER[iTimer]));
8028   SET_BIT(*pReg, HRTIM_MICR_MCMP3);
8029 }
8030 
8031 /**
8032   * @brief  Indicate whether the compare match 3  interrupt has occurred for a given timer (including the master timer) .
8033   * @rmtoll MISR        MCMP3          LL_HRTIM_IsActiveFlag_CMP3\n
8034   *         TIMxISR     CMP3           LL_HRTIM_IsActiveFlag_CMP3
8035   * @param  HRTIMx High Resolution Timer instance
8036   * @param  Timer This parameter can be one of the following values:
8037   *         @arg @ref LL_HRTIM_TIMER_MASTER
8038   *         @arg @ref LL_HRTIM_TIMER_A
8039   *         @arg @ref LL_HRTIM_TIMER_B
8040   *         @arg @ref LL_HRTIM_TIMER_C
8041   *         @arg @ref LL_HRTIM_TIMER_D
8042   *         @arg @ref LL_HRTIM_TIMER_E
8043   * @retval State of MCMP3/CMP3 bit in HRTIM_MISR/HRTIM_TIMxISR register (1 or 0).
8044   */
8045 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_CMP3(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8046 {
8047   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8048   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
8049                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
8050 
8051   return ((READ_BIT(*pReg, HRTIM_MISR_MCMP3) == (HRTIM_MISR_MCMP3)) ? 1UL : 0UL);
8052 }
8053 
8054 /**
8055   * @brief  Clear the compare 4 match interrupt for a given timer (including the master timer).
8056   * @rmtoll MICR        MCMP4C          LL_HRTIM_ClearFlag_CMP4\n
8057   *         TIMxICR     CMP4C           LL_HRTIM_ClearFlag_CMP4
8058   * @param  HRTIMx High Resolution Timer instance
8059   * @param  Timer This parameter can be one of the following values:
8060   *         @arg @ref LL_HRTIM_TIMER_MASTER
8061   *         @arg @ref LL_HRTIM_TIMER_A
8062   *         @arg @ref LL_HRTIM_TIMER_B
8063   *         @arg @ref LL_HRTIM_TIMER_C
8064   *         @arg @ref LL_HRTIM_TIMER_D
8065   *         @arg @ref LL_HRTIM_TIMER_E
8066   * @retval None
8067   */
8068 __STATIC_INLINE void LL_HRTIM_ClearFlag_CMP4(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8069 {
8070   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8071   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
8072                                                               REG_OFFSET_TAB_TIMER[iTimer]));
8073   SET_BIT(*pReg, HRTIM_MICR_MCMP4);
8074 }
8075 
8076 /**
8077   * @brief  Indicate whether the compare match 4  interrupt has occurred for a given timer (including the master timer) .
8078   * @rmtoll MISR        MCMP4          LL_HRTIM_IsActiveFlag_CMP4\n
8079   *         TIMxISR     CMP4           LL_HRTIM_IsActiveFlag_CMP4
8080   * @param  HRTIMx High Resolution Timer instance
8081   * @param  Timer This parameter can be one of the following values:
8082   *         @arg @ref LL_HRTIM_TIMER_MASTER
8083   *         @arg @ref LL_HRTIM_TIMER_A
8084   *         @arg @ref LL_HRTIM_TIMER_B
8085   *         @arg @ref LL_HRTIM_TIMER_C
8086   *         @arg @ref LL_HRTIM_TIMER_D
8087   *         @arg @ref LL_HRTIM_TIMER_E
8088   * @retval State of MCMP4/CMP4 bit in HRTIM_MISR/HRTIM_TIMxISR register (1 or 0).
8089   */
8090 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_CMP4(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8091 {
8092   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8093   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
8094                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
8095 
8096   return ((READ_BIT(*pReg, HRTIM_MISR_MCMP4) == (HRTIM_MISR_MCMP4)) ? 1UL : 0UL);
8097 }
8098 
8099 /**
8100   * @brief  Clear the capture 1 interrupt flag for a given timer.
8101   * @rmtoll TIMxICR     CPT1C           LL_HRTIM_ClearFlag_CPT1
8102   * @param  HRTIMx High Resolution Timer instance
8103   * @param  Timer This parameter can be one of the following values:
8104   *         @arg @ref LL_HRTIM_TIMER_A
8105   *         @arg @ref LL_HRTIM_TIMER_B
8106   *         @arg @ref LL_HRTIM_TIMER_C
8107   *         @arg @ref LL_HRTIM_TIMER_D
8108   *         @arg @ref LL_HRTIM_TIMER_E
8109   * @retval None
8110   */
8111 __STATIC_INLINE void LL_HRTIM_ClearFlag_CPT1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8112 {
8113   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8114   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
8115                                                               REG_OFFSET_TAB_TIMER[iTimer]));
8116   SET_BIT(*pReg, HRTIM_TIMICR_CPT1C);
8117 }
8118 
8119 /**
8120   * @brief  Indicate whether the capture 1 interrupt occurred for a given timer.
8121   * @rmtoll TIMxISR     CPT1           LL_HRTIM_IsActiveFlag_CPT1
8122   * @param  HRTIMx High Resolution Timer instance
8123   * @param  Timer This parameter can be one of the following values:
8124   *         @arg @ref LL_HRTIM_TIMER_A
8125   *         @arg @ref LL_HRTIM_TIMER_B
8126   *         @arg @ref LL_HRTIM_TIMER_C
8127   *         @arg @ref LL_HRTIM_TIMER_D
8128   *         @arg @ref LL_HRTIM_TIMER_E
8129   * @retval State of CPT1 bit in HRTIM_TIMxISR register (1 or 0).
8130   */
8131 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_CPT1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8132 {
8133   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8134   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
8135                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
8136 
8137   return ((READ_BIT(*pReg, HRTIM_TIMISR_CPT1) == (HRTIM_TIMISR_CPT1)) ? 1UL : 0UL);
8138 }
8139 
8140 /**
8141   * @brief  Clear the capture 2 interrupt flag for a given timer.
8142   * @rmtoll TIMxICR     CPT2C           LL_HRTIM_ClearFlag_CPT2
8143   * @param  HRTIMx High Resolution Timer instance
8144   * @param  Timer This parameter can be one of the following values:
8145   *         @arg @ref LL_HRTIM_TIMER_A
8146   *         @arg @ref LL_HRTIM_TIMER_B
8147   *         @arg @ref LL_HRTIM_TIMER_C
8148   *         @arg @ref LL_HRTIM_TIMER_D
8149   *         @arg @ref LL_HRTIM_TIMER_E
8150   * @retval None
8151   */
8152 __STATIC_INLINE void LL_HRTIM_ClearFlag_CPT2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8153 {
8154   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8155   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
8156                                                               REG_OFFSET_TAB_TIMER[iTimer]));
8157   SET_BIT(*pReg, HRTIM_TIMICR_CPT2C);
8158 }
8159 
8160 /**
8161   * @brief  Indicate whether the capture 2 interrupt occurred for a given timer.
8162   * @rmtoll TIMxISR     CPT2           LL_HRTIM_IsActiveFlag_CPT2
8163   * @param  HRTIMx High Resolution Timer instance
8164   * @param  Timer This parameter can be one of the following values:
8165   *         @arg @ref LL_HRTIM_TIMER_A
8166   *         @arg @ref LL_HRTIM_TIMER_B
8167   *         @arg @ref LL_HRTIM_TIMER_C
8168   *         @arg @ref LL_HRTIM_TIMER_D
8169   *         @arg @ref LL_HRTIM_TIMER_E
8170   * @retval State of CPT2 bit in HRTIM_TIMxISR register (1 or 0).
8171   */
8172 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_CPT2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8173 {
8174   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8175   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
8176                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
8177 
8178   return ((READ_BIT(*pReg, HRTIM_TIMISR_CPT2) == (HRTIM_TIMISR_CPT2)) ? 1UL : 0UL);
8179 }
8180 
8181 /**
8182   * @brief  Clear the output 1 set interrupt flag for a given timer.
8183   * @rmtoll TIMxICR     SET1C           LL_HRTIM_ClearFlag_SET1
8184   * @param  HRTIMx High Resolution Timer instance
8185   * @param  Timer This parameter can be one of the following values:
8186   *         @arg @ref LL_HRTIM_TIMER_A
8187   *         @arg @ref LL_HRTIM_TIMER_B
8188   *         @arg @ref LL_HRTIM_TIMER_C
8189   *         @arg @ref LL_HRTIM_TIMER_D
8190   *         @arg @ref LL_HRTIM_TIMER_E
8191   * @retval None
8192   */
8193 __STATIC_INLINE void LL_HRTIM_ClearFlag_SET1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8194 {
8195   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8196   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
8197                                                               REG_OFFSET_TAB_TIMER[iTimer]));
8198   SET_BIT(*pReg, HRTIM_TIMICR_SET1C);
8199 }
8200 
8201 /**
8202   * @brief  Indicate whether the output 1 set interrupt occurred for a given timer.
8203   * @rmtoll TIMxISR     SET1           LL_HRTIM_IsActiveFlag_SET1
8204   * @param  HRTIMx High Resolution Timer instance
8205   * @param  Timer This parameter can be one of the following values:
8206   *         @arg @ref LL_HRTIM_TIMER_A
8207   *         @arg @ref LL_HRTIM_TIMER_B
8208   *         @arg @ref LL_HRTIM_TIMER_C
8209   *         @arg @ref LL_HRTIM_TIMER_D
8210   *         @arg @ref LL_HRTIM_TIMER_E
8211   * @retval State of SETx1 bit in HRTIM_TIMxISR register (1 or 0).
8212   */
8213 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_SET1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8214 {
8215   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8216   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
8217                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
8218 
8219   return ((READ_BIT(*pReg, HRTIM_TIMISR_SET1) == (HRTIM_TIMISR_SET1)) ? 1UL : 0UL);
8220 }
8221 
8222 /**
8223   * @brief  Clear the output 1 reset interrupt flag for a given timer.
8224   * @rmtoll TIMxICR     RST1C           LL_HRTIM_ClearFlag_RST1
8225   * @param  HRTIMx High Resolution Timer instance
8226   * @param  Timer This parameter can be one of the following values:
8227   *         @arg @ref LL_HRTIM_TIMER_A
8228   *         @arg @ref LL_HRTIM_TIMER_B
8229   *         @arg @ref LL_HRTIM_TIMER_C
8230   *         @arg @ref LL_HRTIM_TIMER_D
8231   *         @arg @ref LL_HRTIM_TIMER_E
8232   * @retval None
8233   */
8234 __STATIC_INLINE void LL_HRTIM_ClearFlag_RST1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8235 {
8236   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8237   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
8238                                                               REG_OFFSET_TAB_TIMER[iTimer]));
8239   SET_BIT(*pReg, HRTIM_TIMICR_RST1C);
8240 }
8241 
8242 /**
8243   * @brief  Indicate whether the output 1 reset interrupt occurred for a given timer.
8244   * @rmtoll TIMxISR     RST1           LL_HRTIM_IsActiveFlag_RST1
8245   * @param  HRTIMx High Resolution Timer instance
8246   * @param  Timer This parameter can be one of the following values:
8247   *         @arg @ref LL_HRTIM_TIMER_A
8248   *         @arg @ref LL_HRTIM_TIMER_B
8249   *         @arg @ref LL_HRTIM_TIMER_C
8250   *         @arg @ref LL_HRTIM_TIMER_D
8251   *         @arg @ref LL_HRTIM_TIMER_E
8252   * @retval State of RSTx1 bit in HRTIM_TIMxISR register (1 or 0).
8253   */
8254 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_RST1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8255 {
8256   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8257   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
8258                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
8259 
8260   return ((READ_BIT(*pReg, HRTIM_TIMISR_RST1) == (HRTIM_TIMISR_RST1)) ? 1UL : 0UL);
8261 }
8262 
8263 /**
8264   * @brief  Clear the output 2 set interrupt flag for a given timer.
8265   * @rmtoll TIMxICR     SET2C           LL_HRTIM_ClearFlag_SET2
8266   * @param  HRTIMx High Resolution Timer instance
8267   * @param  Timer This parameter can be one of the following values:
8268   *         @arg @ref LL_HRTIM_TIMER_A
8269   *         @arg @ref LL_HRTIM_TIMER_B
8270   *         @arg @ref LL_HRTIM_TIMER_C
8271   *         @arg @ref LL_HRTIM_TIMER_D
8272   *         @arg @ref LL_HRTIM_TIMER_E
8273   * @retval None
8274   */
8275 __STATIC_INLINE void LL_HRTIM_ClearFlag_SET2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8276 {
8277   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8278   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
8279                                                               REG_OFFSET_TAB_TIMER[iTimer]));
8280   SET_BIT(*pReg, HRTIM_TIMICR_SET2C);
8281 }
8282 
8283 /**
8284   * @brief  Indicate whether the output 2 set interrupt occurred for a given timer.
8285   * @rmtoll TIMxISR     SET2           LL_HRTIM_IsActiveFlag_SET2
8286   * @param  HRTIMx High Resolution Timer instance
8287   * @param  Timer This parameter can be one of the following values:
8288   *         @arg @ref LL_HRTIM_TIMER_A
8289   *         @arg @ref LL_HRTIM_TIMER_B
8290   *         @arg @ref LL_HRTIM_TIMER_C
8291   *         @arg @ref LL_HRTIM_TIMER_D
8292   *         @arg @ref LL_HRTIM_TIMER_E
8293   * @retval State of SETx2 bit in HRTIM_TIMxISR register (1 or 0).
8294   */
8295 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_SET2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8296 {
8297   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8298   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
8299                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
8300 
8301   return ((READ_BIT(*pReg, HRTIM_TIMISR_SET2) == (HRTIM_TIMISR_SET2)) ? 1UL : 0UL);
8302 }
8303 
8304 /**
8305   * @brief  Clear the output 2reset interrupt flag for a given timer.
8306   * @rmtoll TIMxICR     RST2C           LL_HRTIM_ClearFlag_RST2
8307   * @param  HRTIMx High Resolution Timer instance
8308   * @param  Timer This parameter can be one of the following values:
8309   *         @arg @ref LL_HRTIM_TIMER_A
8310   *         @arg @ref LL_HRTIM_TIMER_B
8311   *         @arg @ref LL_HRTIM_TIMER_C
8312   *         @arg @ref LL_HRTIM_TIMER_D
8313   *         @arg @ref LL_HRTIM_TIMER_E
8314   * @retval None
8315   */
8316 __STATIC_INLINE void LL_HRTIM_ClearFlag_RST2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8317 {
8318   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8319   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
8320                                                               REG_OFFSET_TAB_TIMER[iTimer]));
8321   SET_BIT(*pReg, HRTIM_TIMICR_RST2C);
8322 }
8323 
8324 /**
8325   * @brief  Indicate whether the output 2 reset interrupt occurred for a given timer.
8326   * @rmtoll TIMxISR     RST2           LL_HRTIM_IsActiveFlag_RST2
8327   * @param  HRTIMx High Resolution Timer instance
8328   * @param  Timer This parameter can be one of the following values:
8329   *         @arg @ref LL_HRTIM_TIMER_A
8330   *         @arg @ref LL_HRTIM_TIMER_B
8331   *         @arg @ref LL_HRTIM_TIMER_C
8332   *         @arg @ref LL_HRTIM_TIMER_D
8333   *         @arg @ref LL_HRTIM_TIMER_E
8334   * @retval State of RSTx2 bit in HRTIM_TIMxISR register (1 or 0).
8335   */
8336 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_RST2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8337 {
8338   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8339   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
8340                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
8341 
8342   return ((READ_BIT(*pReg, HRTIM_TIMISR_RST2) == (HRTIM_TIMISR_RST2)) ? 1UL : 0UL);
8343 }
8344 
8345 /**
8346   * @brief  Clear the reset and/or roll-over interrupt flag for a given timer.
8347   * @rmtoll TIMxICR     RSTC           LL_HRTIM_ClearFlag_RST
8348   * @param  HRTIMx High Resolution Timer instance
8349   * @param  Timer This parameter can be one of the following values:
8350   *         @arg @ref LL_HRTIM_TIMER_A
8351   *         @arg @ref LL_HRTIM_TIMER_B
8352   *         @arg @ref LL_HRTIM_TIMER_C
8353   *         @arg @ref LL_HRTIM_TIMER_D
8354   *         @arg @ref LL_HRTIM_TIMER_E
8355   * @retval None
8356   */
8357 __STATIC_INLINE void LL_HRTIM_ClearFlag_RST(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8358 {
8359   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8360   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
8361                                                               REG_OFFSET_TAB_TIMER[iTimer]));
8362   SET_BIT(*pReg, HRTIM_TIMICR_RSTC);
8363 }
8364 
8365 /**
8366   * @brief  Indicate whether the  reset and/or roll-over interrupt occurred for a given timer.
8367   * @rmtoll TIMxISR     RST           LL_HRTIM_IsActiveFlag_RST
8368   * @param  HRTIMx High Resolution Timer instance
8369   * @param  Timer This parameter can be one of the following values:
8370   *         @arg @ref LL_HRTIM_TIMER_A
8371   *         @arg @ref LL_HRTIM_TIMER_B
8372   *         @arg @ref LL_HRTIM_TIMER_C
8373   *         @arg @ref LL_HRTIM_TIMER_D
8374   *         @arg @ref LL_HRTIM_TIMER_E
8375   * @retval State of RST bit in HRTIM_TIMxISR register (1 or 0).
8376   */
8377 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_RST(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8378 {
8379   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8380   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
8381                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
8382 
8383   return ((READ_BIT(*pReg, HRTIM_TIMISR_RST) == (HRTIM_TIMISR_RST)) ? 1UL : 0UL);
8384 }
8385 
8386 /**
8387   * @brief  Clear the delayed protection interrupt flag for a given timer.
8388   * @rmtoll TIMxICR     DLYPRTC           LL_HRTIM_ClearFlag_DLYPRT
8389   * @param  HRTIMx High Resolution Timer instance
8390   * @param  Timer This parameter can be one of the following values:
8391   *         @arg @ref LL_HRTIM_TIMER_A
8392   *         @arg @ref LL_HRTIM_TIMER_B
8393   *         @arg @ref LL_HRTIM_TIMER_C
8394   *         @arg @ref LL_HRTIM_TIMER_D
8395   *         @arg @ref LL_HRTIM_TIMER_E
8396   * @retval None
8397   */
8398 __STATIC_INLINE void LL_HRTIM_ClearFlag_DLYPRT(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8399 {
8400   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8401   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MICR) +
8402                                                               REG_OFFSET_TAB_TIMER[iTimer]));
8403   SET_BIT(*pReg, HRTIM_TIMICR_DLYPRTC);
8404 }
8405 
8406 /**
8407   * @brief  Indicate whether the  delayed protection interrupt occurred for a given timer.
8408   * @rmtoll TIMxISR     DLYPRT           LL_HRTIM_IsActiveFlag_DLYPRT
8409   * @param  HRTIMx High Resolution Timer instance
8410   * @param  Timer This parameter can be one of the following values:
8411   *         @arg @ref LL_HRTIM_TIMER_A
8412   *         @arg @ref LL_HRTIM_TIMER_B
8413   *         @arg @ref LL_HRTIM_TIMER_C
8414   *         @arg @ref LL_HRTIM_TIMER_D
8415   *         @arg @ref LL_HRTIM_TIMER_E
8416   * @retval State of DLYPRT bit in HRTIM_TIMxISR register (1 or 0).
8417   */
8418 __STATIC_INLINE uint32_t LL_HRTIM_IsActiveFlag_DLYPRT(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8419 {
8420   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8421   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MISR) +
8422                                                                     REG_OFFSET_TAB_TIMER[iTimer]));
8423 
8424   return ((READ_BIT(*pReg, HRTIM_TIMISR_DLYPRT) == (HRTIM_TIMISR_DLYPRT)) ? 1UL : 0UL);
8425 }
8426 
8427 /**
8428   * @}
8429   */
8430 
8431 /** @defgroup HRTIM_LL_EF_IT_Management IT_Management
8432   * @ingroup RTEMSBSPsARMSTM32H7
8433   * @{
8434   */
8435 
8436 /**
8437   * @brief  Enable the fault 1 interrupt.
8438   * @rmtoll IER     FLT1IE           LL_HRTIM_EnableIT_FLT1
8439   * @param  HRTIMx High Resolution Timer instance
8440   * @retval None
8441   */
8442 __STATIC_INLINE void LL_HRTIM_EnableIT_FLT1(HRTIM_TypeDef *HRTIMx)
8443 {
8444   SET_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT1);
8445 }
8446 
8447 /**
8448   * @brief  Disable the fault 1 interrupt.
8449   * @rmtoll IER     FLT1IE           LL_HRTIM_DisableIT_FLT1
8450   * @param  HRTIMx High Resolution Timer instance
8451   * @retval None
8452   */
8453 __STATIC_INLINE void LL_HRTIM_DisableIT_FLT1(HRTIM_TypeDef *HRTIMx)
8454 {
8455   CLEAR_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT1);
8456 }
8457 
8458 /**
8459   * @brief  Indicate whether the fault 1 interrupt is enabled.
8460   * @rmtoll IER     FLT1IE           LL_HRTIM_IsEnabledIT_FLT1
8461   * @param  HRTIMx High Resolution Timer instance
8462   * @retval State of FLT1IE bit in HRTIM_IER register (1 or 0).
8463   */
8464 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_FLT1(const HRTIM_TypeDef *HRTIMx)
8465 {
8466   return ((READ_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT1) == (HRTIM_IER_FLT1)) ? 1UL : 0UL);
8467 }
8468 
8469 /**
8470   * @brief  Enable the fault 2 interrupt.
8471   * @rmtoll IER     FLT2IE           LL_HRTIM_EnableIT_FLT2
8472   * @param  HRTIMx High Resolution Timer instance
8473   * @retval None
8474   */
8475 __STATIC_INLINE void LL_HRTIM_EnableIT_FLT2(HRTIM_TypeDef *HRTIMx)
8476 {
8477   SET_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT2);
8478 }
8479 
8480 /**
8481   * @brief  Disable the fault 2 interrupt.
8482   * @rmtoll IER     FLT2IE           LL_HRTIM_DisableIT_FLT2
8483   * @param  HRTIMx High Resolution Timer instance
8484   * @retval None
8485   */
8486 __STATIC_INLINE void LL_HRTIM_DisableIT_FLT2(HRTIM_TypeDef *HRTIMx)
8487 {
8488   CLEAR_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT2);
8489 }
8490 
8491 /**
8492   * @brief  Indicate whether the fault 2 interrupt is enabled.
8493   * @rmtoll IER     FLT2IE           LL_HRTIM_IsEnabledIT_FLT2
8494   * @param  HRTIMx High Resolution Timer instance
8495   * @retval State of FLT2IE bit in HRTIM_IER register (1 or 0).
8496   */
8497 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_FLT2(const HRTIM_TypeDef *HRTIMx)
8498 {
8499   return ((READ_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT2) == (HRTIM_IER_FLT2)) ? 1UL : 0UL);
8500 }
8501 
8502 /**
8503   * @brief  Enable the fault 3 interrupt.
8504   * @rmtoll IER     FLT3IE           LL_HRTIM_EnableIT_FLT3
8505   * @param  HRTIMx High Resolution Timer instance
8506   * @retval None
8507   */
8508 __STATIC_INLINE void LL_HRTIM_EnableIT_FLT3(HRTIM_TypeDef *HRTIMx)
8509 {
8510   SET_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT3);
8511 }
8512 
8513 /**
8514   * @brief  Disable the fault 3 interrupt.
8515   * @rmtoll IER     FLT3IE           LL_HRTIM_DisableIT_FLT3
8516   * @param  HRTIMx High Resolution Timer instance
8517   * @retval None
8518   */
8519 __STATIC_INLINE void LL_HRTIM_DisableIT_FLT3(HRTIM_TypeDef *HRTIMx)
8520 {
8521   CLEAR_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT3);
8522 }
8523 
8524 /**
8525   * @brief  Indicate whether the fault 3 interrupt is enabled.
8526   * @rmtoll IER     FLT3IE           LL_HRTIM_IsEnabledIT_FLT3
8527   * @param  HRTIMx High Resolution Timer instance
8528   * @retval State of FLT3IE bit in HRTIM_IER register (1 or 0).
8529   */
8530 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_FLT3(const HRTIM_TypeDef *HRTIMx)
8531 {
8532   return ((READ_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT3) == (HRTIM_IER_FLT3)) ? 1UL : 0UL);
8533 }
8534 
8535 /**
8536   * @brief  Enable the fault 4 interrupt.
8537   * @rmtoll IER     FLT4IE           LL_HRTIM_EnableIT_FLT4
8538   * @param  HRTIMx High Resolution Timer instance
8539   * @retval None
8540   */
8541 __STATIC_INLINE void LL_HRTIM_EnableIT_FLT4(HRTIM_TypeDef *HRTIMx)
8542 {
8543   SET_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT4);
8544 }
8545 
8546 /**
8547   * @brief  Disable the fault 4 interrupt.
8548   * @rmtoll IER     FLT4IE           LL_HRTIM_DisableIT_FLT4
8549   * @param  HRTIMx High Resolution Timer instance
8550   * @retval None
8551   */
8552 __STATIC_INLINE void LL_HRTIM_DisableIT_FLT4(HRTIM_TypeDef *HRTIMx)
8553 {
8554   CLEAR_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT4);
8555 }
8556 
8557 /**
8558   * @brief  Indicate whether the fault 4 interrupt is enabled.
8559   * @rmtoll IER     FLT4IE           LL_HRTIM_IsEnabledIT_FLT4
8560   * @param  HRTIMx High Resolution Timer instance
8561   * @retval State of FLT4IE bit in HRTIM_IER register (1 or 0).
8562   */
8563 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_FLT4(const HRTIM_TypeDef *HRTIMx)
8564 {
8565   return ((READ_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT4) == (HRTIM_IER_FLT4)) ? 1UL : 0UL);
8566 }
8567 
8568 /**
8569   * @brief  Enable the fault 5 interrupt.
8570   * @rmtoll IER     FLT5IE           LL_HRTIM_EnableIT_FLT5
8571   * @param  HRTIMx High Resolution Timer instance
8572   * @retval None
8573   */
8574 __STATIC_INLINE void LL_HRTIM_EnableIT_FLT5(HRTIM_TypeDef *HRTIMx)
8575 {
8576   SET_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT5);
8577 }
8578 
8579 /**
8580   * @brief  Disable the fault 5 interrupt.
8581   * @rmtoll IER     FLT5IE           LL_HRTIM_DisableIT_FLT5
8582   * @param  HRTIMx High Resolution Timer instance
8583   * @retval None
8584   */
8585 __STATIC_INLINE void LL_HRTIM_DisableIT_FLT5(HRTIM_TypeDef *HRTIMx)
8586 {
8587   CLEAR_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT5);
8588 }
8589 
8590 /**
8591   * @brief  Indicate whether the fault 5 interrupt is enabled.
8592   * @rmtoll IER     FLT5IE           LL_HRTIM_IsEnabledIT_FLT5
8593   * @param  HRTIMx High Resolution Timer instance
8594   * @retval State of FLT5IE bit in HRTIM_IER register (1 or 0).
8595   */
8596 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_FLT5(const HRTIM_TypeDef *HRTIMx)
8597 {
8598   return ((READ_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_FLT5) == (HRTIM_IER_FLT5)) ? 1UL : 0UL);
8599 }
8600 
8601 /**
8602   * @brief  Enable the system fault interrupt.
8603   * @rmtoll IER     SYSFLTIE           LL_HRTIM_EnableIT_SYSFLT
8604   * @param  HRTIMx High Resolution Timer instance
8605   * @retval None
8606   */
8607 __STATIC_INLINE void LL_HRTIM_EnableIT_SYSFLT(HRTIM_TypeDef *HRTIMx)
8608 {
8609   SET_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_SYSFLT);
8610 }
8611 
8612 /**
8613   * @brief  Disable the system fault interrupt.
8614   * @rmtoll IER     SYSFLTIE           LL_HRTIM_DisableIT_SYSFLT
8615   * @param  HRTIMx High Resolution Timer instance
8616   * @retval None
8617   */
8618 __STATIC_INLINE void LL_HRTIM_DisableIT_SYSFLT(HRTIM_TypeDef *HRTIMx)
8619 {
8620   CLEAR_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_SYSFLT);
8621 }
8622 
8623 /**
8624   * @brief  Indicate whether the system fault interrupt is enabled.
8625   * @rmtoll IER     SYSFLTIE           LL_HRTIM_IsEnabledIT_SYSFLT
8626   * @param  HRTIMx High Resolution Timer instance
8627   * @retval State of SYSFLTIE bit in HRTIM_IER register (1 or 0).
8628   */
8629 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_SYSFLT(const HRTIM_TypeDef *HRTIMx)
8630 {
8631   return ((READ_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_SYSFLT) == (HRTIM_IER_SYSFLT)) ? 1UL : 0UL);
8632 }
8633 
8634 /**
8635   * @brief  Enable the burst mode period interrupt.
8636   * @rmtoll IER     BMPERIE           LL_HRTIM_EnableIT_BMPER
8637   * @param  HRTIMx High Resolution Timer instance
8638   * @retval None
8639   */
8640 __STATIC_INLINE void LL_HRTIM_EnableIT_BMPER(HRTIM_TypeDef *HRTIMx)
8641 {
8642   SET_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_BMPER);
8643 }
8644 
8645 /**
8646   * @brief  Disable the burst mode period interrupt.
8647   * @rmtoll IER     BMPERIE           LL_HRTIM_DisableIT_BMPER
8648   * @param  HRTIMx High Resolution Timer instance
8649   * @retval None
8650   */
8651 __STATIC_INLINE void LL_HRTIM_DisableIT_BMPER(HRTIM_TypeDef *HRTIMx)
8652 {
8653   CLEAR_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_BMPER);
8654 }
8655 
8656 /**
8657   * @brief  Indicate whether the burst mode period interrupt is enabled.
8658   * @rmtoll IER     BMPERIE           LL_HRTIM_IsEnabledIT_BMPER
8659   * @param  HRTIMx High Resolution Timer instance
8660   * @retval State of BMPERIE bit in HRTIM_IER register (1 or 0).
8661   */
8662 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_BMPER(const HRTIM_TypeDef *HRTIMx)
8663 {
8664   return ((READ_BIT(HRTIMx->sCommonRegs.IER, HRTIM_IER_BMPER) == (HRTIM_IER_BMPER)) ? 1UL : 0UL);
8665 }
8666 
8667 /**
8668   * @brief  Enable the synchronization input interrupt.
8669   * @rmtoll MDIER     SYNCIE           LL_HRTIM_EnableIT_SYNC
8670   * @param  HRTIMx High Resolution Timer instance
8671   * @retval None
8672   */
8673 __STATIC_INLINE void LL_HRTIM_EnableIT_SYNC(HRTIM_TypeDef *HRTIMx)
8674 {
8675   SET_BIT(HRTIMx->sMasterRegs.MDIER, HRTIM_MDIER_SYNCIE);
8676 }
8677 
8678 /**
8679   * @brief  Disable the synchronization input interrupt.
8680   * @rmtoll MDIER     SYNCIE           LL_HRTIM_DisableIT_SYNC
8681   * @param  HRTIMx High Resolution Timer instance
8682   * @retval None
8683   */
8684 __STATIC_INLINE void LL_HRTIM_DisableIT_SYNC(HRTIM_TypeDef *HRTIMx)
8685 {
8686   CLEAR_BIT(HRTIMx->sMasterRegs.MDIER, HRTIM_MDIER_SYNCIE);
8687 }
8688 
8689 /**
8690   * @brief  Indicate whether the synchronization input interrupt is enabled.
8691   * @rmtoll MDIER     SYNCIE           LL_HRTIM_IsEnabledIT_SYNC
8692   * @param  HRTIMx High Resolution Timer instance
8693   * @retval State of SYNCIE bit in HRTIM_MDIER register (1 or 0).
8694   */
8695 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_SYNC(const HRTIM_TypeDef *HRTIMx)
8696 {
8697   return ((READ_BIT(HRTIMx->sMasterRegs.MDIER, HRTIM_MDIER_SYNCIE) == (HRTIM_MDIER_SYNCIE)) ? 1UL : 0UL);
8698 }
8699 
8700 /**
8701   * @brief  Enable the update interrupt for a given timer.
8702   * @rmtoll MDIER        MUPDIE           LL_HRTIM_EnableIT_UPDATE\n
8703   *         TIMxDIER     UPDIE            LL_HRTIM_EnableIT_UPDATE
8704   * @param  HRTIMx High Resolution Timer instance
8705   * @param  Timer This parameter can be one of the following values:
8706   *         @arg @ref LL_HRTIM_TIMER_MASTER
8707   *         @arg @ref LL_HRTIM_TIMER_A
8708   *         @arg @ref LL_HRTIM_TIMER_B
8709   *         @arg @ref LL_HRTIM_TIMER_C
8710   *         @arg @ref LL_HRTIM_TIMER_D
8711   *         @arg @ref LL_HRTIM_TIMER_E
8712   * @retval None
8713   */
8714 __STATIC_INLINE void LL_HRTIM_EnableIT_UPDATE(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8715 {
8716   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8717   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
8718                                                     REG_OFFSET_TAB_TIMER[iTimer]));
8719   SET_BIT(*pReg, HRTIM_MDIER_MUPDIE);
8720 }
8721 
8722 /**
8723   * @brief  Disable the update interrupt for a given timer.
8724   * @rmtoll MDIER        MUPDIE           LL_HRTIM_DisableIT_UPDATE\n
8725   *         TIMxDIER     UPDIE            LL_HRTIM_DisableIT_UPDATE
8726   * @param  HRTIMx High Resolution Timer instance
8727   * @param  Timer This parameter can be one of the following values:
8728   *         @arg @ref LL_HRTIM_TIMER_MASTER
8729   *         @arg @ref LL_HRTIM_TIMER_A
8730   *         @arg @ref LL_HRTIM_TIMER_B
8731   *         @arg @ref LL_HRTIM_TIMER_C
8732   *         @arg @ref LL_HRTIM_TIMER_D
8733   *         @arg @ref LL_HRTIM_TIMER_E
8734   * @retval None
8735   */
8736 __STATIC_INLINE void LL_HRTIM_DisableIT_UPDATE(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8737 {
8738   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8739   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
8740                                                     REG_OFFSET_TAB_TIMER[iTimer]));
8741   CLEAR_BIT(*pReg, HRTIM_MDIER_MUPDIE);
8742 }
8743 
8744 /**
8745   * @brief  Indicate whether the update interrupt is enabled for a given timer.
8746   * @rmtoll MDIER        MUPDIE           LL_HRTIM_IsEnabledIT_UPDATE\n
8747   *         TIMxDIER     UPDIE            LL_HRTIM_IsEnabledIT_UPDATE
8748   * @param  HRTIMx High Resolution Timer instance
8749   * @param  Timer This parameter can be one of the following values:
8750   *         @arg @ref LL_HRTIM_TIMER_MASTER
8751   *         @arg @ref LL_HRTIM_TIMER_A
8752   *         @arg @ref LL_HRTIM_TIMER_B
8753   *         @arg @ref LL_HRTIM_TIMER_C
8754   *         @arg @ref LL_HRTIM_TIMER_D
8755   *         @arg @ref LL_HRTIM_TIMER_E
8756   * @retval State of MUPDIE/UPDIE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0).
8757   */
8758 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_UPDATE(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8759 {
8760   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8761   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
8762                                                     REG_OFFSET_TAB_TIMER[iTimer]));
8763 
8764   return ((READ_BIT(*pReg, HRTIM_MDIER_MUPDIE) == (HRTIM_MDIER_MUPDIE)) ? 1UL : 0UL);
8765 }
8766 
8767 /**
8768   * @brief  Enable the repetition interrupt for a given timer.
8769   * @rmtoll MDIER        MREPIE           LL_HRTIM_EnableIT_REP\n
8770   *         TIMxDIER     REPIE            LL_HRTIM_EnableIT_REP
8771   * @param  HRTIMx High Resolution Timer instance
8772   * @param  Timer This parameter can be one of the following values:
8773   *         @arg @ref LL_HRTIM_TIMER_MASTER
8774   *         @arg @ref LL_HRTIM_TIMER_A
8775   *         @arg @ref LL_HRTIM_TIMER_B
8776   *         @arg @ref LL_HRTIM_TIMER_C
8777   *         @arg @ref LL_HRTIM_TIMER_D
8778   *         @arg @ref LL_HRTIM_TIMER_E
8779   * @retval None
8780   */
8781 __STATIC_INLINE void LL_HRTIM_EnableIT_REP(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8782 {
8783   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8784   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
8785                                                     REG_OFFSET_TAB_TIMER[iTimer]));
8786   SET_BIT(*pReg, HRTIM_MDIER_MREPIE);
8787 }
8788 
8789 /**
8790   * @brief  Disable the repetition interrupt for a given timer.
8791   * @rmtoll MDIER        MREPIE           LL_HRTIM_DisableIT_REP\n
8792   *         TIMxDIER     REPIE            LL_HRTIM_DisableIT_REP
8793   * @param  HRTIMx High Resolution Timer instance
8794   * @param  Timer This parameter can be one of the following values:
8795   *         @arg @ref LL_HRTIM_TIMER_MASTER
8796   *         @arg @ref LL_HRTIM_TIMER_A
8797   *         @arg @ref LL_HRTIM_TIMER_B
8798   *         @arg @ref LL_HRTIM_TIMER_C
8799   *         @arg @ref LL_HRTIM_TIMER_D
8800   *         @arg @ref LL_HRTIM_TIMER_E
8801   * @retval None
8802   */
8803 __STATIC_INLINE void LL_HRTIM_DisableIT_REP(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8804 {
8805   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8806   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
8807                                                     REG_OFFSET_TAB_TIMER[iTimer]));
8808   CLEAR_BIT(*pReg, HRTIM_MDIER_MREPIE);
8809 }
8810 
8811 /**
8812   * @brief  Indicate whether the repetition interrupt is enabled for a given timer.
8813   * @rmtoll MDIER        MREPIE           LL_HRTIM_IsEnabledIT_REP\n
8814   *         TIMxDIER     REPIE            LL_HRTIM_IsEnabledIT_REP
8815   * @param  HRTIMx High Resolution Timer instance
8816   * @param  Timer This parameter can be one of the following values:
8817   *         @arg @ref LL_HRTIM_TIMER_MASTER
8818   *         @arg @ref LL_HRTIM_TIMER_A
8819   *         @arg @ref LL_HRTIM_TIMER_B
8820   *         @arg @ref LL_HRTIM_TIMER_C
8821   *         @arg @ref LL_HRTIM_TIMER_D
8822   *         @arg @ref LL_HRTIM_TIMER_E
8823   * @retval State of MREPIE/REPIE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0).
8824   */
8825 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_REP(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8826 {
8827   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8828   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
8829                                                     REG_OFFSET_TAB_TIMER[iTimer]));
8830 
8831   return ((READ_BIT(*pReg, HRTIM_MDIER_MREPIE) == (HRTIM_MDIER_MREPIE)) ? 1UL : 0UL);
8832 }
8833 
8834 /**
8835   * @brief  Enable the compare 1 interrupt for a given timer.
8836   * @rmtoll MDIER        MCMP1IE           LL_HRTIM_EnableIT_CMP1\n
8837   *         TIMxDIER     CMP1IE            LL_HRTIM_EnableIT_CMP1
8838   * @param  HRTIMx High Resolution Timer instance
8839   * @param  Timer This parameter can be one of the following values:
8840   *         @arg @ref LL_HRTIM_TIMER_MASTER
8841   *         @arg @ref LL_HRTIM_TIMER_A
8842   *         @arg @ref LL_HRTIM_TIMER_B
8843   *         @arg @ref LL_HRTIM_TIMER_C
8844   *         @arg @ref LL_HRTIM_TIMER_D
8845   *         @arg @ref LL_HRTIM_TIMER_E
8846   * @retval None
8847   */
8848 __STATIC_INLINE void LL_HRTIM_EnableIT_CMP1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8849 {
8850   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8851   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
8852                                                     REG_OFFSET_TAB_TIMER[iTimer]));
8853   SET_BIT(*pReg, HRTIM_MDIER_MCMP1IE);
8854 }
8855 
8856 /**
8857   * @brief  Disable the compare 1 interrupt for a given timer.
8858   * @rmtoll MDIER        MCMP1IE           LL_HRTIM_DisableIT_CMP1\n
8859   *         TIMxDIER     CMP1IE            LL_HRTIM_DisableIT_CMP1
8860   * @param  HRTIMx High Resolution Timer instance
8861   * @param  Timer This parameter can be one of the following values:
8862   *         @arg @ref LL_HRTIM_TIMER_MASTER
8863   *         @arg @ref LL_HRTIM_TIMER_A
8864   *         @arg @ref LL_HRTIM_TIMER_B
8865   *         @arg @ref LL_HRTIM_TIMER_C
8866   *         @arg @ref LL_HRTIM_TIMER_D
8867   *         @arg @ref LL_HRTIM_TIMER_E
8868   * @retval None
8869   */
8870 __STATIC_INLINE void LL_HRTIM_DisableIT_CMP1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8871 {
8872   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8873   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
8874                                                     REG_OFFSET_TAB_TIMER[iTimer]));
8875   CLEAR_BIT(*pReg, HRTIM_MDIER_MCMP1IE);
8876 }
8877 
8878 /**
8879   * @brief  Indicate whether the compare 1 interrupt is enabled for a given timer.
8880   * @rmtoll MDIER        MCMP1IE           LL_HRTIM_IsEnabledIT_CMP1\n
8881   *         TIMxDIER     CMP1IE            LL_HRTIM_IsEnabledIT_CMP1
8882   * @param  HRTIMx High Resolution Timer instance
8883   * @param  Timer This parameter can be one of the following values:
8884   *         @arg @ref LL_HRTIM_TIMER_MASTER
8885   *         @arg @ref LL_HRTIM_TIMER_A
8886   *         @arg @ref LL_HRTIM_TIMER_B
8887   *         @arg @ref LL_HRTIM_TIMER_C
8888   *         @arg @ref LL_HRTIM_TIMER_D
8889   *         @arg @ref LL_HRTIM_TIMER_E
8890   * @retval State of MCMP1IE/CMP1IE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0).
8891   */
8892 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_CMP1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8893 {
8894   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8895   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
8896                                                     REG_OFFSET_TAB_TIMER[iTimer]));
8897 
8898   return ((READ_BIT(*pReg, HRTIM_MDIER_MCMP1IE) == (HRTIM_MDIER_MCMP1IE)) ? 1UL : 0UL);
8899 }
8900 
8901 /**
8902   * @brief  Enable the compare 2 interrupt for a given timer.
8903   * @rmtoll MDIER        MCMP2IE           LL_HRTIM_EnableIT_CMP2\n
8904   *         TIMxDIER     CMP2IE            LL_HRTIM_EnableIT_CMP2
8905   * @param  HRTIMx High Resolution Timer instance
8906   * @param  Timer This parameter can be one of the following values:
8907   *         @arg @ref LL_HRTIM_TIMER_MASTER
8908   *         @arg @ref LL_HRTIM_TIMER_A
8909   *         @arg @ref LL_HRTIM_TIMER_B
8910   *         @arg @ref LL_HRTIM_TIMER_C
8911   *         @arg @ref LL_HRTIM_TIMER_D
8912   *         @arg @ref LL_HRTIM_TIMER_E
8913   * @retval None
8914   */
8915 __STATIC_INLINE void LL_HRTIM_EnableIT_CMP2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8916 {
8917   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8918   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
8919                                                     REG_OFFSET_TAB_TIMER[iTimer]));
8920   SET_BIT(*pReg, HRTIM_MDIER_MCMP2IE);
8921 }
8922 
8923 /**
8924   * @brief  Disable the compare 2 interrupt for a given timer.
8925   * @rmtoll MDIER        MCMP2IE           LL_HRTIM_DisableIT_CMP2\n
8926   *         TIMxDIER     CMP2IE            LL_HRTIM_DisableIT_CMP2
8927   * @param  HRTIMx High Resolution Timer instance
8928   * @param  Timer This parameter can be one of the following values:
8929   *         @arg @ref LL_HRTIM_TIMER_MASTER
8930   *         @arg @ref LL_HRTIM_TIMER_A
8931   *         @arg @ref LL_HRTIM_TIMER_B
8932   *         @arg @ref LL_HRTIM_TIMER_C
8933   *         @arg @ref LL_HRTIM_TIMER_D
8934   *         @arg @ref LL_HRTIM_TIMER_E
8935   * @retval None
8936   */
8937 __STATIC_INLINE void LL_HRTIM_DisableIT_CMP2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8938 {
8939   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8940   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
8941                                                     REG_OFFSET_TAB_TIMER[iTimer]));
8942   CLEAR_BIT(*pReg, HRTIM_MDIER_MCMP2IE);
8943 }
8944 
8945 /**
8946   * @brief  Indicate whether the compare 2 interrupt is enabled for a given timer.
8947   * @rmtoll MDIER        MCMP2IE           LL_HRTIM_IsEnabledIT_CMP2\n
8948   *         TIMxDIER     CMP2IE            LL_HRTIM_IsEnabledIT_CMP2
8949   * @param  HRTIMx High Resolution Timer instance
8950   * @param  Timer This parameter can be one of the following values:
8951   *         @arg @ref LL_HRTIM_TIMER_MASTER
8952   *         @arg @ref LL_HRTIM_TIMER_A
8953   *         @arg @ref LL_HRTIM_TIMER_B
8954   *         @arg @ref LL_HRTIM_TIMER_C
8955   *         @arg @ref LL_HRTIM_TIMER_D
8956   *         @arg @ref LL_HRTIM_TIMER_E
8957   * @retval State of MCMP2IE/CMP2IE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0).
8958   */
8959 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_CMP2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8960 {
8961   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8962   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
8963                                                     REG_OFFSET_TAB_TIMER[iTimer]));
8964 
8965   return ((READ_BIT(*pReg, HRTIM_MDIER_MCMP2IE) == (HRTIM_MDIER_MCMP2IE)) ? 1UL : 0UL);
8966 }
8967 
8968 /**
8969   * @brief  Enable the compare 3 interrupt for a given timer.
8970   * @rmtoll MDIER        MCMP3IE           LL_HRTIM_EnableIT_CMP3\n
8971   *         TIMxDIER     CMP3IE            LL_HRTIM_EnableIT_CMP3
8972   * @param  HRTIMx High Resolution Timer instance
8973   * @param  Timer This parameter can be one of the following values:
8974   *         @arg @ref LL_HRTIM_TIMER_MASTER
8975   *         @arg @ref LL_HRTIM_TIMER_A
8976   *         @arg @ref LL_HRTIM_TIMER_B
8977   *         @arg @ref LL_HRTIM_TIMER_C
8978   *         @arg @ref LL_HRTIM_TIMER_D
8979   *         @arg @ref LL_HRTIM_TIMER_E
8980   * @retval None
8981   */
8982 __STATIC_INLINE void LL_HRTIM_EnableIT_CMP3(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
8983 {
8984   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
8985   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
8986                                                     REG_OFFSET_TAB_TIMER[iTimer]));
8987   SET_BIT(*pReg, HRTIM_MDIER_MCMP3IE);
8988 }
8989 
8990 /**
8991   * @brief  Disable the compare 3 interrupt for a given timer.
8992   * @rmtoll MDIER        MCMP3IE           LL_HRTIM_DisableIT_CMP3\n
8993   *         TIMxDIER     CMP3IE            LL_HRTIM_DisableIT_CMP3
8994   * @param  HRTIMx High Resolution Timer instance
8995   * @param  Timer This parameter can be one of the following values:
8996   *         @arg @ref LL_HRTIM_TIMER_MASTER
8997   *         @arg @ref LL_HRTIM_TIMER_A
8998   *         @arg @ref LL_HRTIM_TIMER_B
8999   *         @arg @ref LL_HRTIM_TIMER_C
9000   *         @arg @ref LL_HRTIM_TIMER_D
9001   *         @arg @ref LL_HRTIM_TIMER_E
9002   * @retval None
9003   */
9004 __STATIC_INLINE void LL_HRTIM_DisableIT_CMP3(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9005 {
9006   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9007   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9008                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9009   CLEAR_BIT(*pReg, HRTIM_MDIER_MCMP3IE);
9010 }
9011 
9012 /**
9013   * @brief  Indicate whether the compare 3 interrupt is enabled for a given timer.
9014   * @rmtoll MDIER        MCMP3IE           LL_HRTIM_IsEnabledIT_CMP3\n
9015   *         TIMxDIER     CMP3IE            LL_HRTIM_IsEnabledIT_CMP3
9016   * @param  HRTIMx High Resolution Timer instance
9017   * @param  Timer This parameter can be one of the following values:
9018   *         @arg @ref LL_HRTIM_TIMER_MASTER
9019   *         @arg @ref LL_HRTIM_TIMER_A
9020   *         @arg @ref LL_HRTIM_TIMER_B
9021   *         @arg @ref LL_HRTIM_TIMER_C
9022   *         @arg @ref LL_HRTIM_TIMER_D
9023   *         @arg @ref LL_HRTIM_TIMER_E
9024   * @retval State of MCMP3IE/CMP3IE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0).
9025   */
9026 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_CMP3(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9027 {
9028   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9029   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9030                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9031 
9032   return ((READ_BIT(*pReg, HRTIM_MDIER_MCMP3IE) == (HRTIM_MDIER_MCMP3IE)) ? 1UL : 0UL);
9033 }
9034 
9035 /**
9036   * @brief  Enable the compare 4 interrupt for a given timer.
9037   * @rmtoll MDIER        MCMP4IE           LL_HRTIM_EnableIT_CMP4\n
9038   *         TIMxDIER     CMP4IE            LL_HRTIM_EnableIT_CMP4
9039   * @param  HRTIMx High Resolution Timer instance
9040   * @param  Timer This parameter can be one of the following values:
9041   *         @arg @ref LL_HRTIM_TIMER_MASTER
9042   *         @arg @ref LL_HRTIM_TIMER_A
9043   *         @arg @ref LL_HRTIM_TIMER_B
9044   *         @arg @ref LL_HRTIM_TIMER_C
9045   *         @arg @ref LL_HRTIM_TIMER_D
9046   *         @arg @ref LL_HRTIM_TIMER_E
9047   * @retval None
9048   */
9049 __STATIC_INLINE void LL_HRTIM_EnableIT_CMP4(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9050 {
9051   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9052   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9053                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9054   SET_BIT(*pReg, HRTIM_MDIER_MCMP4IE);
9055 }
9056 
9057 /**
9058   * @brief  Disable the compare 4 interrupt for a given timer.
9059   * @rmtoll MDIER        MCMP4IE           LL_HRTIM_DisableIT_CMP4\n
9060   *         TIMxDIER     CMP4IE            LL_HRTIM_DisableIT_CMP4
9061   * @param  HRTIMx High Resolution Timer instance
9062   * @param  Timer This parameter can be one of the following values:
9063   *         @arg @ref LL_HRTIM_TIMER_MASTER
9064   *         @arg @ref LL_HRTIM_TIMER_A
9065   *         @arg @ref LL_HRTIM_TIMER_B
9066   *         @arg @ref LL_HRTIM_TIMER_C
9067   *         @arg @ref LL_HRTIM_TIMER_D
9068   *         @arg @ref LL_HRTIM_TIMER_E
9069   * @retval None
9070   */
9071 __STATIC_INLINE void LL_HRTIM_DisableIT_CMP4(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9072 {
9073   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9074   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9075                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9076   CLEAR_BIT(*pReg, HRTIM_MDIER_MCMP4IE);
9077 }
9078 
9079 /**
9080   * @brief  Indicate whether the compare 4 interrupt is enabled for a given timer.
9081   * @rmtoll MDIER        MCMP4IE           LL_HRTIM_IsEnabledIT_CMP4\n
9082   *         TIMxDIER     CMP4IE            LL_HRTIM_IsEnabledIT_CMP4
9083   * @param  HRTIMx High Resolution Timer instance
9084   * @param  Timer This parameter can be one of the following values:
9085   *         @arg @ref LL_HRTIM_TIMER_MASTER
9086   *         @arg @ref LL_HRTIM_TIMER_A
9087   *         @arg @ref LL_HRTIM_TIMER_B
9088   *         @arg @ref LL_HRTIM_TIMER_C
9089   *         @arg @ref LL_HRTIM_TIMER_D
9090   *         @arg @ref LL_HRTIM_TIMER_E
9091   * @retval State of MCMP4IE/CMP4IE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0).
9092   */
9093 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_CMP4(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9094 {
9095   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9096   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9097                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9098 
9099   return ((READ_BIT(*pReg, HRTIM_MDIER_MCMP4IE) == (HRTIM_MDIER_MCMP4IE)) ? 1UL : 0UL);
9100 }
9101 
9102 /**
9103   * @brief  Enable the capture 1 interrupt for a given timer.
9104   * @rmtoll TIMxDIER     CPT1IE            LL_HRTIM_EnableIT_CPT1
9105   * @param  HRTIMx High Resolution Timer instance
9106   * @param  Timer This parameter can be one of the following values:
9107   *         @arg @ref LL_HRTIM_TIMER_A
9108   *         @arg @ref LL_HRTIM_TIMER_B
9109   *         @arg @ref LL_HRTIM_TIMER_C
9110   *         @arg @ref LL_HRTIM_TIMER_D
9111   *         @arg @ref LL_HRTIM_TIMER_E
9112   * @retval None
9113   */
9114 __STATIC_INLINE void LL_HRTIM_EnableIT_CPT1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9115 {
9116   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9117   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9118                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9119   SET_BIT(*pReg, HRTIM_TIMDIER_CPT1IE);
9120 }
9121 
9122 /**
9123   * @brief  Enable the capture 1 interrupt for a given timer.
9124   * @rmtoll TIMxDIER     CPT1IE            LL_HRTIM_DisableIT_CPT1
9125   * @param  HRTIMx High Resolution Timer instance
9126   * @param  Timer This parameter can be one of the following values:
9127   *         @arg @ref LL_HRTIM_TIMER_A
9128   *         @arg @ref LL_HRTIM_TIMER_B
9129   *         @arg @ref LL_HRTIM_TIMER_C
9130   *         @arg @ref LL_HRTIM_TIMER_D
9131   *         @arg @ref LL_HRTIM_TIMER_E
9132   * @retval None
9133   */
9134 __STATIC_INLINE void LL_HRTIM_DisableIT_CPT1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9135 {
9136   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9137   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9138                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9139   CLEAR_BIT(*pReg, HRTIM_TIMDIER_CPT1IE);
9140 }
9141 
9142 /**
9143   * @brief  Indicate whether the capture 1 interrupt is enabled for a given timer.
9144   * @rmtoll TIMxDIER     CPT1IE            LL_HRTIM_IsEnabledIT_CPT1
9145   * @param  HRTIMx High Resolution Timer instance
9146   * @param  Timer This parameter can be one of the following values:
9147   *         @arg @ref LL_HRTIM_TIMER_A
9148   *         @arg @ref LL_HRTIM_TIMER_B
9149   *         @arg @ref LL_HRTIM_TIMER_C
9150   *         @arg @ref LL_HRTIM_TIMER_D
9151   *         @arg @ref LL_HRTIM_TIMER_E
9152   * @retval State of CPT1IE bit in HRTIM_TIMxDIER register (1 or 0).
9153   */
9154 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_CPT1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9155 {
9156   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9157   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9158                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9159 
9160   return ((READ_BIT(*pReg, HRTIM_TIMDIER_CPT1IE) == (HRTIM_TIMDIER_CPT1IE)) ? 1UL : 0UL);
9161 }
9162 
9163 /**
9164   * @brief  Enable the capture 2 interrupt for a given timer.
9165   * @rmtoll TIMxDIER     CPT2IE            LL_HRTIM_EnableIT_CPT2
9166   * @param  HRTIMx High Resolution Timer instance
9167   * @param  Timer This parameter can be one of the following values:
9168   *         @arg @ref LL_HRTIM_TIMER_A
9169   *         @arg @ref LL_HRTIM_TIMER_B
9170   *         @arg @ref LL_HRTIM_TIMER_C
9171   *         @arg @ref LL_HRTIM_TIMER_D
9172   *         @arg @ref LL_HRTIM_TIMER_E
9173   * @retval None
9174   */
9175 __STATIC_INLINE void LL_HRTIM_EnableIT_CPT2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9176 {
9177   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9178   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9179                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9180   SET_BIT(*pReg, HRTIM_TIMDIER_CPT2IE);
9181 }
9182 
9183 /**
9184   * @brief  Enable the capture 2 interrupt for a given timer.
9185   * @rmtoll TIMxDIER     CPT2IE            LL_HRTIM_DisableIT_CPT2
9186   * @param  HRTIMx High Resolution Timer instance
9187   * @param  Timer This parameter can be one of the following values:
9188   *         @arg @ref LL_HRTIM_TIMER_A
9189   *         @arg @ref LL_HRTIM_TIMER_B
9190   *         @arg @ref LL_HRTIM_TIMER_C
9191   *         @arg @ref LL_HRTIM_TIMER_D
9192   *         @arg @ref LL_HRTIM_TIMER_E
9193   * @retval None
9194   */
9195 __STATIC_INLINE void LL_HRTIM_DisableIT_CPT2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9196 {
9197   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9198   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9199                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9200   CLEAR_BIT(*pReg, HRTIM_TIMDIER_CPT2IE);
9201 }
9202 
9203 /**
9204   * @brief  Indicate whether the capture 2 interrupt is enabled for a given timer.
9205   * @rmtoll TIMxDIER     CPT2IE            LL_HRTIM_IsEnabledIT_CPT2
9206   * @param  HRTIMx High Resolution Timer instance
9207   * @param  Timer This parameter can be one of the following values:
9208   *         @arg @ref LL_HRTIM_TIMER_A
9209   *         @arg @ref LL_HRTIM_TIMER_B
9210   *         @arg @ref LL_HRTIM_TIMER_C
9211   *         @arg @ref LL_HRTIM_TIMER_D
9212   *         @arg @ref LL_HRTIM_TIMER_E
9213   * @retval State of CPT2IE bit in HRTIM_TIMxDIER register (1 or 0).
9214   */
9215 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_CPT2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9216 {
9217   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9218   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9219                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9220 
9221   return ((READ_BIT(*pReg, HRTIM_TIMDIER_CPT2IE) == (HRTIM_TIMDIER_CPT2IE)) ? 1UL : 0UL);
9222 }
9223 
9224 /**
9225   * @brief  Enable the output 1 set interrupt for a given timer.
9226   * @rmtoll TIMxDIER     SET1IE            LL_HRTIM_EnableIT_SET1
9227   * @param  HRTIMx High Resolution Timer instance
9228   * @param  Timer This parameter can be one of the following values:
9229   *         @arg @ref LL_HRTIM_TIMER_A
9230   *         @arg @ref LL_HRTIM_TIMER_B
9231   *         @arg @ref LL_HRTIM_TIMER_C
9232   *         @arg @ref LL_HRTIM_TIMER_D
9233   *         @arg @ref LL_HRTIM_TIMER_E
9234   * @retval None
9235   */
9236 __STATIC_INLINE void LL_HRTIM_EnableIT_SET1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9237 {
9238   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9239   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9240                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9241   SET_BIT(*pReg, HRTIM_TIMDIER_SET1IE);
9242 }
9243 
9244 /**
9245   * @brief  Disable the output 1 set interrupt for a given timer.
9246   * @rmtoll TIMxDIER     SET1IE            LL_HRTIM_DisableIT_SET1
9247   * @param  HRTIMx High Resolution Timer instance
9248   * @param  Timer This parameter can be one of the following values:
9249   *         @arg @ref LL_HRTIM_TIMER_A
9250   *         @arg @ref LL_HRTIM_TIMER_B
9251   *         @arg @ref LL_HRTIM_TIMER_C
9252   *         @arg @ref LL_HRTIM_TIMER_D
9253   *         @arg @ref LL_HRTIM_TIMER_E
9254   * @retval None
9255   */
9256 __STATIC_INLINE void LL_HRTIM_DisableIT_SET1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9257 {
9258   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9259   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9260                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9261   CLEAR_BIT(*pReg, HRTIM_TIMDIER_SET1IE);
9262 }
9263 
9264 /**
9265   * @brief  Indicate whether the output 1 set interrupt is enabled for a given timer.
9266   * @rmtoll TIMxDIER     SET1IE            LL_HRTIM_IsEnabledIT_SET1
9267   * @param  HRTIMx High Resolution Timer instance
9268   * @param  Timer This parameter can be one of the following values:
9269   *         @arg @ref LL_HRTIM_TIMER_A
9270   *         @arg @ref LL_HRTIM_TIMER_B
9271   *         @arg @ref LL_HRTIM_TIMER_C
9272   *         @arg @ref LL_HRTIM_TIMER_D
9273   *         @arg @ref LL_HRTIM_TIMER_E
9274   * @retval State of SET1xIE bit in HRTIM_TIMxDIER register (1 or 0).
9275   */
9276 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_SET1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9277 {
9278   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9279   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9280                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9281 
9282   return ((READ_BIT(*pReg, HRTIM_TIMDIER_SET1IE) == (HRTIM_TIMDIER_SET1IE)) ? 1UL : 0UL);
9283 }
9284 
9285 /**
9286   * @brief  Enable the output 1 reset interrupt for a given timer.
9287   * @rmtoll TIMxDIER     RST1IE            LL_HRTIM_EnableIT_RST1
9288   * @param  HRTIMx High Resolution Timer instance
9289   * @param  Timer This parameter can be one of the following values:
9290   *         @arg @ref LL_HRTIM_TIMER_A
9291   *         @arg @ref LL_HRTIM_TIMER_B
9292   *         @arg @ref LL_HRTIM_TIMER_C
9293   *         @arg @ref LL_HRTIM_TIMER_D
9294   *         @arg @ref LL_HRTIM_TIMER_E
9295   * @retval None
9296   */
9297 __STATIC_INLINE void LL_HRTIM_EnableIT_RST1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9298 {
9299   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9300   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9301                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9302   SET_BIT(*pReg, HRTIM_TIMDIER_RST1IE);
9303 }
9304 
9305 /**
9306   * @brief  Disable the output 1 reset interrupt for a given timer.
9307   * @rmtoll TIMxDIER     RST1IE            LL_HRTIM_DisableIT_RST1
9308   * @param  HRTIMx High Resolution Timer instance
9309   * @param  Timer This parameter can be one of the following values:
9310   *         @arg @ref LL_HRTIM_TIMER_A
9311   *         @arg @ref LL_HRTIM_TIMER_B
9312   *         @arg @ref LL_HRTIM_TIMER_C
9313   *         @arg @ref LL_HRTIM_TIMER_D
9314   *         @arg @ref LL_HRTIM_TIMER_E
9315   * @retval None
9316   */
9317 __STATIC_INLINE void LL_HRTIM_DisableIT_RST1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9318 {
9319   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9320   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9321                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9322   CLEAR_BIT(*pReg, HRTIM_TIMDIER_RST1IE);
9323 }
9324 
9325 /**
9326   * @brief  Indicate whether the output 1 reset interrupt is enabled for a given timer.
9327   * @rmtoll TIMxDIER     RST1IE            LL_HRTIM_IsEnabledIT_RST1
9328   * @param  HRTIMx High Resolution Timer instance
9329   * @param  Timer This parameter can be one of the following values:
9330   *         @arg @ref LL_HRTIM_TIMER_A
9331   *         @arg @ref LL_HRTIM_TIMER_B
9332   *         @arg @ref LL_HRTIM_TIMER_C
9333   *         @arg @ref LL_HRTIM_TIMER_D
9334   *         @arg @ref LL_HRTIM_TIMER_E
9335   * @retval State of RST1xIE bit in HRTIM_TIMxDIER register (1 or 0).
9336   */
9337 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_RST1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9338 {
9339   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9340   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9341                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9342 
9343   return ((READ_BIT(*pReg, HRTIM_TIMDIER_RST1IE) == (HRTIM_TIMDIER_RST1IE)) ? 1UL : 0UL);
9344 }
9345 
9346 /**
9347   * @brief  Enable the output 2 set interrupt for a given timer.
9348   * @rmtoll TIMxDIER     SET2IE            LL_HRTIM_EnableIT_SET2
9349   * @param  HRTIMx High Resolution Timer instance
9350   * @param  Timer This parameter can be one of the following values:
9351   *         @arg @ref LL_HRTIM_TIMER_A
9352   *         @arg @ref LL_HRTIM_TIMER_B
9353   *         @arg @ref LL_HRTIM_TIMER_C
9354   *         @arg @ref LL_HRTIM_TIMER_D
9355   *         @arg @ref LL_HRTIM_TIMER_E
9356   * @retval None
9357   */
9358 __STATIC_INLINE void LL_HRTIM_EnableIT_SET2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9359 {
9360   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9361   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9362                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9363   SET_BIT(*pReg, HRTIM_TIMDIER_SET2IE);
9364 }
9365 
9366 /**
9367   * @brief  Disable the output 2 set interrupt for a given timer.
9368   * @rmtoll TIMxDIER     SET2IE            LL_HRTIM_DisableIT_SET2
9369   * @param  HRTIMx High Resolution Timer instance
9370   * @param  Timer This parameter can be one of the following values:
9371   *         @arg @ref LL_HRTIM_TIMER_A
9372   *         @arg @ref LL_HRTIM_TIMER_B
9373   *         @arg @ref LL_HRTIM_TIMER_C
9374   *         @arg @ref LL_HRTIM_TIMER_D
9375   *         @arg @ref LL_HRTIM_TIMER_E
9376   * @retval None
9377   */
9378 __STATIC_INLINE void LL_HRTIM_DisableIT_SET2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9379 {
9380   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9381   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9382                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9383   CLEAR_BIT(*pReg, HRTIM_TIMDIER_SET2IE);
9384 }
9385 
9386 /**
9387   * @brief  Indicate whether the output 2 set interrupt is enabled for a given timer.
9388   * @rmtoll TIMxDIER     SET2IE            LL_HRTIM_IsEnabledIT_SET2
9389   * @param  HRTIMx High Resolution Timer instance
9390   * @param  Timer This parameter can be one of the following values:
9391   *         @arg @ref LL_HRTIM_TIMER_A
9392   *         @arg @ref LL_HRTIM_TIMER_B
9393   *         @arg @ref LL_HRTIM_TIMER_C
9394   *         @arg @ref LL_HRTIM_TIMER_D
9395   *         @arg @ref LL_HRTIM_TIMER_E
9396   * @retval State of SET2xIE bit in HRTIM_TIMxDIER register (1 or 0).
9397   */
9398 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_SET2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9399 {
9400   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9401   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9402                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9403 
9404   return ((READ_BIT(*pReg, HRTIM_TIMDIER_SET2IE) == (HRTIM_TIMDIER_SET2IE)) ? 1UL : 0UL);
9405 }
9406 
9407 /**
9408   * @brief  Enable the output 2 reset interrupt for a given timer.
9409   * @rmtoll TIMxDIER     RST2IE            LL_HRTIM_EnableIT_RST2
9410   * @param  HRTIMx High Resolution Timer instance
9411   * @param  Timer This parameter can be one of the following values:
9412   *         @arg @ref LL_HRTIM_TIMER_A
9413   *         @arg @ref LL_HRTIM_TIMER_B
9414   *         @arg @ref LL_HRTIM_TIMER_C
9415   *         @arg @ref LL_HRTIM_TIMER_D
9416   *         @arg @ref LL_HRTIM_TIMER_E
9417   * @retval None
9418   */
9419 __STATIC_INLINE void LL_HRTIM_EnableIT_RST2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9420 {
9421   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9422   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9423                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9424   SET_BIT(*pReg, HRTIM_TIMDIER_RST2IE);
9425 }
9426 
9427 /**
9428   * @brief  Disable the output 2 reset interrupt for a given timer.
9429   * @rmtoll TIMxDIER     RST2IE            LL_HRTIM_DisableIT_RST2
9430   * @param  HRTIMx High Resolution Timer instance
9431   * @param  Timer This parameter can be one of the following values:
9432   *         @arg @ref LL_HRTIM_TIMER_A
9433   *         @arg @ref LL_HRTIM_TIMER_B
9434   *         @arg @ref LL_HRTIM_TIMER_C
9435   *         @arg @ref LL_HRTIM_TIMER_D
9436   *         @arg @ref LL_HRTIM_TIMER_E
9437   * @retval None
9438   */
9439 __STATIC_INLINE void LL_HRTIM_DisableIT_RST2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9440 {
9441   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9442   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9443                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9444   CLEAR_BIT(*pReg, HRTIM_TIMDIER_RST2IE);
9445 }
9446 
9447 /**
9448   * @brief  Indicate whether the output 2 reset LL_HRTIM_IsEnabledIT_RST2 is enabled for a given timer.
9449   * @rmtoll TIMxDIER     RST2IE            LL_HRTIM_DisableIT_RST2
9450   * @param  HRTIMx High Resolution Timer instance
9451   * @param  Timer This parameter can be one of the following values:
9452   *         @arg @ref LL_HRTIM_TIMER_A
9453   *         @arg @ref LL_HRTIM_TIMER_B
9454   *         @arg @ref LL_HRTIM_TIMER_C
9455   *         @arg @ref LL_HRTIM_TIMER_D
9456   *         @arg @ref LL_HRTIM_TIMER_E
9457   * @retval State of RST2xIE bit in HRTIM_TIMxDIER register (1 or 0).
9458   */
9459 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_RST2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9460 {
9461   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9462   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9463                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9464 
9465   return ((READ_BIT(*pReg, HRTIM_TIMDIER_RST2IE) == (HRTIM_TIMDIER_RST2IE)) ? 1UL : 0UL);
9466 }
9467 
9468 /**
9469   * @brief  Enable the reset/roll-over interrupt for a given timer.
9470   * @rmtoll TIMxDIER     RSTIE            LL_HRTIM_EnableIT_RST
9471   * @param  HRTIMx High Resolution Timer instance
9472   * @param  Timer This parameter can be one of the following values:
9473   *         @arg @ref LL_HRTIM_TIMER_A
9474   *         @arg @ref LL_HRTIM_TIMER_B
9475   *         @arg @ref LL_HRTIM_TIMER_C
9476   *         @arg @ref LL_HRTIM_TIMER_D
9477   *         @arg @ref LL_HRTIM_TIMER_E
9478   * @retval None
9479   */
9480 __STATIC_INLINE void LL_HRTIM_EnableIT_RST(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9481 {
9482   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9483   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9484                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9485   SET_BIT(*pReg, HRTIM_TIMDIER_RSTIE);
9486 }
9487 
9488 /**
9489   * @brief  Disable the reset/roll-over interrupt for a given timer.
9490   * @rmtoll TIMxDIER     RSTIE            LL_HRTIM_DisableIT_RST
9491   * @param  HRTIMx High Resolution Timer instance
9492   * @param  Timer This parameter can be one of the following values:
9493   *         @arg @ref LL_HRTIM_TIMER_A
9494   *         @arg @ref LL_HRTIM_TIMER_B
9495   *         @arg @ref LL_HRTIM_TIMER_C
9496   *         @arg @ref LL_HRTIM_TIMER_D
9497   *         @arg @ref LL_HRTIM_TIMER_E
9498   * @retval None
9499   */
9500 __STATIC_INLINE void LL_HRTIM_DisableIT_RST(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9501 {
9502   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9503   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9504                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9505   CLEAR_BIT(*pReg, HRTIM_TIMDIER_RSTIE);
9506 }
9507 
9508 /**
9509   * @brief  Indicate whether the reset/roll-over interrupt is enabled for a given timer.
9510   * @rmtoll TIMxDIER     RSTIE            LL_HRTIM_IsEnabledIT_RST
9511   * @param  HRTIMx High Resolution Timer instance
9512   * @param  Timer This parameter can be one of the following values:
9513   *         @arg @ref LL_HRTIM_TIMER_A
9514   *         @arg @ref LL_HRTIM_TIMER_B
9515   *         @arg @ref LL_HRTIM_TIMER_C
9516   *         @arg @ref LL_HRTIM_TIMER_D
9517   *         @arg @ref LL_HRTIM_TIMER_E
9518   * @retval State of RSTIE bit in HRTIM_TIMxDIER register (1 or 0).
9519   */
9520 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_RST(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9521 {
9522   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9523   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9524                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9525 
9526   return ((READ_BIT(*pReg, HRTIM_TIMDIER_RSTIE) == (HRTIM_TIMDIER_RSTIE)) ? 1UL : 0UL);
9527 }
9528 
9529 /**
9530   * @brief  Enable the delayed protection interrupt for a given timer.
9531   * @rmtoll TIMxDIER     DLYPRTIE            LL_HRTIM_EnableIT_DLYPRT
9532   * @param  HRTIMx High Resolution Timer instance
9533   * @param  Timer This parameter can be one of the following values:
9534   *         @arg @ref LL_HRTIM_TIMER_A
9535   *         @arg @ref LL_HRTIM_TIMER_B
9536   *         @arg @ref LL_HRTIM_TIMER_C
9537   *         @arg @ref LL_HRTIM_TIMER_D
9538   *         @arg @ref LL_HRTIM_TIMER_E
9539   * @retval None
9540   */
9541 __STATIC_INLINE void LL_HRTIM_EnableIT_DLYPRT(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9542 {
9543   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9544   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9545                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9546   SET_BIT(*pReg, HRTIM_TIMDIER_DLYPRTIE);
9547 }
9548 
9549 /**
9550   * @brief  Disable the delayed protection interrupt for a given timer.
9551   * @rmtoll TIMxDIER     DLYPRTIE            LL_HRTIM_DisableIT_DLYPRT
9552   * @param  HRTIMx High Resolution Timer instance
9553   * @param  Timer This parameter can be one of the following values:
9554   *         @arg @ref LL_HRTIM_TIMER_A
9555   *         @arg @ref LL_HRTIM_TIMER_B
9556   *         @arg @ref LL_HRTIM_TIMER_C
9557   *         @arg @ref LL_HRTIM_TIMER_D
9558   *         @arg @ref LL_HRTIM_TIMER_E
9559   * @retval None
9560   */
9561 __STATIC_INLINE void LL_HRTIM_DisableIT_DLYPRT(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9562 {
9563   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9564   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9565                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9566   CLEAR_BIT(*pReg, HRTIM_TIMDIER_DLYPRTIE);
9567 }
9568 
9569 /**
9570   * @brief  Indicate whether the delayed protection interrupt is enabled for a given timer.
9571   * @rmtoll TIMxDIER     DLYPRTIE            LL_HRTIM_IsEnabledIT_DLYPRT
9572   * @param  HRTIMx High Resolution Timer instance
9573   * @param  Timer This parameter can be one of the following values:
9574   *         @arg @ref LL_HRTIM_TIMER_A
9575   *         @arg @ref LL_HRTIM_TIMER_B
9576   *         @arg @ref LL_HRTIM_TIMER_C
9577   *         @arg @ref LL_HRTIM_TIMER_D
9578   *         @arg @ref LL_HRTIM_TIMER_E
9579   * @retval State of DLYPRTIE bit in HRTIM_TIMxDIER register (1 or 0).
9580   */
9581 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledIT_DLYPRT(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9582 {
9583   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9584   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9585                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9586 
9587   return ((READ_BIT(*pReg, HRTIM_TIMDIER_DLYPRTIE) == (HRTIM_TIMDIER_DLYPRTIE)) ? 1UL : 0UL);
9588 }
9589 
9590 /**
9591   * @}
9592   */
9593 
9594 /** @defgroup HRTIM_LL_EF_DMA_Management DMA_Management
9595   * @ingroup RTEMSBSPsARMSTM32H7
9596   * @{
9597   */
9598 
9599 /**
9600   * @brief  Enable the synchronization input DMA request.
9601   * @rmtoll MDIER     SYNCDE            LL_HRTIM_EnableDMAReq_SYNC
9602   * @param  HRTIMx High Resolution Timer instance
9603   * @retval None
9604   */
9605 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_SYNC(HRTIM_TypeDef *HRTIMx)
9606 {
9607   SET_BIT(HRTIMx->sMasterRegs.MDIER, HRTIM_MDIER_SYNCDE);
9608 }
9609 
9610 /**
9611   * @brief  Disable the synchronization input DMA request
9612   * @rmtoll MDIER     SYNCDE            LL_HRTIM_DisableDMAReq_SYNC
9613   * @param  HRTIMx High Resolution Timer instance
9614   * @retval None
9615   */
9616 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_SYNC(HRTIM_TypeDef *HRTIMx)
9617 {
9618   CLEAR_BIT(HRTIMx->sMasterRegs.MDIER, HRTIM_MDIER_SYNCDE);
9619 }
9620 
9621 /**
9622   * @brief  Indicate whether the synchronization input DMA request is enabled.
9623   * @rmtoll MDIER     SYNCDE            LL_HRTIM_IsEnabledDMAReq_SYNC
9624   * @param  HRTIMx High Resolution Timer instance
9625   * @retval State of SYNCDE bit in HRTIM_MDIER register (1 or 0).
9626   */
9627 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_SYNC(const HRTIM_TypeDef *HRTIMx)
9628 {
9629   return ((READ_BIT(HRTIMx->sMasterRegs.MDIER, HRTIM_MDIER_SYNCDE) == (HRTIM_MDIER_SYNCDE)) ? 1UL : 0UL);
9630 }
9631 
9632 /**
9633   * @brief  Enable the update DMA request for a given timer.
9634   * @rmtoll MDIER        MUPDDE            LL_HRTIM_EnableDMAReq_UPDATE\n
9635   *         TIMxDIER     UPDDE             LL_HRTIM_EnableDMAReq_UPDATE
9636   * @param  HRTIMx High Resolution Timer instance
9637   * @param  Timer This parameter can be one of the following values:
9638   *         @arg @ref LL_HRTIM_TIMER_MASTER
9639   *         @arg @ref LL_HRTIM_TIMER_A
9640   *         @arg @ref LL_HRTIM_TIMER_B
9641   *         @arg @ref LL_HRTIM_TIMER_C
9642   *         @arg @ref LL_HRTIM_TIMER_D
9643   *         @arg @ref LL_HRTIM_TIMER_E
9644   * @retval None
9645   */
9646 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_UPDATE(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9647 {
9648   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9649   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9650                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9651   SET_BIT(*pReg, HRTIM_MDIER_MUPDDE);
9652 }
9653 
9654 /**
9655   * @brief  Disable the update DMA request for a given timer.
9656   * @rmtoll MDIER        MUPDDE            LL_HRTIM_DisableDMAReq_UPDATE\n
9657   *         TIMxDIER     UPDDE             LL_HRTIM_DisableDMAReq_UPDATE
9658   * @param  HRTIMx High Resolution Timer instance
9659   * @param  Timer This parameter can be one of the following values:
9660   *         @arg @ref LL_HRTIM_TIMER_MASTER
9661   *         @arg @ref LL_HRTIM_TIMER_A
9662   *         @arg @ref LL_HRTIM_TIMER_B
9663   *         @arg @ref LL_HRTIM_TIMER_C
9664   *         @arg @ref LL_HRTIM_TIMER_D
9665   *         @arg @ref LL_HRTIM_TIMER_E
9666   * @retval None
9667   */
9668 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_UPDATE(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9669 {
9670   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9671   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9672                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9673   CLEAR_BIT(*pReg, HRTIM_MDIER_MUPDDE);
9674 }
9675 
9676 /**
9677   * @brief  Indicate whether the update DMA request is enabled for a given timer.
9678   * @rmtoll MDIER        MUPDDE            LL_HRTIM_IsEnabledDMAReq_UPDATE\n
9679   *         TIMxDIER     UPDDE             LL_HRTIM_IsEnabledDMAReq_UPDATE
9680   * @param  HRTIMx High Resolution Timer instance
9681   * @param  Timer This parameter can be one of the following values:
9682   *         @arg @ref LL_HRTIM_TIMER_MASTER
9683   *         @arg @ref LL_HRTIM_TIMER_A
9684   *         @arg @ref LL_HRTIM_TIMER_B
9685   *         @arg @ref LL_HRTIM_TIMER_C
9686   *         @arg @ref LL_HRTIM_TIMER_D
9687   *         @arg @ref LL_HRTIM_TIMER_E
9688   * @retval State of MUPDDE/UPDDE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0).
9689   */
9690 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_UPDATE(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9691 {
9692   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9693   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9694                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9695 
9696   return ((READ_BIT(*pReg, HRTIM_MDIER_MUPDDE) == (HRTIM_MDIER_MUPDDE)) ? 1UL : 0UL);
9697 }
9698 
9699 /**
9700   * @brief  Enable the repetition DMA request for a given timer.
9701   * @rmtoll MDIER        MREPDE            LL_HRTIM_EnableDMAReq_REP\n
9702   *         TIMxDIER     REPDE             LL_HRTIM_EnableDMAReq_REP
9703   * @param  HRTIMx High Resolution Timer instance
9704   * @param  Timer This parameter can be one of the following values:
9705   *         @arg @ref LL_HRTIM_TIMER_MASTER
9706   *         @arg @ref LL_HRTIM_TIMER_A
9707   *         @arg @ref LL_HRTIM_TIMER_B
9708   *         @arg @ref LL_HRTIM_TIMER_C
9709   *         @arg @ref LL_HRTIM_TIMER_D
9710   *         @arg @ref LL_HRTIM_TIMER_E
9711   * @retval None
9712   */
9713 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_REP(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9714 {
9715   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9716   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9717                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9718   SET_BIT(*pReg, HRTIM_MDIER_MREPDE);
9719 }
9720 
9721 /**
9722   * @brief  Disable the repetition DMA request for a given timer.
9723   * @rmtoll MDIER        MREPDE            LL_HRTIM_DisableDMAReq_REP\n
9724   *         TIMxDIER     REPDE             LL_HRTIM_DisableDMAReq_REP
9725   * @param  HRTIMx High Resolution Timer instance
9726   * @param  Timer This parameter can be one of the following values:
9727   *         @arg @ref LL_HRTIM_TIMER_MASTER
9728   *         @arg @ref LL_HRTIM_TIMER_A
9729   *         @arg @ref LL_HRTIM_TIMER_B
9730   *         @arg @ref LL_HRTIM_TIMER_C
9731   *         @arg @ref LL_HRTIM_TIMER_D
9732   *         @arg @ref LL_HRTIM_TIMER_E
9733   * @retval None
9734   */
9735 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_REP(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9736 {
9737   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9738   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9739                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9740   CLEAR_BIT(*pReg, HRTIM_MDIER_MREPDE);
9741 }
9742 
9743 /**
9744   * @brief  Indicate whether the repetition DMA request is enabled for a given timer.
9745   * @rmtoll MDIER        MREPDE            LL_HRTIM_IsEnabledDMAReq_REP\n
9746   *         TIMxDIER     REPDE             LL_HRTIM_IsEnabledDMAReq_REP
9747   * @param  HRTIMx High Resolution Timer instance
9748   * @param  Timer This parameter can be one of the following values:
9749   *         @arg @ref LL_HRTIM_TIMER_MASTER
9750   *         @arg @ref LL_HRTIM_TIMER_A
9751   *         @arg @ref LL_HRTIM_TIMER_B
9752   *         @arg @ref LL_HRTIM_TIMER_C
9753   *         @arg @ref LL_HRTIM_TIMER_D
9754   *         @arg @ref LL_HRTIM_TIMER_E
9755   * @retval State of MREPDE/REPDE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0).
9756   */
9757 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_REP(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9758 {
9759   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9760   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9761                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9762 
9763   return ((READ_BIT(*pReg, HRTIM_MDIER_MREPDE) == (HRTIM_MDIER_MREPDE)) ? 1UL : 0UL);
9764 }
9765 
9766 /**
9767   * @brief  Enable the compare 1 DMA request for a given timer.
9768   * @rmtoll MDIER        MCMP1DE            LL_HRTIM_EnableDMAReq_CMP1\n
9769   *         TIMxDIER     CMP1DE             LL_HRTIM_EnableDMAReq_CMP1
9770   * @param  HRTIMx High Resolution Timer instance
9771   * @param  Timer This parameter can be one of the following values:
9772   *         @arg @ref LL_HRTIM_TIMER_MASTER
9773   *         @arg @ref LL_HRTIM_TIMER_A
9774   *         @arg @ref LL_HRTIM_TIMER_B
9775   *         @arg @ref LL_HRTIM_TIMER_C
9776   *         @arg @ref LL_HRTIM_TIMER_D
9777   *         @arg @ref LL_HRTIM_TIMER_E
9778   * @retval None
9779   */
9780 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_CMP1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9781 {
9782   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9783   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9784                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9785   SET_BIT(*pReg, HRTIM_MDIER_MCMP1DE);
9786 }
9787 
9788 /**
9789   * @brief  Disable the compare 1 DMA request for a given timer.
9790   * @rmtoll MDIER        MCMP1DE            LL_HRTIM_DisableDMAReq_CMP1\n
9791   *         TIMxDIER     CMP1DE             LL_HRTIM_DisableDMAReq_CMP1
9792   * @param  HRTIMx High Resolution Timer instance
9793   * @param  Timer This parameter can be one of the following values:
9794   *         @arg @ref LL_HRTIM_TIMER_MASTER
9795   *         @arg @ref LL_HRTIM_TIMER_A
9796   *         @arg @ref LL_HRTIM_TIMER_B
9797   *         @arg @ref LL_HRTIM_TIMER_C
9798   *         @arg @ref LL_HRTIM_TIMER_D
9799   *         @arg @ref LL_HRTIM_TIMER_E
9800   * @retval None
9801   */
9802 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_CMP1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9803 {
9804   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9805   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9806                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9807   CLEAR_BIT(*pReg, HRTIM_MDIER_MCMP1DE);
9808 }
9809 
9810 /**
9811   * @brief  Indicate whether the compare 1 DMA request is enabled for a given timer.
9812   * @rmtoll MDIER        MCMP1DE            LL_HRTIM_IsEnabledDMAReq_CMP1\n
9813   *         TIMxDIER     CMP1DE             LL_HRTIM_IsEnabledDMAReq_CMP1
9814   * @param  HRTIMx High Resolution Timer instance
9815   * @param  Timer This parameter can be one of the following values:
9816   *         @arg @ref LL_HRTIM_TIMER_MASTER
9817   *         @arg @ref LL_HRTIM_TIMER_A
9818   *         @arg @ref LL_HRTIM_TIMER_B
9819   *         @arg @ref LL_HRTIM_TIMER_C
9820   *         @arg @ref LL_HRTIM_TIMER_D
9821   *         @arg @ref LL_HRTIM_TIMER_E
9822   * @retval State of MCMP1DE/CMP1DE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0).
9823   */
9824 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_CMP1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9825 {
9826   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9827   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9828                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9829 
9830   return ((READ_BIT(*pReg, HRTIM_MDIER_MCMP1DE) == (HRTIM_MDIER_MCMP1DE)) ? 1UL : 0UL);
9831 }
9832 
9833 /**
9834   * @brief  Enable the compare 2 DMA request for a given timer.
9835   * @rmtoll MDIER        MCMP2DE            LL_HRTIM_EnableDMAReq_CMP2\n
9836   *         TIMxDIER     CMP2DE             LL_HRTIM_EnableDMAReq_CMP2
9837   * @param  HRTIMx High Resolution Timer instance
9838   * @param  Timer This parameter can be one of the following values:
9839   *         @arg @ref LL_HRTIM_TIMER_MASTER
9840   *         @arg @ref LL_HRTIM_TIMER_A
9841   *         @arg @ref LL_HRTIM_TIMER_B
9842   *         @arg @ref LL_HRTIM_TIMER_C
9843   *         @arg @ref LL_HRTIM_TIMER_D
9844   *         @arg @ref LL_HRTIM_TIMER_E
9845   * @retval None
9846   */
9847 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_CMP2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9848 {
9849   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9850   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9851                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9852   SET_BIT(*pReg, HRTIM_MDIER_MCMP2DE);
9853 }
9854 
9855 /**
9856   * @brief  Disable the compare 2 DMA request for a given timer.
9857   * @rmtoll MDIER        MCMP2DE            LL_HRTIM_DisableDMAReq_CMP2\n
9858   *         TIMxDIER     CMP2DE             LL_HRTIM_DisableDMAReq_CMP2
9859   * @param  HRTIMx High Resolution Timer instance
9860   * @param  Timer This parameter can be one of the following values:
9861   *         @arg @ref LL_HRTIM_TIMER_MASTER
9862   *         @arg @ref LL_HRTIM_TIMER_A
9863   *         @arg @ref LL_HRTIM_TIMER_B
9864   *         @arg @ref LL_HRTIM_TIMER_C
9865   *         @arg @ref LL_HRTIM_TIMER_D
9866   *         @arg @ref LL_HRTIM_TIMER_E
9867   * @retval None
9868   */
9869 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_CMP2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9870 {
9871   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9872   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9873                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9874   CLEAR_BIT(*pReg, HRTIM_MDIER_MCMP2DE);
9875 }
9876 
9877 /**
9878   * @brief  Indicate whether the compare 2 DMA request is enabled for a given timer.
9879   * @rmtoll MDIER        MCMP2DE            LL_HRTIM_IsEnabledDMAReq_CMP2\n
9880   *         TIMxDIER     CMP2DE             LL_HRTIM_IsEnabledDMAReq_CMP2
9881   * @param  HRTIMx High Resolution Timer instance
9882   * @param  Timer This parameter can be one of the following values:
9883   *         @arg @ref LL_HRTIM_TIMER_MASTER
9884   *         @arg @ref LL_HRTIM_TIMER_A
9885   *         @arg @ref LL_HRTIM_TIMER_B
9886   *         @arg @ref LL_HRTIM_TIMER_C
9887   *         @arg @ref LL_HRTIM_TIMER_D
9888   *         @arg @ref LL_HRTIM_TIMER_E
9889   * @retval State of MCMP2DE/CMP2DE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0).
9890   */
9891 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_CMP2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9892 {
9893   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9894   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9895                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9896 
9897   return ((READ_BIT(*pReg, HRTIM_MDIER_MCMP2DE) == (HRTIM_MDIER_MCMP2DE)) ? 1UL : 0UL);
9898 }
9899 
9900 /**
9901   * @brief  Enable the compare 3 DMA request for a given timer.
9902   * @rmtoll MDIER        MCMP3DE            LL_HRTIM_EnableDMAReq_CMP3\n
9903   *         TIMxDIER     CMP3DE             LL_HRTIM_EnableDMAReq_CMP3
9904   * @param  HRTIMx High Resolution Timer instance
9905   * @param  Timer This parameter can be one of the following values:
9906   *         @arg @ref LL_HRTIM_TIMER_MASTER
9907   *         @arg @ref LL_HRTIM_TIMER_A
9908   *         @arg @ref LL_HRTIM_TIMER_B
9909   *         @arg @ref LL_HRTIM_TIMER_C
9910   *         @arg @ref LL_HRTIM_TIMER_D
9911   *         @arg @ref LL_HRTIM_TIMER_E
9912   * @retval None
9913   */
9914 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_CMP3(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9915 {
9916   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9917   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9918                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9919   SET_BIT(*pReg, HRTIM_MDIER_MCMP3DE);
9920 }
9921 
9922 /**
9923   * @brief  Disable the compare 3 DMA request for a given timer.
9924   * @rmtoll MDIER        MCMP3DE            LL_HRTIM_DisableDMAReq_CMP3\n
9925   *         TIMxDIER     CMP3DE             LL_HRTIM_DisableDMAReq_CMP3
9926   * @param  HRTIMx High Resolution Timer instance
9927   * @param  Timer This parameter can be one of the following values:
9928   *         @arg @ref LL_HRTIM_TIMER_MASTER
9929   *         @arg @ref LL_HRTIM_TIMER_A
9930   *         @arg @ref LL_HRTIM_TIMER_B
9931   *         @arg @ref LL_HRTIM_TIMER_C
9932   *         @arg @ref LL_HRTIM_TIMER_D
9933   *         @arg @ref LL_HRTIM_TIMER_E
9934   * @retval None
9935   */
9936 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_CMP3(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9937 {
9938   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9939   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9940                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9941   CLEAR_BIT(*pReg, HRTIM_MDIER_MCMP3DE);
9942 }
9943 
9944 /**
9945   * @brief  Indicate whether the compare 3 DMA request is enabled for a given timer.
9946   * @rmtoll MDIER        MCMP3DE            LL_HRTIM_IsEnabledDMAReq_CMP3\n
9947   *         TIMxDIER     CMP3DE             LL_HRTIM_IsEnabledDMAReq_CMP3
9948   * @param  HRTIMx High Resolution Timer instance
9949   * @param  Timer This parameter can be one of the following values:
9950   *         @arg @ref LL_HRTIM_TIMER_MASTER
9951   *         @arg @ref LL_HRTIM_TIMER_A
9952   *         @arg @ref LL_HRTIM_TIMER_B
9953   *         @arg @ref LL_HRTIM_TIMER_C
9954   *         @arg @ref LL_HRTIM_TIMER_D
9955   *         @arg @ref LL_HRTIM_TIMER_E
9956   * @retval State of MCMP3DE/CMP3DE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0).
9957   */
9958 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_CMP3(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9959 {
9960   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9961   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9962                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9963 
9964   return ((READ_BIT(*pReg, HRTIM_MDIER_MCMP3DE) == (HRTIM_MDIER_MCMP3DE)) ? 1UL : 0UL);
9965 }
9966 
9967 /**
9968   * @brief  Enable the compare 4 DMA request for a given timer.
9969   * @rmtoll MDIER        MCMP4DE            LL_HRTIM_EnableDMAReq_CMP4\n
9970   *         TIMxDIER     CMP4DE             LL_HRTIM_EnableDMAReq_CMP4
9971   * @param  HRTIMx High Resolution Timer instance
9972   * @param  Timer This parameter can be one of the following values:
9973   *         @arg @ref LL_HRTIM_TIMER_MASTER
9974   *         @arg @ref LL_HRTIM_TIMER_A
9975   *         @arg @ref LL_HRTIM_TIMER_B
9976   *         @arg @ref LL_HRTIM_TIMER_C
9977   *         @arg @ref LL_HRTIM_TIMER_D
9978   *         @arg @ref LL_HRTIM_TIMER_E
9979   * @retval None
9980   */
9981 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_CMP4(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
9982 {
9983   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
9984   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
9985                                                     REG_OFFSET_TAB_TIMER[iTimer]));
9986   SET_BIT(*pReg, HRTIM_MDIER_MCMP4DE);
9987 }
9988 
9989 /**
9990   * @brief  Disable the compare 4 DMA request for a given timer.
9991   * @rmtoll MDIER        MCMP4DE            LL_HRTIM_DisableDMAReq_CMP4\n
9992   *         TIMxDIER     CMP4DE             LL_HRTIM_DisableDMAReq_CMP4
9993   * @param  HRTIMx High Resolution Timer instance
9994   * @param  Timer This parameter can be one of the following values:
9995   *         @arg @ref LL_HRTIM_TIMER_MASTER
9996   *         @arg @ref LL_HRTIM_TIMER_A
9997   *         @arg @ref LL_HRTIM_TIMER_B
9998   *         @arg @ref LL_HRTIM_TIMER_C
9999   *         @arg @ref LL_HRTIM_TIMER_D
10000   *         @arg @ref LL_HRTIM_TIMER_E
10001   * @retval None
10002   */
10003 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_CMP4(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10004 {
10005   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10006   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10007                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10008   CLEAR_BIT(*pReg, HRTIM_MDIER_MCMP4DE);
10009 }
10010 
10011 /**
10012   * @brief  Indicate whether the compare 4 DMA request is enabled for a given timer.
10013   * @rmtoll MDIER        MCMP4DE            LL_HRTIM_IsEnabledDMAReq_CMP4\n
10014   *         TIMxDIER     CMP4DE             LL_HRTIM_IsEnabledDMAReq_CMP4
10015   * @param  HRTIMx High Resolution Timer instance
10016   * @param  Timer This parameter can be one of the following values:
10017   *         @arg @ref LL_HRTIM_TIMER_MASTER
10018   *         @arg @ref LL_HRTIM_TIMER_A
10019   *         @arg @ref LL_HRTIM_TIMER_B
10020   *         @arg @ref LL_HRTIM_TIMER_C
10021   *         @arg @ref LL_HRTIM_TIMER_D
10022   *         @arg @ref LL_HRTIM_TIMER_E
10023   * @retval State of MCMP4DE/CMP4DE bit in HRTIM_MDIER/HRTIM_TIMxDIER register (1 or 0).
10024   */
10025 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_CMP4(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10026 {
10027   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10028   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10029                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10030 
10031   return ((READ_BIT(*pReg, HRTIM_MDIER_MCMP4DE) == (HRTIM_MDIER_MCMP4DE)) ? 1UL : 0UL);
10032 }
10033 
10034 /**
10035   * @brief  Enable the capture 1 DMA request for a given timer.
10036   * @rmtoll TIMxDIER     CPT1DE             LL_HRTIM_EnableDMAReq_CPT1
10037   * @param  HRTIMx High Resolution Timer instance
10038   * @param  Timer This parameter can be one of the following values:
10039   *         @arg @ref LL_HRTIM_TIMER_A
10040   *         @arg @ref LL_HRTIM_TIMER_B
10041   *         @arg @ref LL_HRTIM_TIMER_C
10042   *         @arg @ref LL_HRTIM_TIMER_D
10043   *         @arg @ref LL_HRTIM_TIMER_E
10044   * @retval None
10045   */
10046 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_CPT1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10047 {
10048   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10049   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10050                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10051   SET_BIT(*pReg, HRTIM_TIMDIER_CPT1DE);
10052 }
10053 
10054 /**
10055   * @brief  Disable the capture 1 DMA request for a given timer.
10056   * @rmtoll TIMxDIER     CPT1DE             LL_HRTIM_DisableDMAReq_CPT1
10057   * @param  HRTIMx High Resolution Timer instance
10058   * @param  Timer This parameter can be one of the following values:
10059   *         @arg @ref LL_HRTIM_TIMER_A
10060   *         @arg @ref LL_HRTIM_TIMER_B
10061   *         @arg @ref LL_HRTIM_TIMER_C
10062   *         @arg @ref LL_HRTIM_TIMER_D
10063   *         @arg @ref LL_HRTIM_TIMER_E
10064   * @retval None
10065   */
10066 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_CPT1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10067 {
10068   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10069   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10070                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10071   CLEAR_BIT(*pReg, HRTIM_TIMDIER_CPT1DE);
10072 }
10073 
10074 /**
10075   * @brief  Indicate whether the capture 1 DMA request is enabled for a given timer.
10076   * @rmtoll TIMxDIER     CPT1DE             LL_HRTIM_IsEnabledDMAReq_CPT1
10077   * @param  HRTIMx High Resolution Timer instance
10078   * @param  Timer This parameter can be one of the following values:
10079   *         @arg @ref LL_HRTIM_TIMER_A
10080   *         @arg @ref LL_HRTIM_TIMER_B
10081   *         @arg @ref LL_HRTIM_TIMER_C
10082   *         @arg @ref LL_HRTIM_TIMER_D
10083   *         @arg @ref LL_HRTIM_TIMER_E
10084   * @retval State of CPT1DE bit in HRTIM_TIMxDIER register (1 or 0).
10085   */
10086 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_CPT1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10087 {
10088   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10089   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10090                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10091 
10092   return ((READ_BIT(*pReg, HRTIM_TIMDIER_CPT1DE) == (HRTIM_TIMDIER_CPT1DE)) ? 1UL : 0UL);
10093 }
10094 
10095 /**
10096   * @brief  Enable the capture 2 DMA request for a given timer.
10097   * @rmtoll TIMxDIER     CPT2DE             LL_HRTIM_EnableDMAReq_CPT2
10098   * @param  HRTIMx High Resolution Timer instance
10099   * @param  Timer This parameter can be one of the following values:
10100   *         @arg @ref LL_HRTIM_TIMER_A
10101   *         @arg @ref LL_HRTIM_TIMER_B
10102   *         @arg @ref LL_HRTIM_TIMER_C
10103   *         @arg @ref LL_HRTIM_TIMER_D
10104   *         @arg @ref LL_HRTIM_TIMER_E
10105   * @retval None
10106   */
10107 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_CPT2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10108 {
10109   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10110   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10111                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10112   SET_BIT(*pReg, HRTIM_TIMDIER_CPT2DE);
10113 }
10114 
10115 /**
10116   * @brief  Disable the capture 2 DMA request for a given timer.
10117   * @rmtoll TIMxDIER     CPT2DE             LL_HRTIM_DisableDMAReq_CPT2
10118   * @param  HRTIMx High Resolution Timer instance
10119   * @param  Timer This parameter can be one of the following values:
10120   *         @arg @ref LL_HRTIM_TIMER_A
10121   *         @arg @ref LL_HRTIM_TIMER_B
10122   *         @arg @ref LL_HRTIM_TIMER_C
10123   *         @arg @ref LL_HRTIM_TIMER_D
10124   *         @arg @ref LL_HRTIM_TIMER_E
10125   * @retval None
10126   */
10127 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_CPT2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10128 {
10129   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10130   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10131                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10132   CLEAR_BIT(*pReg, HRTIM_TIMDIER_CPT2DE);
10133 }
10134 
10135 /**
10136   * @brief  Indicate whether the capture 2 DMA request is enabled for a given timer.
10137   * @rmtoll TIMxDIER     CPT2DE             LL_HRTIM_IsEnabledDMAReq_CPT2
10138   * @param  HRTIMx High Resolution Timer instance
10139   * @param  Timer This parameter can be one of the following values:
10140   *         @arg @ref LL_HRTIM_TIMER_A
10141   *         @arg @ref LL_HRTIM_TIMER_B
10142   *         @arg @ref LL_HRTIM_TIMER_C
10143   *         @arg @ref LL_HRTIM_TIMER_D
10144   *         @arg @ref LL_HRTIM_TIMER_E
10145   * @retval State of CPT2DE bit in HRTIM_TIMxDIER register (1 or 0).
10146   */
10147 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_CPT2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10148 {
10149   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10150   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10151                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10152 
10153   return ((READ_BIT(*pReg, HRTIM_TIMDIER_CPT2DE) == (HRTIM_TIMDIER_CPT2DE)) ? 1UL : 0UL);
10154 }
10155 
10156 /**
10157   * @brief  Enable the output 1 set  DMA request for a given timer.
10158   * @rmtoll TIMxDIER     SET1DE             LL_HRTIM_EnableDMAReq_SET1
10159   * @param  HRTIMx High Resolution Timer instance
10160   * @param  Timer This parameter can be one of the following values:
10161   *         @arg @ref LL_HRTIM_TIMER_A
10162   *         @arg @ref LL_HRTIM_TIMER_B
10163   *         @arg @ref LL_HRTIM_TIMER_C
10164   *         @arg @ref LL_HRTIM_TIMER_D
10165   *         @arg @ref LL_HRTIM_TIMER_E
10166   * @retval None
10167   */
10168 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_SET1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10169 {
10170   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10171   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10172                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10173   SET_BIT(*pReg, HRTIM_TIMDIER_SET1DE);
10174 }
10175 
10176 /**
10177   * @brief  Disable the output 1 set  DMA request for a given timer.
10178   * @rmtoll TIMxDIER     SET1DE             LL_HRTIM_DisableDMAReq_SET1
10179   * @param  HRTIMx High Resolution Timer instance
10180   * @param  Timer This parameter can be one of the following values:
10181   *         @arg @ref LL_HRTIM_TIMER_A
10182   *         @arg @ref LL_HRTIM_TIMER_B
10183   *         @arg @ref LL_HRTIM_TIMER_C
10184   *         @arg @ref LL_HRTIM_TIMER_D
10185   *         @arg @ref LL_HRTIM_TIMER_E
10186   * @retval None
10187   */
10188 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_SET1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10189 {
10190   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10191   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10192                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10193   CLEAR_BIT(*pReg, HRTIM_TIMDIER_SET1DE);
10194 }
10195 
10196 /**
10197   * @brief  Indicate whether the output 1 set  DMA request is enabled for a given timer.
10198   * @rmtoll TIMxDIER     SET1DE             LL_HRTIM_IsEnabledDMAReq_SET1
10199   * @param  HRTIMx High Resolution Timer instance
10200   * @param  Timer This parameter can be one of the following values:
10201   *         @arg @ref LL_HRTIM_TIMER_A
10202   *         @arg @ref LL_HRTIM_TIMER_B
10203   *         @arg @ref LL_HRTIM_TIMER_C
10204   *         @arg @ref LL_HRTIM_TIMER_D
10205   *         @arg @ref LL_HRTIM_TIMER_E
10206   * @retval State of SET1xDE bit in HRTIM_TIMxDIER register (1 or 0).
10207   */
10208 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_SET1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10209 {
10210   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10211   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10212                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10213 
10214   return ((READ_BIT(*pReg, HRTIM_TIMDIER_SET1DE) == (HRTIM_TIMDIER_SET1DE)) ? 1UL : 0UL);
10215 }
10216 
10217 /**
10218   * @brief  Enable the output 1 reset  DMA request for a given timer.
10219   * @rmtoll TIMxDIER     RST1DE             LL_HRTIM_EnableDMAReq_RST1
10220   * @param  HRTIMx High Resolution Timer instance
10221   * @param  Timer This parameter can be one of the following values:
10222   *         @arg @ref LL_HRTIM_TIMER_A
10223   *         @arg @ref LL_HRTIM_TIMER_B
10224   *         @arg @ref LL_HRTIM_TIMER_C
10225   *         @arg @ref LL_HRTIM_TIMER_D
10226   *         @arg @ref LL_HRTIM_TIMER_E
10227   * @retval None
10228   */
10229 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_RST1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10230 {
10231   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10232   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10233                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10234   SET_BIT(*pReg, HRTIM_TIMDIER_RST1DE);
10235 }
10236 
10237 /**
10238   * @brief  Disable the output 1 reset  DMA request for a given timer.
10239   * @rmtoll TIMxDIER     RST1DE             LL_HRTIM_DisableDMAReq_RST1
10240   * @param  HRTIMx High Resolution Timer instance
10241   * @param  Timer This parameter can be one of the following values:
10242   *         @arg @ref LL_HRTIM_TIMER_A
10243   *         @arg @ref LL_HRTIM_TIMER_B
10244   *         @arg @ref LL_HRTIM_TIMER_C
10245   *         @arg @ref LL_HRTIM_TIMER_D
10246   *         @arg @ref LL_HRTIM_TIMER_E
10247   * @retval None
10248   */
10249 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_RST1(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10250 {
10251   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10252   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10253                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10254   CLEAR_BIT(*pReg, HRTIM_TIMDIER_RST1DE);
10255 }
10256 
10257 /**
10258   * @brief  Indicate whether the output 1 reset interrupt is enabled for a given timer.
10259   * @rmtoll TIMxDIER     RST1DE             LL_HRTIM_IsEnabledDMAReq_RST1
10260   * @param  HRTIMx High Resolution Timer instance
10261   * @param  Timer This parameter can be one of the following values:
10262   *         @arg @ref LL_HRTIM_TIMER_A
10263   *         @arg @ref LL_HRTIM_TIMER_B
10264   *         @arg @ref LL_HRTIM_TIMER_C
10265   *         @arg @ref LL_HRTIM_TIMER_D
10266   *         @arg @ref LL_HRTIM_TIMER_E
10267   * @retval State of RST1xDE bit in HRTIM_TIMxDIER register (1 or 0).
10268   */
10269 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_RST1(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10270 {
10271   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10272   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10273                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10274 
10275   return ((READ_BIT(*pReg, HRTIM_TIMDIER_RST1DE) == (HRTIM_TIMDIER_RST1DE)) ? 1UL : 0UL);
10276 }
10277 
10278 /**
10279   * @brief  Enable the output 2 set  DMA request for a given timer.
10280   * @rmtoll TIMxDIER     SET2DE             LL_HRTIM_EnableDMAReq_SET2
10281   * @param  HRTIMx High Resolution Timer instance
10282   * @param  Timer This parameter can be one of the following values:
10283   *         @arg @ref LL_HRTIM_TIMER_A
10284   *         @arg @ref LL_HRTIM_TIMER_B
10285   *         @arg @ref LL_HRTIM_TIMER_C
10286   *         @arg @ref LL_HRTIM_TIMER_D
10287   *         @arg @ref LL_HRTIM_TIMER_E
10288   * @retval None
10289   */
10290 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_SET2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10291 {
10292   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10293   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10294                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10295   SET_BIT(*pReg, HRTIM_TIMDIER_SET2DE);
10296 }
10297 
10298 /**
10299   * @brief  Disable the output 2 set  DMA request for a given timer.
10300   * @rmtoll TIMxDIER     SET2DE             LL_HRTIM_DisableDMAReq_SET2
10301   * @param  HRTIMx High Resolution Timer instance
10302   * @param  Timer This parameter can be one of the following values:
10303   *         @arg @ref LL_HRTIM_TIMER_A
10304   *         @arg @ref LL_HRTIM_TIMER_B
10305   *         @arg @ref LL_HRTIM_TIMER_C
10306   *         @arg @ref LL_HRTIM_TIMER_D
10307   *         @arg @ref LL_HRTIM_TIMER_E
10308   * @retval None
10309   */
10310 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_SET2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10311 {
10312   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10313   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10314                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10315   CLEAR_BIT(*pReg, HRTIM_TIMDIER_SET2DE);
10316 }
10317 
10318 /**
10319   * @brief  Indicate whether the output 2 set  DMA request is enabled for a given timer.
10320   * @rmtoll TIMxDIER     SET2DE             LL_HRTIM_IsEnabledDMAReq_SET2
10321   * @param  HRTIMx High Resolution Timer instance
10322   * @param  Timer This parameter can be one of the following values:
10323   *         @arg @ref LL_HRTIM_TIMER_A
10324   *         @arg @ref LL_HRTIM_TIMER_B
10325   *         @arg @ref LL_HRTIM_TIMER_C
10326   *         @arg @ref LL_HRTIM_TIMER_D
10327   *         @arg @ref LL_HRTIM_TIMER_E
10328   * @retval State of SET2xDE bit in HRTIM_TIMxDIER register (1 or 0).
10329   */
10330 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_SET2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10331 {
10332   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10333   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10334                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10335 
10336   return ((READ_BIT(*pReg, HRTIM_TIMDIER_SET2DE) == (HRTIM_TIMDIER_SET2DE)) ? 1UL : 0UL);
10337 }
10338 
10339 /**
10340   * @brief  Enable the output 2 reset  DMA request for a given timer.
10341   * @rmtoll TIMxDIER     RST2DE             LL_HRTIM_EnableDMAReq_RST2
10342   * @param  HRTIMx High Resolution Timer instance
10343   * @param  Timer This parameter can be one of the following values:
10344   *         @arg @ref LL_HRTIM_TIMER_A
10345   *         @arg @ref LL_HRTIM_TIMER_B
10346   *         @arg @ref LL_HRTIM_TIMER_C
10347   *         @arg @ref LL_HRTIM_TIMER_D
10348   *         @arg @ref LL_HRTIM_TIMER_E
10349   * @retval None
10350   */
10351 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_RST2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10352 {
10353   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10354   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10355                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10356   SET_BIT(*pReg, HRTIM_TIMDIER_RST2DE);
10357 }
10358 
10359 /**
10360   * @brief  Disable the output 2 reset  DMA request for a given timer.
10361   * @rmtoll TIMxDIER     RST2DE             LL_HRTIM_DisableDMAReq_RST2
10362   * @param  HRTIMx High Resolution Timer instance
10363   * @param  Timer This parameter can be one of the following values:
10364   *         @arg @ref LL_HRTIM_TIMER_A
10365   *         @arg @ref LL_HRTIM_TIMER_B
10366   *         @arg @ref LL_HRTIM_TIMER_C
10367   *         @arg @ref LL_HRTIM_TIMER_D
10368   *         @arg @ref LL_HRTIM_TIMER_E
10369   * @retval None
10370   */
10371 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_RST2(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10372 {
10373   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10374   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10375                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10376   CLEAR_BIT(*pReg, HRTIM_TIMDIER_RST2DE);
10377 }
10378 
10379 /**
10380   * @brief  Indicate whether the output 2 reset  DMA request is enabled for a given timer.
10381   * @rmtoll TIMxDIER     RST2DE             LL_HRTIM_IsEnabledDMAReq_RST2
10382   * @param  HRTIMx High Resolution Timer instance
10383   * @param  Timer This parameter can be one of the following values:
10384   *         @arg @ref LL_HRTIM_TIMER_A
10385   *         @arg @ref LL_HRTIM_TIMER_B
10386   *         @arg @ref LL_HRTIM_TIMER_C
10387   *         @arg @ref LL_HRTIM_TIMER_D
10388   *         @arg @ref LL_HRTIM_TIMER_E
10389   * @retval State of RST2xDE bit in HRTIM_TIMxDIER register (1 or 0).
10390   */
10391 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_RST2(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10392 {
10393   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10394   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10395                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10396 
10397   return ((READ_BIT(*pReg, HRTIM_TIMDIER_RST2DE) == (HRTIM_TIMDIER_RST2DE)) ? 1UL : 0UL);
10398 }
10399 
10400 /**
10401   * @brief  Enable the reset/roll-over DMA request for a given timer.
10402   * @rmtoll TIMxDIER     RSTDE             LL_HRTIM_EnableDMAReq_RST
10403   * @param  HRTIMx High Resolution Timer instance
10404   * @param  Timer This parameter can be one of the following values:
10405   *         @arg @ref LL_HRTIM_TIMER_A
10406   *         @arg @ref LL_HRTIM_TIMER_B
10407   *         @arg @ref LL_HRTIM_TIMER_C
10408   *         @arg @ref LL_HRTIM_TIMER_D
10409   *         @arg @ref LL_HRTIM_TIMER_E
10410   * @retval None
10411   */
10412 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_RST(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10413 {
10414   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10415   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10416                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10417   SET_BIT(*pReg, HRTIM_TIMDIER_RSTDE);
10418 }
10419 
10420 /**
10421   * @brief  Disable the reset/roll-over DMA request for a given timer.
10422   * @rmtoll TIMxDIER     RSTDE             LL_HRTIM_DisableDMAReq_RST
10423   * @param  HRTIMx High Resolution Timer instance
10424   * @param  Timer This parameter can be one of the following values:
10425   *         @arg @ref LL_HRTIM_TIMER_A
10426   *         @arg @ref LL_HRTIM_TIMER_B
10427   *         @arg @ref LL_HRTIM_TIMER_C
10428   *         @arg @ref LL_HRTIM_TIMER_D
10429   *         @arg @ref LL_HRTIM_TIMER_E
10430   * @retval None
10431   */
10432 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_RST(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10433 {
10434   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10435   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10436                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10437   CLEAR_BIT(*pReg, HRTIM_TIMDIER_RSTDE);
10438 }
10439 
10440 /**
10441   * @brief  Indicate whether the reset/roll-over DMA request is enabled for a given timer.
10442   * @rmtoll TIMxDIER     RSTDE             LL_HRTIM_IsEnabledDMAReq_RST
10443   * @param  HRTIMx High Resolution Timer instance
10444   * @param  Timer This parameter can be one of the following values:
10445   *         @arg @ref LL_HRTIM_TIMER_A
10446   *         @arg @ref LL_HRTIM_TIMER_B
10447   *         @arg @ref LL_HRTIM_TIMER_C
10448   *         @arg @ref LL_HRTIM_TIMER_D
10449   *         @arg @ref LL_HRTIM_TIMER_E
10450   * @retval State of RSTDE bit in HRTIM_TIMxDIER register (1 or 0).
10451   */
10452 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_RST(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10453 {
10454   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10455   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10456                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10457 
10458   return ((READ_BIT(*pReg, HRTIM_TIMDIER_RSTDE) == (HRTIM_TIMDIER_RSTDE)) ? 1UL : 0UL);
10459 }
10460 
10461 /**
10462   * @brief  Enable the delayed protection DMA request for a given timer.
10463   * @rmtoll TIMxDIER     DLYPRTDE             LL_HRTIM_EnableDMAReq_DLYPRT
10464   * @param  HRTIMx High Resolution Timer instance
10465   * @param  Timer This parameter can be one of the following values:
10466   *         @arg @ref LL_HRTIM_TIMER_A
10467   *         @arg @ref LL_HRTIM_TIMER_B
10468   *         @arg @ref LL_HRTIM_TIMER_C
10469   *         @arg @ref LL_HRTIM_TIMER_D
10470   *         @arg @ref LL_HRTIM_TIMER_E
10471   * @retval None
10472   */
10473 __STATIC_INLINE void LL_HRTIM_EnableDMAReq_DLYPRT(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10474 {
10475   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10476   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10477                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10478   SET_BIT(*pReg, HRTIM_TIMDIER_DLYPRTDE);
10479 }
10480 
10481 /**
10482   * @brief  Disable the delayed protection DMA request for a given timer.
10483   * @rmtoll TIMxDIER     DLYPRTDE             LL_HRTIM_DisableDMAReq_DLYPRT
10484   * @param  HRTIMx High Resolution Timer instance
10485   * @param  Timer This parameter can be one of the following values:
10486   *         @arg @ref LL_HRTIM_TIMER_A
10487   *         @arg @ref LL_HRTIM_TIMER_B
10488   *         @arg @ref LL_HRTIM_TIMER_C
10489   *         @arg @ref LL_HRTIM_TIMER_D
10490   *         @arg @ref LL_HRTIM_TIMER_E
10491   * @retval None
10492   */
10493 __STATIC_INLINE void LL_HRTIM_DisableDMAReq_DLYPRT(HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10494 {
10495   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10496   __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10497                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10498   CLEAR_BIT(*pReg, HRTIM_TIMDIER_DLYPRTDE);
10499 }
10500 
10501 /**
10502   * @brief  Indicate whether the delayed protection DMA request is enabled for a given timer.
10503   * @rmtoll TIMxDIER     DLYPRTDE             LL_HRTIM_IsEnabledDMAReq_DLYPRT
10504   * @param  HRTIMx High Resolution Timer instance
10505   * @param  Timer This parameter can be one of the following values:
10506   *         @arg @ref LL_HRTIM_TIMER_A
10507   *         @arg @ref LL_HRTIM_TIMER_B
10508   *         @arg @ref LL_HRTIM_TIMER_C
10509   *         @arg @ref LL_HRTIM_TIMER_D
10510   *         @arg @ref LL_HRTIM_TIMER_E
10511   * @retval State of DLYPRTDE bit in HRTIM_TIMxDIER register (1 or 0).
10512   */
10513 __STATIC_INLINE uint32_t LL_HRTIM_IsEnabledDMAReq_DLYPRT(const HRTIM_TypeDef *HRTIMx, uint32_t Timer)
10514 {
10515   uint32_t iTimer = (uint8_t)(POSITION_VAL(Timer) - HRTIM_MCR_MCEN_Pos);
10516   const __IO uint32_t *pReg = (__IO uint32_t *)((uint32_t)((uint32_t)(&HRTIMx->sMasterRegs.MDIER) +
10517                                                     REG_OFFSET_TAB_TIMER[iTimer]));
10518 
10519   return ((READ_BIT(*pReg, HRTIM_TIMDIER_DLYPRTDE) == (HRTIM_TIMDIER_DLYPRTDE)) ? 1UL : 0UL);
10520 }
10521 
10522 /**
10523   * @}
10524   */
10525 
10526 #if defined(USE_FULL_LL_DRIVER) || defined(__rtems__)
10527 /** @defgroup HRTIM_LL_LL_EF_Init In-initialization and de-initialization functions
10528   * @ingroup RTEMSBSPsARMSTM32H7
10529   * @{
10530   */
10531 ErrorStatus LL_HRTIM_DeInit(HRTIM_TypeDef* HRTIMx);
10532 /**
10533   * @}
10534   */
10535 #endif /* USE_FULL_LL_DRIVER */
10536 
10537 /**
10538   * @}
10539   */
10540 
10541 /**
10542   * @}
10543   */
10544 
10545 #endif /* HRTIM1 */
10546 
10547 /**
10548   * @}
10549   */
10550 
10551 #ifdef __cplusplus
10552 }
10553 #endif
10554 
10555 #endif /* STM32H7xx_LL_HRTIM_H */
10556 
10557