| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- #ifndef __CLK_RST_H__
- #define __CLK_RST_H__
- /*******************************************************************************
- * Include files
- ******************************************************************************/
- #include "stdint.h"
- /* C binding of definitions if building with C++ compiler */
- #ifdef __cplusplus
- extern "C"
- {
- #endif
- // the following macro make sure mutual exclusive read-modify-write when enable or disable peripheral clk in multi-task OS
- #define PeriClk_MutEnable(__CLK__) ((__CLK__)<32 ? PeriClk0MutEnable(0x1u<<(__CLK__)) : \
- PeriClk1MutEnable(0x1u<<((__CLK__)&0x1Fu)))
- #define PeriClk_MutDisable(__CLK__) ((__CLK__)<32 ? PeriClk0MutDisable(~(0x1u<<(__CLK__))) : \
- PeriClk1MutDisable(~(0x1u<<((__CLK__)&0x1Fu))))
- // the following is defined for __CLK__
- typedef enum {
- PeriClk_Uart0 = 0u,
- PeriClk_Uart1 = 1u,
- PeriClk_LpUart0 = 2u,
- PeriClk_LpUart1 = 3u,
- PeriClk_I2c0 = 4u,
- PeriClk_I2c1 = 5u,
- PeriClk_Spi0 = 6u,
- PeriClk_Spi1 = 7u,
- PeriClk_BaseTim = 8u,
- PeriClk_LpTim0 = 9u,
- PeriClk_AdvTim = 10u,
- PeriClk_Tim3 = 11u,
- PeriClk_Opa = 13u,
- PeriClk_Pca = 14u,
- PeriClk_Wdt = 15u,
- PeriClk_AdcBgr = 16u,
- PeriClk_VcLvd = 17u,
- PeriClk_Trng = 18u,
- PeriClk_Pcnt = 19u,
- PeriClk_Rtc = 20u,
- PeriClk_Trim = 21u,
- PeriClk_Lcd = 22u,
- PeriClk_Tick = 24u,
- PeriClk_Swd = 25u,
- PeriClk_Crc = 26u,
- PeriClk_Aes = 27u,
- PeriClk_Gpio = 28u,
- PeriClk_Dma = 29u,
- PeriClk_Flash = 31u,
- PeriClk_Dac = 35u,
- PeriClk_LpTim1 = 36u,
- PeriClk_Uart2 = 40u,
- PeriClk_Uart3 = 41u,
- } peri_clk_t;
- typedef enum {
- ResetUart0 = 0u,
- ResetUart1 = 1u,
- ResetLpUart0 = 2u,
- ResetLpUart1 = 3u,
- ResetI2c0 = 4u,
- ResetI2c1 = 5u,
- ResetSpi0 = 6u,
- ResetSpi1 = 7u,
- ResetBaseTim = 8u,
- ResetLpTim0 = 9u,
- ResetAdvTim = 10u,
- ResetTim3 = 11u,
- ResetOpa = 13u,
- ResetPca = 14u,
- ResetAdcBgr = 16u,
- ResetVcLvd = 17u,
- ResetRng = 18u,
- ResetPcnt = 19u,
- ResetRtc = 20u,
- ResetTrim = 21u,
- ResetLcd = 22u,
- ResetTick = 24u,
- ResetSwd = 25u,
- ResetCrc = 26u,
- ResetAes = 27u,
- ResetGpio = 28u,
- ResetDma = 29u,
- ResetDac = 35u,
- ResetLpTim1 = 36u,
- ResetUart2 = 40u,
- ResetUart3 = 41u,
- } peri_reset_t;
- extern void PeriClk0MutEnable(uint32_t ClkBitMsk);
- extern void PeriClk1MutEnable(uint32_t ClkBitMsk);
- extern void PeriClk0MutDisable(uint32_t ClkBitMsk_n);
- extern void PeriClk1MutDisable(uint32_t ClkBitMsk_n);
- extern void MutResetPeri(peri_reset_t PeriRst);
- typedef struct{
- uint8_t valid : 1; // Bit[0]
- int32_t ppm : 31; // Bit[31:1]
- } clkoffset_t;
- extern void clktrim_init(void);
- extern clkoffset_t clktrim_check(void);
- #ifdef __cplusplus
- }
- #endif
- #endif /* __CLK_RST_H__ */
- /******************************************************************************
- * EOF (not truncated)
- ******************************************************************************/
|