import PULS_20160108
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / arch / arm / mach-mt8127 / include / mach / mtk_rtc_hal.h
1 /*
2 * Copyright (C) 2010 MediaTek, Inc.
3 *
4 * Author: Terry Chang <terry.chang@mediatek.com>
5 *
6 * This software is licensed under the terms of the GNU General Public
7 * License version 2, as published by the Free Software Foundation, and
8 * may be copied, distributed, and modified under those terms.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 */
16
17 #ifndef _MTK_RTC_HAL_H_
18 #define _MTK_RTC_HAL_H_
19
20 #include <linux/kernel.h>
21 #include <linux/rtc.h>
22
23 #define RTC_GPIO_USER_MASK (((1U << 13) - 1) & 0xff00)
24
25 /* RTC registers */
26 #ifdef CONFIG_MTK_PMIC_MT6397
27 #define RTC_BASE (0xe000)
28 #else
29 #define RTC_BASE (0x8000)
30 #endif
31
32 extern u16 hal_rtc_get_register_status(const char * cmd);
33 extern void hal_rtc_set_register_status(const char * cmd, u16 val);
34 extern void hal_rtc_set_gpio_32k_status(u16 user, bool enable);
35 extern void hal_rtc_force_set_gpio_32k(bool enable);
36 extern void hal_rtc_set_writeif(bool enable);
37 extern void hal_rtc_mark_mode(const char *cmd);
38 extern u16 hal_rtc_rdwr_uart(u16 *val);
39 extern void hal_rtc_bbpu_pwdn(void);
40 extern void hal_rtc_get_pwron_alarm(struct rtc_time *tm, struct rtc_wkalrm *alm);
41 extern void hal_rtc_set_pwron_alarm(void);
42 extern bool hal_rtc_is_lp_irq(void);
43 extern void hal_rtc_reload_power(void);
44 extern void hal_rtc_get_tick_time(struct rtc_time *tm);
45 extern void hal_rtc_set_tick_time(struct rtc_time *tm);
46 extern bool hal_rtc_check_pwron_alarm_rg(struct rtc_time *nowtm, struct rtc_time *tm);
47 extern void hal_rtc_get_alarm_time(struct rtc_time *tm, struct rtc_wkalrm *alm);
48 extern void hal_rtc_set_alarm_time(struct rtc_time *tm);
49 extern void hal_rtc_clear_alarm(void);
50 extern void hal_rtc_set_lp_irq(void);
51 extern void hal_rtc_read_rg(void);
52 extern void hal_rtc_save_pwron_time(bool enable, struct rtc_time *tm, bool logo);
53
54 #endif