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
 | ||
|  | 
 |