80 lines
2.5 KiB
C
Executable File
80 lines
2.5 KiB
C
Executable File
/**
|
|
Change clock APIs header file
|
|
|
|
Change clock APIs header.
|
|
|
|
@file clock.h
|
|
@ingroup mIDrvSys_CG
|
|
@note Nothing
|
|
|
|
Copyright Novatek Microelectronics Corp. 2020. All rights reserved.
|
|
*/
|
|
|
|
|
|
#ifndef _CLOCK_H
|
|
#define _CLOCK_H
|
|
|
|
#include <kwrap/nvt_type.h>
|
|
|
|
/**
|
|
Power Down mode definition
|
|
|
|
@note This definition is used for clk_powerdown() & clk_change_cpu_ahb().
|
|
*/
|
|
typedef enum {
|
|
CLK_PDN_MODE_CLKSCALING, ///< Clock scaling mode
|
|
CLK_PDN_MODE_SLEEP1, ///< Sleep mode 1
|
|
CLK_PDN_MODE_SLEEP2, ///< Sleep mode 2
|
|
CLK_PDN_MODE_SLEEP3, ///< Sleep mode 3
|
|
|
|
CLK_PDN_MODE_SYSOFF_DRAMON, ///< power off but DRAM keep self refresh
|
|
CLK_PDN_MODE_POWEROFF, ///< Sleep mode with ALL power off
|
|
CLK_PDN_MODE_SLEEP_DRAM_OFF, ///< Power down mode 3 with DRAM power off
|
|
|
|
ENUM_DUMMY4WORD(CLK_PDN_MODE)
|
|
} CLK_PDN_MODE;
|
|
|
|
/*
|
|
@name CLKGEN general call back prototype
|
|
|
|
@param[in] PLL_PDN_MODE Power state for this call back
|
|
@param[in] BOOL enter/exit power state
|
|
- @b TRUE: enter PLL_PDN_CBMODE
|
|
- @b FALSE: exit PLL_PDN_CBMODE
|
|
|
|
@return ER
|
|
*/
|
|
typedef ER(*CLK_CALLBACK_HDL)(CLK_PDN_MODE, BOOL);
|
|
|
|
/*
|
|
CLKGEN call back list
|
|
*/
|
|
typedef enum {
|
|
CLK_CALLBACK_ADC_PWRDN, //< ADC power down callback
|
|
CLK_CALLBACK_GPIO_PWRDN, //< GPIO power down callback
|
|
CLK_CALLBACK_RM_PWRDN, //< RM power down callback
|
|
CLK_CALLBACK_RTC_PWRDN, //< RTC power down callback
|
|
CLK_CALLBACK_USB_PWRDN, //< USB 2.0 power down callback
|
|
CLK_CALLBACK_USB3_PWRDN, //< USB 3.0 power down callback
|
|
|
|
CLK_CALLBACK_CNT,
|
|
ENUM_DUMMY4WORD(CLK_CALLBACK)
|
|
} CLK_CALLBACK;
|
|
|
|
typedef void (*CLK_RESUME_CB)(void); ///< SDIO IO pad call back function prototype
|
|
|
|
extern ER clk_set_callback(CLK_CALLBACK callback_id, CLK_CALLBACK_HDL pf_callback);
|
|
extern BOOL clk_powerdown(CLK_PDN_MODE mode);
|
|
extern void clock_platform_init(void);
|
|
extern void clock_platform_uninit(void);
|
|
extern BOOL clk_change_cpu_ahb(UINT32 cpu_clk, UINT32 skip_int);
|
|
extern BOOL clk_change_apb(UINT32 apb_clk);
|
|
extern BOOL clk_change_dma_clk_507MHz(void);
|
|
|
|
extern ER clk_set_resume_callback(CLK_RESUME_CB pCallBack);
|
|
|
|
extern void clk_copy_nand_resume(void);
|
|
extern void clk_copy_nor_resume(void);
|
|
|
|
#endif
|