[FLYWOOF411] add board documentation
[inav/snaewe.git] / src / main / drivers / rcc.c
blob736c74e404524304110b5bb892f25975054fcde2
2 #include "platform.h"
3 #include "rcc.h"
5 #define RCC_BIT_CMD(ptr, mask, state) do { if (state != DISABLE) { ptr |= mask; } else { ptr &= ~mask; } } while(0)
8 void RCC_ClockCmd(rccPeriphTag_t periphTag, FunctionalState NewState)
10 int tag = periphTag >> 5;
11 uint32_t mask = 1 << (periphTag & 0x1f);
13 switch (tag) {
14 #if defined(STM32F3)
15 case RCC_AHB:
16 RCC_BIT_CMD(RCC->AHBENR, mask, NewState);
17 break;
18 #endif
19 case RCC_APB2:
20 RCC_BIT_CMD(RCC->APB2ENR, mask, NewState);
21 break;
22 case RCC_APB1:
23 RCC_BIT_CMD(RCC->APB1ENR, mask, NewState);
24 break;
25 #if defined(STM32F4) || defined(STM32F7)
26 case RCC_AHB1:
27 RCC_BIT_CMD(RCC->AHB1ENR, mask, NewState);
28 break;
29 #endif
33 void RCC_ResetCmd(rccPeriphTag_t periphTag, FunctionalState NewState)
35 int tag = periphTag >> 5;
36 uint32_t mask = 1 << (periphTag & 0x1f);
38 switch (tag) {
39 #if defined(STM32F3)
40 case RCC_AHB:
41 RCC_BIT_CMD(RCC->AHBRSTR, mask, NewState);
42 break;
43 #endif
44 case RCC_APB2:
45 RCC_BIT_CMD(RCC->APB2RSTR, mask, NewState);
46 break;
47 case RCC_APB1:
48 RCC_BIT_CMD(RCC->APB1RSTR, mask, NewState);
49 break;
50 #if defined(STM32F4) || defined(STM32F7)
51 case RCC_AHB1:
52 RCC_BIT_CMD(RCC->AHB1RSTR, mask, NewState);
53 break;
54 #endif