mtk_rtc_hal_common.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #ifndef MTK_RTC_HAL_COMMON_H
  2. #define MTK_RTC_HAL_COMMON_H
  3. #include <linux/ioctl.h>
  4. #include <linux/rtc.h>
  5. #include <linux/types.h>
  6. typedef enum {
  7. RTC_FGSOC = 0,
  8. RTC_ANDROID,
  9. RTC_FAC_RESET,
  10. RTC_BYPASS_PWR,
  11. RTC_PWRON_TIME,
  12. RTC_FAST_BOOT,
  13. RTC_KPOC,
  14. RTC_DEBUG,
  15. RTC_PWRON_AL,
  16. RTC_UART,
  17. RTC_AUTOBOOT,
  18. RTC_PWRON_LOGO,
  19. RTC_32K_LESS,
  20. RTC_LP_DET,
  21. RTC_SPAR_NUM
  22. } rtc_spare_enum;
  23. typedef enum {
  24. RTC_REG,
  25. RTC_MASK,
  26. RTC_SHIFT
  27. } rtc_reg_set;
  28. extern u16 rtc_read(u16 addr);
  29. extern void rtc_write(u16 addr, u16 data);
  30. extern void rtc_write_trigger(void);
  31. extern void rtc_writeif_unlock(void);
  32. extern void hal_rtc_reload_power(void);
  33. extern void rtc_xosc_write(u16 val, bool reload);
  34. extern void rtc_set_writeif(bool enable);
  35. extern void rtc_bbpu_pwrdown(bool auto_boot);
  36. extern void hal_rtc_set_spare_register(rtc_spare_enum cmd, u16 val);
  37. extern u16 hal_rtc_get_spare_register(rtc_spare_enum cmd);
  38. extern void hal_rtc_get_tick_time(struct rtc_time *tm);
  39. extern void hal_rtc_set_tick_time(struct rtc_time *tm);
  40. extern void hal_rtc_get_alarm_time(struct rtc_time *tm);
  41. extern void hal_rtc_set_alarm_time(struct rtc_time *tm);
  42. extern void hal_rtc_save_pwron_alarm(void);
  43. extern void hal_rtc_get_pwron_alarm_time(struct rtc_time *tm);
  44. extern void hal_rtc_set_pwron_alarm_time(struct rtc_time *tm);
  45. extern void hal_rtc_read_rg(void);
  46. #ifndef USER_BUILD_KERNEL
  47. extern void rtc_lp_exception(void);
  48. #endif
  49. #endif