| | |
| | | /* |
| | | * Copyright (c) 2019-2023 Beijing Hanwei Innovation Technology Ltd. Co. and |
| | | * Copyright (c) 2019-2025 Beijing Hanwei Innovation Technology Ltd. Co. and |
| | | * its subsidiaries and affiliates (collectly called MKSEMI). |
| | | * |
| | | * All rights reserved. |
| | |
| | | */ |
| | | |
| | | #ifndef RTC_FREE_COUNTER_EN |
| | | #define RTC_FREE_COUNTER_EN (0) |
| | | #define RTC_FREE_COUNTER_EN (1) |
| | | #endif |
| | | |
| | | #if RTC_FREE_COUNTER_EN |
| | |
| | | extern "C" { |
| | | #endif |
| | | |
| | | int rtc_open(enum RTC_DEV_T id); |
| | | uint32_t rtc_ms(void); |
| | | uint32_t rtc_us(void); |
| | | |
| | | int rtc_open(enum RTC_DEV_T id, uint8_t rst_en); |
| | | int rtc_close(enum RTC_DEV_T id); |
| | | |
| | | uint32_t rtc_get(enum RTC_DEV_T id); |
| | | |
| | | int rtc_set_alarm_lite(enum RTC_DEV_T id, uint32_t target); |
| | | int rtc_set_alarm(enum RTC_DEV_T id, uint32_t target, drv_callback_t callback); |
| | | void rtc_clear_alarm(enum RTC_DEV_T id); |
| | | void RTC_ALARM_IRQHandler(void); |
| | |
| | | extern "C" { |
| | | #endif |
| | | |
| | | int rtc_open(enum RTC_DEV_T id, drv_callback_t callback); |
| | | int rtc_open(enum RTC_DEV_T id, uint8_t rst_en, drv_callback_t callback); |
| | | int rtc_close(enum RTC_DEV_T id); |
| | | |
| | | int rtc_set(enum RTC_DEV_T id, struct RTC_TIME_T *time); |
| | |
| | | #endif |
| | | #endif |
| | | |
| | | /* RCO 32K clock measure time */ |
| | | enum RCO32_MEAS_TIME_T |
| | | /* CLK 32K measurement time */ |
| | | enum CLK32K_MEAS_TIME_T |
| | | { |
| | | RCO32K_MEAS_TIME_8_CYCLES = 0, |
| | | RCO32K_MEAS_TIME_16_CYCLES, |
| | | RCO32K_MEAS_TIME_32_CYCLES, // ~1ms |
| | | RCO32K_MEAS_TIME_64_CYCLES, |
| | | RCO32K_MEAS_TIME_128_CYCLES, |
| | | RCO32K_MEAS_TIME_256_CYCLES, |
| | | RCO32K_MEAS_TIME_512_CYCLES, |
| | | RCO32K_MEAS_TIME_1024_CYCLES, |
| | | CLK32K_MEAS_TIME_8_CYCLES = 0, |
| | | CLK32K_MEAS_TIME_16_CYCLES, |
| | | CLK32K_MEAS_TIME_32_CYCLES, // ~1ms |
| | | CLK32K_MEAS_TIME_64_CYCLES, |
| | | CLK32K_MEAS_TIME_128_CYCLES, |
| | | CLK32K_MEAS_TIME_256_CYCLES, |
| | | CLK32K_MEAS_TIME_512_CYCLES, |
| | | CLK32K_MEAS_TIME_1024_CYCLES, |
| | | }; |
| | | |
| | | void rco32k_clk_calibrate(enum RCO32_MEAS_TIME_T time); |
| | | void RCO32K_CAL_IRQHandler(void); |
| | | void clk32k_ppm_calibrate(enum CLK32K_MEAS_TIME_T time); |
| | | void CLK32K_CAL_IRQHandler(void); |
| | | |
| | | /** |
| | | * @} |