1 #include "bflb_clock.h"
2 #if defined(BL702)
3 #include "bl702_clock.h"
4 #elif defined(BL702L)
5 #include "bl702l_clock.h"
6 #elif defined(BL606P)
7 #include "bl606p_clock.h"
8 #elif defined(BL808)
9 #include "bl808_clock.h"
10 #elif defined(BL616)
11 #include "bl616_clock.h"
12 #elif defined(WB03)
13 #include "wb03_clock.h"
14 #elif defined(BL628)
15 #include "bl628_clock.h"
16 #endif
17 
18 /****************************************************************************/ /**
19  * @brief  get system clock
20  *
21  * @param  type: BFLB_SYSTEM_XXX
22  *
23  * @return NONE
24  *
25 *******************************************************************************/
bflb_clk_get_system_clock(uint8_t type)26 uint32_t ATTR_CLOCK_SECTION bflb_clk_get_system_clock(uint8_t type)
27 {
28     switch (type) {
29         case BFLB_SYSTEM_ROOT_CLOCK:
30             return bflb_clock_get_root();
31         case BFLB_SYSTEM_CPU_CLK:
32             return bflb_clock_get_fclk();
33         case BFLB_SYSTEM_PBCLK:
34             return bflb_clock_get_bclk();
35         case BFLB_SYSTEM_XCLK:
36             return bflb_clock_get_xclk();
37         case BFLB_SYSTEM_32K_CLK:
38             return bflb_clock_get_f32k();
39         default:
40             return 0;
41     }
42     return 0;
43 }
44 
45 /****************************************************************************/ /**
46  * @brief  get peripheral clock
47  *
48  * @param  type: BFLB_DEVICE_TYPE_XXX
49  * @param  idx: peripheral index
50  *
51  * @return NONE
52  *
53 *******************************************************************************/
bflb_clk_get_peripheral_clock(uint8_t type,uint8_t idx)54 uint32_t ATTR_CLOCK_SECTION bflb_clk_get_peripheral_clock(uint8_t type, uint8_t idx)
55 {
56     switch (type) {
57         case BFLB_DEVICE_TYPE_ADC:
58             return bflb_clock_get_adc();
59         case BFLB_DEVICE_TYPE_DAC:
60             return bflb_clock_get_dac();
61         case BFLB_DEVICE_TYPE_UART:
62             return bflb_clock_get_uart();
63         case BFLB_DEVICE_TYPE_SPI:
64             return bflb_clock_get_spi();
65         case BFLB_DEVICE_TYPE_I2C:
66             return bflb_clock_get_i2c();
67         case BFLB_DEVICE_TYPE_PWM:
68             return bflb_clock_get_pwm();
69         case BFLB_DEVICE_TYPE_TIMER:
70             return bflb_clock_get_timer(idx);
71         case BFLB_DEVICE_TYPE_WDT:
72             return bflb_clock_get_wdt();
73         case BFLB_DEVICE_TYPE_FLASH:
74             return bflb_clock_get_flash();
75         case BFLB_DEVICE_TYPE_IR:
76             return bflb_clock_get_ir();
77         case BFLB_DEVICE_TYPE_PKA:
78             return bflb_clock_get_pka();
79         case BFLB_DEVICE_TYPE_SDH:
80             return bflb_clock_get_sdh();
81         case BFLB_DEVICE_TYPE_CAMERA:
82             return bflb_clock_get_cam();
83         case BFLB_DEVICE_TYPE_DBI:
84             return bflb_clock_get_dbi();
85         case BFLB_DEVICE_TYPE_I2S:
86             return bflb_clock_get_i2s();
87         default:
88             return 0;
89     }
90     return 0;
91 }
92