diff options
Diffstat (limited to 'include/mach/mtk_rtc.h')
| -rw-r--r-- | include/mach/mtk_rtc.h | 81 |
1 files changed, 81 insertions, 0 deletions
diff --git a/include/mach/mtk_rtc.h b/include/mach/mtk_rtc.h new file mode 100644 index 000000000..555b47265 --- /dev/null +++ b/include/mach/mtk_rtc.h @@ -0,0 +1,81 @@ +#ifndef MTK_RTC_H +#define MTK_RTC_H + +#include <linux/ioctl.h> +#include <linux/rtc.h> +#include <mach/mt_typedefs.h> + +typedef enum { + RTC_GPIO_USER_WIFI = 8, + RTC_GPIO_USER_GPS = 9, + RTC_GPIO_USER_BT = 10, + RTC_GPIO_USER_FM = 11, + RTC_GPIO_USER_PMIC = 12, +} rtc_gpio_user_t; + +#ifdef CONFIG_MTK_RTC + +/* + * NOTE: + * 1. RTC_GPIO always exports 32K enabled by some user even if the phone is powered off + */ + +extern unsigned long rtc_read_hw_time(void); +extern void rtc_gpio_enable_32k(rtc_gpio_user_t user); +extern void rtc_gpio_disable_32k(rtc_gpio_user_t user); +extern bool rtc_gpio_32k_status(void); + +/* for AUDIOPLL (deprecated) */ +extern void rtc_enable_abb_32k(void); +extern void rtc_disable_abb_32k(void); + +/* NOTE: used in Sleep driver to workaround Vrtc-Vore level shifter issue */ +extern void rtc_enable_writeif(void); +extern void rtc_disable_writeif(void); + +extern void rtc_mark_recovery(void); +#if defined(CONFIG_MTK_KERNEL_POWER_OFF_CHARGING) +extern void rtc_mark_kpoc(void); +#endif +extern void rtc_mark_fast(void); +extern u16 rtc_rdwr_uart_bits(u16 *val); + +extern void rtc_bbpu_power_down(void); + +extern void rtc_read_pwron_alarm(struct rtc_wkalrm *alm); + + +extern int get_rtc_spare_fg_value(void); +extern int set_rtc_spare_fg_value(int val); + +extern void rtc_irq_handler(void); + +extern bool crystal_exist_status(void); + +#else +#define rtc_read_hw_time() ({ 0; }) +#define rtc_gpio_enable_32k(user) do {} while (0) +#define rtc_gpio_disable_32k(user) do {} while (0) +#define rtc_gpio_32k_status() do {} while (0) +#define rtc_enable_abb_32k() do {} while (0) +#define rtc_disable_abb_32k() do {} while (0) +#define rtc_enable_writeif() do {} while (0) +#define rtc_disable_writeif() do {} while (0) +#define rtc_mark_recovery() do {} while (0) +#if defined(CONFIG_MTK_KERNEL_POWER_OFF_CHARGING) +#define rtc_mark_kpoc() do {} while (0) +#endif +#define rtc_mark_fast() do {} while (0) +#define rtc_rdwr_uart_bits(val) ({ 0; }) +#define rtc_bbpu_power_down() do {} while (0) +#define rtc_read_pwron_alarm(alm) do {} while (0) + +#define get_rtc_spare_fg_value() ({ 0; }) +#define set_rtc_spare_fg_value(val) ({ 0; }) + +#define rtc_irq_handler() do {} while (0) + +#define crystal_exist_status() do {} while (0) +#endif + +#endif |
