| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- #ifndef _API_SYSCLK_H_
- #define _API_SYSCLK_H_
- enum {
- SYS_RC2M,
- SYS_24M,
- SYS_48M,
- SYS_60M,
- SYS_80M,
- SYS_120M,
- SYS_160M,
- };
- enum {
- CLK_31K25,
- CLK_RCDIV,
- };
- enum {
- INDEX_VOICE = 0,
- INDEX_DECODE,
- INDEX_STACK,
- INDEX_USER,
- INDEX_MAX_NB,
- };
- /**
- * @brief Get the clock value last set for the function sys_clk_set()
- * @return [SYS_RC2M - SYS_160M]
- */
- u8 sys_clk_get(void);
- /**
- * @brief Get the current clock of the system
- * @return [SYS_RC2M - SYS_160M]
- */
- u8 sys_clk_get_cur(void);
- u32 sys_clk_nhz_get(void);
- /**
- * @brief Get RC2M clk frequency
- * @param type: 0: system rc2m 1:rtc rc2m
- * @return RC2M clk frequency
- */
- u32 rc2m_clk_nhz_get(u8 type);
- u32 pll_clk_nhz_get(void);
- /**
- * @brief Set system clock,
- * @attention If the clock to be set is lower than the value which be set by the function sys_clk_lower_limit_unlock, the setting will not take effect now
- * @param [SYS_RC2M, SYS_160M]
- */
- void sys_clk_set(u32 clk_sel);
- bool sys_clk_lower_limit_all_unlock(void);
- /**
- * @brief Unset the value which be set by sys_clk_lower_limit_lock
- * @param index: [INDEX_VOICE, INDEX_MAX_NB)
- * @return true or false
- */
- bool sys_clk_lower_limit_unlock(uint8_t index);
- /**
- * @brief Set the minimum clock frequency for the system
- * @attention If the clock to be set is lower than the current clock of the system, the setting will not take effect now
- * @param index: [INDEX_VOICE, INDEX_MAX_NB) sys_clk:[SYS_RC2M - SYS_160M]
- * @return true or false
- */
- bool sys_clk_lower_limit_lock(uint8_t index, uint8_t sys_clk);
- #endif
|