MAX_CARLINK_A270S/MXC_A27-PCB4.5-270T/ArkmicroFiles/libcpu-amt630hv100/include/clock.h

70 lines
1.0 KiB
C

#ifndef _CLOCK_H
#define _CLOCK_H
#ifdef __cplusplus
extern "C" {
#endif
#define MAX_CLK_SOURCE_NUM 4
#define MAX_CLK_ENABLE_BITS 4
typedef enum {
CLK_XTAL32K = 0,
CLK_XTAL24M,
CLK_240MHZ,
CLK_12MHZ,
CLK_6MHZ,
CLK_CPUPLL,
CLK_SYSPLL,
CLK_VPUPLL,
CLK_DDRPLL,//Ôö¼ÓDDR PLL
CLK_DDR,
CLK_CPU,
CLK_H2X,
CLK_AHB,
CLK_APB,
CLK_RTC,
CLK_SPI0,
CLK_SPI1,
CLK_SDMMC0,
CLK_LCD,
CLK_UART1,
CLK_UART2,
CLK_UART3,
CLK_TIMER,
CLK_MFC,
CLK_PWM,
CLK_CAN0,
CLK_CAN1,
CLK_ADC,
CLK_I2S,
CLK_I2S1,
}eClockID;
typedef enum {
FIXED_CLOCK = 0,
FIXED_FACTOR_CLOCK,
PLL_CLOCK,
SYS_CLOCK,
}eClockType;
typedef enum {
DIVMODE_NOZERO = 0, /* div = div ? div : 1 */
DIVMODE_PLUSONE, /* div = div + 1 */
DIVMODE_DOUBLE, /* div = div * 2 */
DIVMODE_EXPONENT, /* div = 1 << div */
DIVMODE_PONEDOUBLE, /* div = (div + 1) * 2 */
}eDivMode;
void vClkInit(void);
uint32_t ulClkGetRate(uint32_t clkid);
void vClkSetRate(uint32_t clkid, uint32_t freq);
void vClkEnable(uint32_t clkid);
void vClkDisable(uint32_t clkid);
#ifdef __cplusplus
}
#endif
#endif