36#ifndef __STM32F4xx_LL_BUS_H
37#define __STM32F4xx_LL_BUS_H
69#define LL_AHB1_GRP1_PERIPH_ALL 0xFFFFFFFFU
70#define LL_AHB1_GRP1_PERIPH_GPIOA RCC_AHB1ENR_GPIOAEN
71#define LL_AHB1_GRP1_PERIPH_GPIOB RCC_AHB1ENR_GPIOBEN
72#define LL_AHB1_GRP1_PERIPH_GPIOC RCC_AHB1ENR_GPIOCEN
74#define LL_AHB1_GRP1_PERIPH_GPIOD RCC_AHB1ENR_GPIODEN
77#define LL_AHB1_GRP1_PERIPH_GPIOE RCC_AHB1ENR_GPIOEEN
80#define LL_AHB1_GRP1_PERIPH_GPIOF RCC_AHB1ENR_GPIOFEN
83#define LL_AHB1_GRP1_PERIPH_GPIOG RCC_AHB1ENR_GPIOGEN
86#define LL_AHB1_GRP1_PERIPH_GPIOH RCC_AHB1ENR_GPIOHEN
89#define LL_AHB1_GRP1_PERIPH_GPIOI RCC_AHB1ENR_GPIOIEN
92#define LL_AHB1_GRP1_PERIPH_GPIOJ RCC_AHB1ENR_GPIOJEN
95#define LL_AHB1_GRP1_PERIPH_GPIOK RCC_AHB1ENR_GPIOKEN
97#define LL_AHB1_GRP1_PERIPH_CRC RCC_AHB1ENR_CRCEN
98#if defined(RCC_AHB1ENR_BKPSRAMEN)
99#define LL_AHB1_GRP1_PERIPH_BKPSRAM RCC_AHB1ENR_BKPSRAMEN
101#if defined(RCC_AHB1ENR_CCMDATARAMEN)
102#define LL_AHB1_GRP1_PERIPH_CCMDATARAM RCC_AHB1ENR_CCMDATARAMEN
104#define LL_AHB1_GRP1_PERIPH_DMA1 RCC_AHB1ENR_DMA1EN
105#define LL_AHB1_GRP1_PERIPH_DMA2 RCC_AHB1ENR_DMA2EN
106#if defined(RCC_AHB1ENR_RNGEN)
107#define LL_AHB1_GRP1_PERIPH_RNG RCC_AHB1ENR_RNGEN
110#define LL_AHB1_GRP1_PERIPH_DMA2D RCC_AHB1ENR_DMA2DEN
113#define LL_AHB1_GRP1_PERIPH_ETHMAC RCC_AHB1ENR_ETHMACEN
114#define LL_AHB1_GRP1_PERIPH_ETHMACTX RCC_AHB1ENR_ETHMACTXEN
115#define LL_AHB1_GRP1_PERIPH_ETHMACRX RCC_AHB1ENR_ETHMACRXEN
116#define LL_AHB1_GRP1_PERIPH_ETHMACPTP RCC_AHB1ENR_ETHMACPTPEN
118#if defined(USB_OTG_HS)
119#define LL_AHB1_GRP1_PERIPH_OTGHS RCC_AHB1ENR_OTGHSEN
120#define LL_AHB1_GRP1_PERIPH_OTGHSULPI RCC_AHB1ENR_OTGHSULPIEN
122#define LL_AHB1_GRP1_PERIPH_FLITF RCC_AHB1LPENR_FLITFLPEN
123#define LL_AHB1_GRP1_PERIPH_SRAM1 RCC_AHB1LPENR_SRAM1LPEN
124#if defined(RCC_AHB1LPENR_SRAM2LPEN)
125#define LL_AHB1_GRP1_PERIPH_SRAM2 RCC_AHB1LPENR_SRAM2LPEN
127#if defined(RCC_AHB1LPENR_SRAM3LPEN)
128#define LL_AHB1_GRP1_PERIPH_SRAM3 RCC_AHB1LPENR_SRAM3LPEN
134#if defined(RCC_AHB2_SUPPORT)
138#define LL_AHB2_GRP1_PERIPH_ALL 0xFFFFFFFFU
140#define LL_AHB2_GRP1_PERIPH_DCMI RCC_AHB2ENR_DCMIEN
143#define LL_AHB2_GRP1_PERIPH_CRYP RCC_AHB2ENR_CRYPEN
146#define LL_AHB2_GRP1_PERIPH_AES RCC_AHB2ENR_AESEN
149#define LL_AHB2_GRP1_PERIPH_HASH RCC_AHB2ENR_HASHEN
151#if defined(RCC_AHB2ENR_RNGEN)
152#define LL_AHB2_GRP1_PERIPH_RNG RCC_AHB2ENR_RNGEN
154#if defined(USB_OTG_FS)
155#define LL_AHB2_GRP1_PERIPH_OTGFS RCC_AHB2ENR_OTGFSEN
162#if defined(RCC_AHB3_SUPPORT)
166#define LL_AHB3_GRP1_PERIPH_ALL 0xFFFFFFFFU
167#if defined(FSMC_Bank1)
168#define LL_AHB3_GRP1_PERIPH_FSMC RCC_AHB3ENR_FSMCEN
170#if defined(FMC_Bank1)
171#define LL_AHB3_GRP1_PERIPH_FMC RCC_AHB3ENR_FMCEN
174#define LL_AHB3_GRP1_PERIPH_QSPI RCC_AHB3ENR_QSPIEN
184#define LL_APB1_GRP1_PERIPH_ALL 0xFFFFFFFFU
186#define LL_APB1_GRP1_PERIPH_TIM2 RCC_APB1ENR_TIM2EN
189#define LL_APB1_GRP1_PERIPH_TIM3 RCC_APB1ENR_TIM3EN
192#define LL_APB1_GRP1_PERIPH_TIM4 RCC_APB1ENR_TIM4EN
194#define LL_APB1_GRP1_PERIPH_TIM5 RCC_APB1ENR_TIM5EN
196#define LL_APB1_GRP1_PERIPH_TIM6 RCC_APB1ENR_TIM6EN
199#define LL_APB1_GRP1_PERIPH_TIM7 RCC_APB1ENR_TIM7EN
202#define LL_APB1_GRP1_PERIPH_TIM12 RCC_APB1ENR_TIM12EN
205#define LL_APB1_GRP1_PERIPH_TIM13 RCC_APB1ENR_TIM13EN
208#define LL_APB1_GRP1_PERIPH_TIM14 RCC_APB1ENR_TIM14EN
211#define LL_APB1_GRP1_PERIPH_LPTIM1 RCC_APB1ENR_LPTIM1EN
213#if defined(RCC_APB1ENR_RTCAPBEN)
214#define LL_APB1_GRP1_PERIPH_RTCAPB RCC_APB1ENR_RTCAPBEN
216#define LL_APB1_GRP1_PERIPH_WWDG RCC_APB1ENR_WWDGEN
218#define LL_APB1_GRP1_PERIPH_SPI2 RCC_APB1ENR_SPI2EN
221#define LL_APB1_GRP1_PERIPH_SPI3 RCC_APB1ENR_SPI3EN
224#define LL_APB1_GRP1_PERIPH_SPDIFRX RCC_APB1ENR_SPDIFRXEN
226#define LL_APB1_GRP1_PERIPH_USART2 RCC_APB1ENR_USART2EN
228#define LL_APB1_GRP1_PERIPH_USART3 RCC_APB1ENR_USART3EN
231#define LL_APB1_GRP1_PERIPH_UART4 RCC_APB1ENR_UART4EN
234#define LL_APB1_GRP1_PERIPH_UART5 RCC_APB1ENR_UART5EN
236#define LL_APB1_GRP1_PERIPH_I2C1 RCC_APB1ENR_I2C1EN
237#define LL_APB1_GRP1_PERIPH_I2C2 RCC_APB1ENR_I2C2EN
239#define LL_APB1_GRP1_PERIPH_I2C3 RCC_APB1ENR_I2C3EN
242#define LL_APB1_GRP1_PERIPH_FMPI2C1 RCC_APB1ENR_FMPI2C1EN
245#define LL_APB1_GRP1_PERIPH_CAN1 RCC_APB1ENR_CAN1EN
248#define LL_APB1_GRP1_PERIPH_CAN2 RCC_APB1ENR_CAN2EN
251#define LL_APB1_GRP1_PERIPH_CAN3 RCC_APB1ENR_CAN3EN
254#define LL_APB1_GRP1_PERIPH_CEC RCC_APB1ENR_CECEN
256#define LL_APB1_GRP1_PERIPH_PWR RCC_APB1ENR_PWREN
258#define LL_APB1_GRP1_PERIPH_DAC1 RCC_APB1ENR_DACEN
261#define LL_APB1_GRP1_PERIPH_UART7 RCC_APB1ENR_UART7EN
264#define LL_APB1_GRP1_PERIPH_UART8 RCC_APB1ENR_UART8EN
273#define LL_APB2_GRP1_PERIPH_ALL 0xFFFFFFFFU
274#define LL_APB2_GRP1_PERIPH_TIM1 RCC_APB2ENR_TIM1EN
276#define LL_APB2_GRP1_PERIPH_TIM8 RCC_APB2ENR_TIM8EN
278#define LL_APB2_GRP1_PERIPH_USART1 RCC_APB2ENR_USART1EN
280#define LL_APB2_GRP1_PERIPH_USART6 RCC_APB2ENR_USART6EN
283#define LL_APB2_GRP1_PERIPH_UART9 RCC_APB2ENR_UART9EN
286#define LL_APB2_GRP1_PERIPH_UART10 RCC_APB2ENR_UART10EN
288#define LL_APB2_GRP1_PERIPH_ADC1 RCC_APB2ENR_ADC1EN
290#define LL_APB2_GRP1_PERIPH_ADC2 RCC_APB2ENR_ADC2EN
293#define LL_APB2_GRP1_PERIPH_ADC3 RCC_APB2ENR_ADC3EN
296#define LL_APB2_GRP1_PERIPH_SDIO RCC_APB2ENR_SDIOEN
298#define LL_APB2_GRP1_PERIPH_SPI1 RCC_APB2ENR_SPI1EN
300#define LL_APB2_GRP1_PERIPH_SPI4 RCC_APB2ENR_SPI4EN
302#define LL_APB2_GRP1_PERIPH_SYSCFG RCC_APB2ENR_SYSCFGEN
303#if defined(RCC_APB2ENR_EXTITEN)
304#define LL_APB2_GRP1_PERIPH_EXTI RCC_APB2ENR_EXTITEN
306#define LL_APB2_GRP1_PERIPH_TIM9 RCC_APB2ENR_TIM9EN
308#define LL_APB2_GRP1_PERIPH_TIM10 RCC_APB2ENR_TIM10EN
310#define LL_APB2_GRP1_PERIPH_TIM11 RCC_APB2ENR_TIM11EN
312#define LL_APB2_GRP1_PERIPH_SPI5 RCC_APB2ENR_SPI5EN
315#define LL_APB2_GRP1_PERIPH_SPI6 RCC_APB2ENR_SPI6EN
318#define LL_APB2_GRP1_PERIPH_SAI1 RCC_APB2ENR_SAI1EN
321#define LL_APB2_GRP1_PERIPH_SAI2 RCC_APB2ENR_SAI2EN
324#define LL_APB2_GRP1_PERIPH_LTDC RCC_APB2ENR_LTDCEN
327#define LL_APB2_GRP1_PERIPH_DSI RCC_APB2ENR_DSIEN
329#if defined(DFSDM1_Channel0)
330#define LL_APB2_GRP1_PERIPH_DFSDM1 RCC_APB2ENR_DFSDM1EN
332#if defined(DFSDM2_Channel0)
333#define LL_APB2_GRP1_PERIPH_DFSDM2 RCC_APB2ENR_DFSDM2EN
335#define LL_APB2_GRP1_PERIPH_ADC RCC_APB2RSTR_ADCRST
409__STATIC_INLINE
void LL_AHB1_GRP1_EnableClock(uint32_t Periphs)
411 __IO uint32_t tmpreg;
412 SET_BIT(RCC->AHB1ENR, Periphs);
414 tmpreg = READ_BIT(RCC->AHB1ENR, Periphs);
473__STATIC_INLINE uint32_t LL_AHB1_GRP1_IsEnabledClock(uint32_t Periphs)
475 return (READ_BIT(RCC->AHB1ENR, Periphs) == Periphs);
533__STATIC_INLINE
void LL_AHB1_GRP1_DisableClock(uint32_t Periphs)
535 CLEAR_BIT(RCC->AHB1ENR, Periphs);
582__STATIC_INLINE
void LL_AHB1_GRP1_ForceReset(uint32_t Periphs)
584 SET_BIT(RCC->AHB1RSTR, Periphs);
631__STATIC_INLINE
void LL_AHB1_GRP1_ReleaseReset(uint32_t Periphs)
633 CLEAR_BIT(RCC->AHB1RSTR, Periphs);
698__STATIC_INLINE
void LL_AHB1_GRP1_EnableClockLowPower(uint32_t Periphs)
700 __IO uint32_t tmpreg;
701 SET_BIT(RCC->AHB1LPENR, Periphs);
703 tmpreg = READ_BIT(RCC->AHB1LPENR, Periphs);
769__STATIC_INLINE
void LL_AHB1_GRP1_DisableClockLowPower(uint32_t Periphs)
771 CLEAR_BIT(RCC->AHB1LPENR, Periphs);
778#if defined(RCC_AHB2_SUPPORT)
802__STATIC_INLINE
void LL_AHB2_GRP1_EnableClock(uint32_t Periphs)
804 __IO uint32_t tmpreg;
805 SET_BIT(RCC->AHB2ENR, Periphs);
807 tmpreg = READ_BIT(RCC->AHB2ENR, Periphs);
830__STATIC_INLINE uint32_t LL_AHB2_GRP1_IsEnabledClock(uint32_t Periphs)
832 return (READ_BIT(RCC->AHB2ENR, Periphs) == Periphs);
854__STATIC_INLINE
void LL_AHB2_GRP1_DisableClock(uint32_t Periphs)
856 CLEAR_BIT(RCC->AHB2ENR, Periphs);
879__STATIC_INLINE
void LL_AHB2_GRP1_ForceReset(uint32_t Periphs)
881 SET_BIT(RCC->AHB2RSTR, Periphs);
904__STATIC_INLINE
void LL_AHB2_GRP1_ReleaseReset(uint32_t Periphs)
906 CLEAR_BIT(RCC->AHB2RSTR, Periphs);
928__STATIC_INLINE
void LL_AHB2_GRP1_EnableClockLowPower(uint32_t Periphs)
930 __IO uint32_t tmpreg;
931 SET_BIT(RCC->AHB2LPENR, Periphs);
933 tmpreg = READ_BIT(RCC->AHB2LPENR, Periphs);
956__STATIC_INLINE
void LL_AHB2_GRP1_DisableClockLowPower(uint32_t Periphs)
958 CLEAR_BIT(RCC->AHB2LPENR, Periphs);
966#if defined(RCC_AHB3_SUPPORT)
984__STATIC_INLINE
void LL_AHB3_GRP1_EnableClock(uint32_t Periphs)
986 __IO uint32_t tmpreg;
987 SET_BIT(RCC->AHB3ENR, Periphs);
989 tmpreg = READ_BIT(RCC->AHB3ENR, Periphs);
1006__STATIC_INLINE uint32_t LL_AHB3_GRP1_IsEnabledClock(uint32_t Periphs)
1008 return (READ_BIT(RCC->AHB3ENR, Periphs) == Periphs);
1024__STATIC_INLINE
void LL_AHB3_GRP1_DisableClock(uint32_t Periphs)
1026 CLEAR_BIT(RCC->AHB3ENR, Periphs);
1043__STATIC_INLINE
void LL_AHB3_GRP1_ForceReset(uint32_t Periphs)
1045 SET_BIT(RCC->AHB3RSTR, Periphs);
1062__STATIC_INLINE
void LL_AHB3_GRP1_ReleaseReset(uint32_t Periphs)
1064 CLEAR_BIT(RCC->AHB3RSTR, Periphs);
1080__STATIC_INLINE
void LL_AHB3_GRP1_EnableClockLowPower(uint32_t Periphs)
1082 __IO uint32_t tmpreg;
1083 SET_BIT(RCC->AHB3LPENR, Periphs);
1085 tmpreg = READ_BIT(RCC->AHB3LPENR, Periphs);
1102__STATIC_INLINE
void LL_AHB3_GRP1_DisableClockLowPower(uint32_t Periphs)
1104 CLEAR_BIT(RCC->AHB3LPENR, Periphs);
1185__STATIC_INLINE
void LL_APB1_GRP1_EnableClock(uint32_t Periphs)
1187 __IO uint32_t tmpreg;
1188 SET_BIT(RCC->APB1ENR, Periphs);
1190 tmpreg = READ_BIT(RCC->APB1ENR, Periphs);
1263__STATIC_INLINE uint32_t LL_APB1_GRP1_IsEnabledClock(uint32_t Periphs)
1265 return (READ_BIT(RCC->APB1ENR, Periphs) == Periphs);
1337__STATIC_INLINE
void LL_APB1_GRP1_DisableClock(uint32_t Periphs)
1339 CLEAR_BIT(RCC->APB1ENR, Periphs);
1409__STATIC_INLINE
void LL_APB1_GRP1_ForceReset(uint32_t Periphs)
1411 SET_BIT(RCC->APB1RSTR, Periphs);
1481__STATIC_INLINE
void LL_APB1_GRP1_ReleaseReset(uint32_t Periphs)
1483 CLEAR_BIT(RCC->APB1RSTR, Periphs);
1555__STATIC_INLINE
void LL_APB1_GRP1_EnableClockLowPower(uint32_t Periphs)
1557 __IO uint32_t tmpreg;
1558 SET_BIT(RCC->APB1LPENR, Periphs);
1560 tmpreg = READ_BIT(RCC->APB1LPENR, Periphs);
1633__STATIC_INLINE
void LL_APB1_GRP1_DisableClockLowPower(uint32_t Periphs)
1635 CLEAR_BIT(RCC->APB1LPENR, Periphs);
1704__STATIC_INLINE
void LL_APB2_GRP1_EnableClock(uint32_t Periphs)
1706 __IO uint32_t tmpreg;
1707 SET_BIT(RCC->APB2ENR, Periphs);
1709 tmpreg = READ_BIT(RCC->APB2ENR, Periphs);
1770__STATIC_INLINE uint32_t LL_APB2_GRP1_IsEnabledClock(uint32_t Periphs)
1772 return (READ_BIT(RCC->APB2ENR, Periphs) == Periphs);
1832__STATIC_INLINE
void LL_APB2_GRP1_DisableClock(uint32_t Periphs)
1834 CLEAR_BIT(RCC->APB2ENR, Periphs);
1889__STATIC_INLINE
void LL_APB2_GRP1_ForceReset(uint32_t Periphs)
1891 SET_BIT(RCC->APB2RSTR, Periphs);
1947__STATIC_INLINE
void LL_APB2_GRP1_ReleaseReset(uint32_t Periphs)
1949 CLEAR_BIT(RCC->APB2RSTR, Periphs);
2010__STATIC_INLINE
void LL_APB2_GRP1_EnableClockLowPower(uint32_t Periphs)
2012 __IO uint32_t tmpreg;
2013 SET_BIT(RCC->APB2LPENR, Periphs);
2015 tmpreg = READ_BIT(RCC->APB2LPENR, Periphs);
2077__STATIC_INLINE
void LL_APB2_GRP1_DisableClockLowPower(uint32_t Periphs)
2079 CLEAR_BIT(RCC->APB2LPENR, Periphs);