aboutsummaryrefslogtreecommitdiff
path: root/src/soc/mediatek/mt8173
diff options
context:
space:
mode:
Diffstat (limited to 'src/soc/mediatek/mt8173')
-rw-r--r--src/soc/mediatek/mt8173/include/soc/rtc.h26
-rw-r--r--src/soc/mediatek/mt8173/rtc.c5
2 files changed, 27 insertions, 4 deletions
diff --git a/src/soc/mediatek/mt8173/include/soc/rtc.h b/src/soc/mediatek/mt8173/include/soc/rtc.h
index d0d302366d..bb9425fe8e 100644
--- a/src/soc/mediatek/mt8173/include/soc/rtc.h
+++ b/src/soc/mediatek/mt8173/include/soc/rtc.h
@@ -3,6 +3,7 @@
#ifndef SOC_MEDIATEK_MT8173_RTC_H
#define SOC_MEDIATEK_MT8173_RTC_H
+#include <soc/pmic_wrap_common.h>
#include <soc/rtc_common.h>
#include <stdint.h>
#include "mt6391.h"
@@ -98,8 +99,29 @@ enum {
};
/* external API */
-void rtc_osc_init(void);
-int rtc_init(u8 recover);
+int rtc_init(int recover);
void rtc_boot(void);
+static inline s32 rtc_read(u16 addr, u16 *rdata)
+{
+ s32 ret;
+
+ ret = pwrap_read(addr, rdata);
+ if (ret < 0)
+ rtc_info("pwrap_read failed: ret=%d\n", ret);
+
+ return ret;
+}
+
+static inline s32 rtc_write(u16 addr, u16 wdata)
+{
+ s32 ret;
+
+ ret = pwrap_write(addr, wdata);
+ if (ret < 0)
+ rtc_info("pwrap_write failed: ret=%d\n", ret);
+
+ return ret;
+}
+
#endif /* SOC_MEDIATEK_MT8173_RTC_H */
diff --git a/src/soc/mediatek/mt8173/rtc.c b/src/soc/mediatek/mt8173/rtc.c
index d08de45325..94ec421f0d 100644
--- a/src/soc/mediatek/mt8173/rtc.c
+++ b/src/soc/mediatek/mt8173/rtc.c
@@ -1,8 +1,8 @@
/* SPDX-License-Identifier: GPL-2.0-only */
#include <delay.h>
-#include <soc/rtc_common.h>
#include <soc/rtc.h>
+#include <soc/rtc_common.h>
#include <soc/mt6391.h>
#include <soc/pmic_wrap.h>
#include <types.h>
@@ -59,7 +59,7 @@ static int rtc_lpd_init(void)
}
/* rtc init check */
-int rtc_init(u8 recover)
+int rtc_init(int recover)
{
int ret;
@@ -84,6 +84,7 @@ int rtc_init(u8 recover)
goto err;
}
+ /* In recovery mode, we need delay for register setting. */
if (recover)
mdelay(1000);