2 * Copyright (C) 2010 MediaTek, Inc.
4 * Author: Terry Chang <terry.chang@mediatek.com>
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.
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.
17 #ifndef _MTK_RTC_HAL_H_
18 #define _MTK_RTC_HAL_H_
20 #include <linux/kernel.h>
21 #include <linux/rtc.h>
23 #define RTC_GPIO_USER_MASK (((1U << 13) - 1) & 0xff00)
26 #ifdef CONFIG_MTK_PMIC_MT6397
27 #define RTC_BASE (0xe000)
29 #define RTC_BASE (0x8000)
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
);