87 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /****************************************************************************
 | |
| 
 | |
| Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
 | |
| 
 | |
| This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
 | |
| be copied by any method or incorporated into another program without
 | |
| the express written consent of Aerospace C.Power. This Information or any portion
 | |
| thereof remains the property of Aerospace C.Power. The Information contained herein
 | |
| is believed to be accurate and Aerospace C.Power assumes no responsibility or
 | |
| liability for its use in any way and conveys no license or title under
 | |
| any patent or copyright and makes no representation or warranty that this
 | |
| Information is free from patent or copyright infringement.
 | |
| 
 | |
| ****************************************************************************/
 | |
| #ifndef _CLK_H
 | |
| #define _CLK_H
 | |
| 
 | |
| #if HW_PLATFORM > HW_PLATFORM_SIMU
 | |
| #include "clk_hw.h"
 | |
| #else
 | |
| typedef enum {
 | |
|     CPU_FREQ_25M = 0,
 | |
|     CPU_FREQ_75M,
 | |
|     CPU_FREQ_150M,
 | |
|     CPU_FREQ_160M,
 | |
|     CPU_FREQ_170M,
 | |
|     CPU_FREQ_180M,
 | |
|     CPU_FREQ_200M,
 | |
| 
 | |
|     CPU_FREQ_MAX,
 | |
| } CPU_FREQ;
 | |
| #endif
 | |
| 
 | |
| extern uint32_t g_cpu_freq;
 | |
| 
 | |
| int clk_core_freq_set(uint32_t freq);
 | |
| 
 | |
| uint32_t clk_core_freq_get();
 | |
| 
 | |
| void clk_i2s_dev_set(uint32_t div, uint32_t m, uint32_t n);
 | |
| 
 | |
| void clk_core_freq_slip_25m_set();
 | |
| 
 | |
| void clk_core_freq_slip_150m_set();
 | |
| 
 | |
| uint32_t clk_pwm_src_freq_get(void);
 | |
| 
 | |
| void clk_pwm_src_freq_set(uint32_t frq);
 | |
| 
 | |
| /**
 | |
|  * @brief clk_core_init() - set clock source and frequency division coefficient.
 | |
|  * @return none.
 | |
|  */
 | |
| void clk_core_init(void);
 | |
| 
 | |
| /* Clock source type */
 | |
| #define CLK_TYPE_XTL        1
 | |
| #define CLK_TYPE_APB        2
 | |
| #define CLK_TYPE_MPLL       3
 | |
| #define CLK_TYPE_WPHY_FCLK  4
 | |
| #define CLK_TYPE_PLC_ADC    5
 | |
| #define CLK_TYPE_PLC_DAC    6
 | |
| #define CLK_TYPE_TPID       7
 | |
| #define CLK_TYPE_METER      8
 | |
| #define CLK_TYPE_AHB        9
 | |
| #define CLK_TYPE_PLC_50     10
 | |
| #define CLK_TYPE_PLC_75     11
 | |
| #define CLK_TYPE_PLC_150    12
 | |
| 
 | |
| /* Frequency division coefficient */
 | |
| #define CLK_DIV1    0x0
 | |
| #define CLK_DIV2    0x1
 | |
| #define CLK_DIV4    0x3
 | |
| #define CLK_DIV8    0x7
 | |
| #define CLK_DIV16   0xF
 | |
| 
 | |
| /*
 | |
|  * Type : 1-XTL, 2-APB, 3-MPLL, 4-WPHY_FCLK, 5-PLC_ADC, 6-PLC_DAC, 7-TPID,
 | |
|  *        8-METER, 9-AHB, 10-PLC_50, 11-PLC_75, 12-PLC_150.
 | |
|  * div : 0x0 - DIV1, 0x1 - DIV2, 0x3 - DIV4, 0x7 - DIV8, 0xF - DIV16.
 | |
|  * gpio : gpio to output the selected clock.
 | |
|  */
 | |
| uint32_t clk_debug_output_set(uint32_t type, uint32_t div, uint32_t gpio);
 | |
| 
 | |
| #endif //_CLK_H
 | |
| 
 |