Revert "[bugfix] support rtc alarm"

This reverts commit adce4c766e0922a8063941620e63a721f6866d7f.

Reason for revert: <INSERT REASONING HERE>

Change-Id: I521b3704c5c3fb315c5e64f13f304ef5774b7f47
diff --git a/src/bsp/lk/platform/mt2735/drivers/pmic/pmic.c b/src/bsp/lk/platform/mt2735/drivers/pmic/pmic.c
index c0e48de..17280bd 100644
--- a/src/bsp/lk/platform/mt2735/drivers/pmic/pmic.c
+++ b/src/bsp/lk/platform/mt2735/drivers/pmic/pmic.c
@@ -412,7 +412,7 @@
 		pmic_read_interface(PMIC_PUP_PKEY_RELEASE_ADDR, &g_pwrkey_release,
 			PMIC_PUP_PKEY_RELEASE_MASK, PMIC_PUP_PKEY_RELEASE_SHIFT);
 	/*--UVLO off--*/
-		dprintf(ALWAYS, "[PMIC]TOP_RST_STATUS[0x%x]=0x%x\n",
+		dprintf(INFO, "[PMIC]TOP_RST_STATUS[0x%x]=0x%x\n",
 			MT6330_TOP_RST_STATUS, upmu_get_reg_value(MT6330_TOP_RST_STATUS));
 	/*special for RTC Alarm and SPAR*/
 		pon_sts = upmu_get_reg_value(MT6330_PONSTS);
diff --git a/src/bsp/lk/platform/mt2735/drivers/rtc/rtc.c b/src/bsp/lk/platform/mt2735/drivers/rtc/rtc.c
index aeb27f1..5e14d1a 100644
--- a/src/bsp/lk/platform/mt2735/drivers/rtc/rtc.c
+++ b/src/bsp/lk/platform/mt2735/drivers/rtc/rtc.c
@@ -1033,7 +1033,6 @@
                         Write_trigger();
                     }
 #endif
-	        RTC_LOG("Power on alarm\n");
                 return true;
             } else if (now_time < time) {   /* set power-on alarm */
                 RTC_Write(RTC_AL_YEA,  (RTC_Read(RTC_AL_YEA) & (~RTC_AL_YEA_MASK)) | ((yea - RTC_MIN_YEAR) & RTC_AL_YEA_MASK));
@@ -1047,7 +1046,6 @@
                 irqen = RTC_Read(RTC_IRQ_EN) | RTC_IRQ_EN_ONESHOT_AL;
                 RTC_Write(RTC_IRQ_EN, irqen);
                 Write_trigger();
-	        RTC_LOG("Not power on alarm\n");
             } else {
                 pdn1 = (pdn1 & ~RTC_PDN1_PWRON_TIME);
 #if defined (MTK_KERNEL_POWER_OFF_CHARGING)
@@ -1058,10 +1056,7 @@
                 Write_trigger();
                 RTC_LOG("Expired alarm\n");
             }
-        
-        } else {
-		RTC_LOG("Not power on alarm\n");
-	}
+        }
     }
 
     if ((pdn1 & RTC_PDN1_RECOVERY_MASK) == RTC_PDN1_FAC_RESET) {    /* factory data reset */
diff --git a/src/bsp/lk/platform/mt2735/drivers/wdt/mtk_wdt.c b/src/bsp/lk/platform/mt2735/drivers/wdt/mtk_wdt.c
index 9bec99c..a2477ef 100644
--- a/src/bsp/lk/platform/mt2735/drivers/wdt/mtk_wdt.c
+++ b/src/bsp/lk/platform/mt2735/drivers/wdt/mtk_wdt.c
@@ -72,50 +72,6 @@
 
 static uint32_t wdt_reset_status;
 static uint8_t wdt_inited = 0U;
-static unsigned int rgu_mode;
-
-enum {
-	MTK_WDT_NONRST2_BOOT_MASK       = 0xF,
-	MTK_WDT_NONRST2_BOOT_CHARGER    = 1,
-	MTK_WDT_NONRST2_BOOT_RECOVERY   = 2,
-	MTK_WDT_NONRST2_BOOT_BOOTLOADER = 3,
-	MTK_WDT_NONRST2_BOOT_DM_VERITY  = 4,
-	MTK_WDT_NONRST2_BOOT_KPOC       = 5,
-	MTK_WDT_NONRST2_BOOT_DDR_RSVD   = 6,
-	MTK_WDT_NONRST2_BOOT_META       = 7,
-	MTK_WDT_NONRST2_BOOT_RPMBPK     = 8,
-	MTK_WDT_NONRST2_BYPASS_PWR_KEY  = 1 << 13,
-	MTK_WDT_NONRST2_STAGE_OFS       = 29,
-	MTK_WDT_NONRST2_LAST_STAGE_OFS  = 26
-};
-
-static unsigned int mtk_wdt_get_status(void)
-{
-	static unsigned int wdt_sta = 0;
-	static unsigned int wdt_sta_handled = 0;
-	unsigned int reg;
- 
-	/*
-	 * Note:
-	 * Because WDT_STA register will be cleared after writing WDT_MODE,
-	 * we use a static variable to keep orinigal WDT_STA.
-	 *
-	 * After reset, static varialbe will always be clear to 0,
-	 * so only read WDT_STA when static variable is 0 is OK
-	 *
-	 * Use "wdt_sta_handled" to indicate if WDT_STATUS is preserved.
-	 * Do not use "wdt_sta" as indication because dummy handling will be
-	 * executed in case WDT_STATUS is 0 originally.
-	 */
-	if (wdt_sta_handled == 0) {
-
-		wdt_sta = wdt_readl(WDT_STA);
-
-		wdt_sta_handled = 1;
-	}
-
-	return wdt_sta;
-}
 
 
 static inline void mtk_wdt_clear_all_status(void)
@@ -190,19 +146,6 @@
 void mtk_wdt_init(void)
 {
 	unsigned int wdt_ctrl;
-	rgu_mode = wdt_readl(WDT_MODE);
-
-	dprintf(ALWAYS, "MODE:               0x%x\n", wdt_readl(WDT_MODE));
-	dprintf(ALWAYS, "STA:                0x%x\n", mtk_wdt_get_status());
-	dprintf(ALWAYS, "LENGTH:             0x%x\n", wdt_readl(WDT_LENGTH));
-	dprintf(ALWAYS, "INTERVAL:           0x%x\n", wdt_readl(WDT_INTERNAL));
-	dprintf(ALWAYS, "SWSYSRST:           0x%x\n", wdt_readl(WDT_SWSYSRST));
-	dprintf(ALWAYS, "LATCH_CTL:          0x%x\n", wdt_readl(WDT_LATCH_CTL));
-	dprintf(ALWAYS, "NONRST_REG:         0x%x\n", wdt_readl(WDT_NONRST_REG));
-	dprintf(ALWAYS, "NONRST_REG2:        0x%x\n", wdt_readl(WDT_NONRST_REG2));
-
-	if (wdt_readl(WDT_NONRST_REG2) & MTK_WDT_NONRST2_BYPASS_PWR_KEY)
-		rgu_mode |= MTK_WDT_NONRST2_BYPASS_PWR_KEY;
 	mtk_wdt_set_default_mode(WDT_DISABLE, WDT_TIMEOUT_LK_SEC);
 
 	if (wdt_inited == 0U) {
@@ -374,44 +317,6 @@
 	}
 	return WDT_NOT_WDT_REBOOT;
 }
-#else
-int mtk_wdt_boot_check(void)
-{
-	unsigned int wdt_sta = wdt_reset_status;
-	int ret = WDT_NOT_WDT_REBOOT;
-
-	/*
-	 * For DA download hope to timeout reboot, and boot to u-boot/kernel configurable reason,
-	 * we set both timeout reboot and software reboot can check whether bypass power key.
-	 */
-	if (wdt_sta & (MTK_WDT_STATUS_HWWDT_RST | MTK_WDT_STATUS_SWWDT_RST |
-		MTK_WDT_STATUS_MD_THERMAL_RST | MTK_WDT_STATUS_SPMWDT_RST |
-		MTK_WDT_STATUS_THERMAL_DIRECT_RST | MTK_WDT_STATUS_SECURITY_RST |
-		MTK_WDT_STATUS_DEBUGWDT_RST | MTK_WDT_STATUS_EINT_RST |
-		MTK_WDT_STATUS_SYSRST_RST | MTK_WDT_STATUS_DVFSP_RST | MTK_WDT_STATUS_MCUPM_RST |
-		MTK_WDT_STATUS_SSPM_RST)) {
-		if (rgu_mode & MTK_WDT_NONRST2_BYPASS_PWR_KEY) {
-			/* HW or SW reboot, and auto restart is set, means bypass power key */
-			ret = WDT_BY_PASS_PWK_REBOOT;
-
-		} else {
-
-			/* HW or SW reboot, but auto restart is not set, means NOT bypass power key */
-			ret = WDT_NORMAL_REBOOT;
-		}
-	} else {
-		/*
-		 * For PMIC full reset, return "bypass pwr key reboot" to help AEE works.
-		 * I.e., Prevent entering charger mode.
-		 */
-		if (mtk_wdt_is_pmic_full_reset()) {
-			dprintf(INFO, "PMIC full rst: true\n");
-			ret = WDT_BY_PASS_PWK_REBOOT;
-		}
-	}
-
-	return ret;
-}
 #endif
 
 #else	/* !ENABLE_WDT_MODULE */
diff --git a/src/bsp/lk/platform/mt2735/include/platform/mtk_wdt.h b/src/bsp/lk/platform/mt2735/include/platform/mtk_wdt.h
index c4b4b3d..f4b91b8 100644
--- a/src/bsp/lk/platform/mt2735/include/platform/mtk_wdt.h
+++ b/src/bsp/lk/platform/mt2735/include/platform/mtk_wdt.h
@@ -60,28 +60,21 @@
  */
 void mtk_arch_reset(char bypass_pwrkey);
 
+#if LK_AS_BL33
+
 #define WDT_NORMAL_REBOOT               (0x100)
 #define WDT_BY_PASS_PWK_REBOOT          (0x200)
 #define WDT_NOT_WDT_REBOOT              (0x400)
 
 /*WDT_STATUS*/
 #define MTK_WDT_STATUS_HWWDT_RST_WITH_IRQ    (0xA0000000)
+#define MTK_WDT_STATUS_HWWDT_RST    (0x80000000)
+#define MTK_WDT_STATUS_SWWDT_RST    (0x40000000)
+#define MTK_WDT_STATUS_IRQWDT_RST   (0x20000000)
+#define MTK_WDT_STATUS_SECURITY_RST (1<<28)
+#define MTK_WDT_STATUS_DEBUGWDT_RST (0x00080000)
+#define MTK_WDT_STATUS_SPMWDT_RST   (0x0001)
 #define MTK_WDT_STATUS_THERMAL_CTL_RST   (1<<18)
-#define MTK_WDT_STATUS_MD_THERMAL_RST       (1)
-#define MTK_WDT_STATUS_SPMWDT_RST           (1<<1)
-#define MTK_WDT_STATUS_EINT_RST             (1<<2)
-#define MTK_WDT_STATUS_SYSRST_RST           (1<<3)
-#define MTK_WDT_STATUS_DVFSP_RST            (1<<4)
-#define MTK_WDT_STATUS_MCUPM_RST            (1<<5)
-#define MTK_WDT_STATUS_PCIE_PERST_RST       (1<<7)
-#define MTK_WDT_STATUS_SSPM_RST             (1<<16)
-#define MTK_WDT_STATUS_MDDBG_RST            (1<<17)
-#define MTK_WDT_STATUS_THERMAL_DIRECT_RST   (1<<18)
-#define MTK_WDT_STATUS_DEBUGWDT_RST         (1<<19)
-#define MTK_WDT_STATUS_SECURITY_RST         (1<<28)
-#define MTK_WDT_STATUS_IRQWDT_RST           (1<<29)
-#define MTK_WDT_STATUS_SWWDT_RST            (1<<30)
-#define MTK_WDT_STATUS_HWWDT_RST            (1<<31)
 
 /* Reboot reason */
 #define RE_BOOT_REASON_UNKNOW           (0x00)
@@ -103,3 +96,4 @@
 
 int mtk_wdt_boot_check(void);
 
+#endif
diff --git a/src/bsp/lk/platform/mt2735/include/platform/platform_blx.h b/src/bsp/lk/platform/mt2735/include/platform/platform_blx.h
index 929526f..ab0818d 100644
--- a/src/bsp/lk/platform/mt2735/include/platform/platform_blx.h
+++ b/src/bsp/lk/platform/mt2735/include/platform/platform_blx.h
@@ -36,9 +36,6 @@
     BR_KERNEL_PANIC,
     BR_WDT_SW,
     BR_WST_HW,
-    BR_POWER_EXC = 30,
-    BR_LONG_POWKEY,
-    BR_POWER_LOSS
 } boot_reason_t;
 
 void platform_memory_init(void);
diff --git a/src/bsp/lk/platform/mt2735/platform_bl2.c b/src/bsp/lk/platform/mt2735/platform_bl2.c
index cc6f475..c18da3f 100644
--- a/src/bsp/lk/platform/mt2735/platform_bl2.c
+++ b/src/bsp/lk/platform/mt2735/platform_bl2.c
@@ -50,7 +50,7 @@
 #include <platform/rtc.h>
 #include <boot_args.h>
 #include <string.h>
-#include <platform/platform_blx.h>
+
 static uint32_t g_boot_reason = 0;
 static uint32_t g_rgu_mode = 0;
 
@@ -117,21 +117,6 @@
     .priority = 0,
 };
 #endif /* WITH_KERNEL_VM */
-extern U32 upmu_is_chr_det(void);
-
-int usb_accessory_in(void)
-{
-#if !CFG_FPGA_PLATFORM
-    int exist = 0;
-
-    if (upmu_is_chr_det() == KAL_TRUE) {
-        exist = 1;
-    }
-    return exist;
-#else
-    return 1;
-#endif
-}
 
 static inline size_t query_plat_dram_sz(void)
 {
@@ -252,7 +237,6 @@
 
 void platform_early_init_blx(void)
 {
-    boot_reason_t reason;
     mtk_timer_init();
 
 #if !CFG_FPGA_PLATFORM
@@ -290,10 +274,6 @@
     clk_buf_init();
 
     mt_dcm_init();
-
-    reason = platform_boot_status();
-    if (reason == BR_RTC || reason == BR_POWER_KEY || reason == BR_USB || reason == BR_WDT || reason == BR_WDT_BY_PASS_PWK || reason == BR_2SEC_REBOOT)
-	rtc_bbpu_power_on();
 #endif
 
     bgr_init();
@@ -301,65 +281,6 @@
     dprintf(CRITICAL, "BL2 Build Time: %s %s\n", __DATE__, __TIME__);
 }
 
-int platform_wdt_boot_check(void)
-{
-    return mtk_wdt_boot_check();
-}
-
-boot_reason_t platform_boot_status(void)
-{
-	u32 pmic_reboot = get_pmic_boot_status();
-
-	if (rtc_boot_check()) {
-		dprintf(CRITICAL, "%s RTC boot!\n");
-		return BR_RTC;
-	}
-
-	if (pmic_reboot == 1) {
-		dprintf(CRITICAL, "pmic: power exception(OC/PG)!\n");
-		return BR_POWER_EXC;
-	} else if (pmic_reboot == 2) {
-		dprintf(CRITICAL, "pmic: long power key press reboot!\n");
-		return BR_LONG_POWKEY;
-	} else if (pmic_reboot == 3) {
-		if(rtc_2sec_reboot_check()) {
-			dprintf(CRITICAL, "pmic: 2sec reboot!\n");
-			return BR_2SEC_REBOOT;
-		} else {
-			dprintf(CRITICAL, "pmic: power miss!\n");
-			return BR_POWER_LOSS;
-		}
-	}
-
-    if (platform_wdt_boot_check() == WDT_NORMAL_REBOOT) {
-        dprintf(CRITICAL, "SW reset without bypass power key flag\n");
-        dprintf(CRITICAL, "WDT normal boot!\n");
-        return BR_WDT;
-    } else if(platform_wdt_boot_check() == WDT_BY_PASS_PWK_REBOOT) {
-        dprintf(CRITICAL, "SW reset with bypass power key flag\n");
-        dprintf(CRITICAL, "WDT reboot bypass power key!\n");
-        return BR_WDT_BY_PASS_PWK;
-    }
-
-    if (usb_accessory_in()) {
-        dprintf(CRITICAL, "%s USB/charger boot!\n");
-        return BR_USB;
-    }
-
-#if !CFG_FPGA_PLATFORM
-	/* check power key */
-	if ((pmic_detect_powerkey() && !is_pwrkey_short_press())
-		|| is_pmic_long_press_reset()) {
-		dprintf(CRITICAL, "%s Power key boot!\n");
-		return BR_POWER_KEY;
-	}
-#endif
-
-    pl_power_off();
-
-    return BR_UNKNOWN;
-}
-
 void platform_init_blx()
 {
 }
diff --git a/src/kernel/linux/v4.19/drivers/rtc/interface.c b/src/kernel/linux/v4.19/drivers/rtc/interface.c
index 089ff8c..ce051f9 100644
--- a/src/kernel/linux/v4.19/drivers/rtc/interface.c
+++ b/src/kernel/linux/v4.19/drivers/rtc/interface.c
@@ -482,7 +482,6 @@
 
 	rtc->aie_timer.node.expires = rtc_tm_to_ktime(alarm->time);
 	rtc->aie_timer.period = 0;
-	rtc->aie_timer.enabled = alarm->enabled;
 	if (alarm->enabled)
 		err = rtc_timer_enqueue(rtc, &rtc->aie_timer);
 
@@ -822,8 +821,7 @@
 	struct rtc_time tm;
 	ktime_t now;
 
-	if(timer->enabled == 0)
-		timer->enabled = 1;
+	timer->enabled = 1;
 	__rtc_read_time(rtc, &tm);
 	now = rtc_tm_to_ktime(tm);
 
@@ -840,7 +838,7 @@
 		struct rtc_wkalrm alarm;
 		int err;
 		alarm.time = rtc_ktime_to_tm(timer->node.expires);
-		alarm.enabled = timer->enabled;
+		alarm.enabled = 1;
 		err = __rtc_set_alarm(rtc, &alarm);
 		if (err == -ETIME) {
 			pm_stay_awake(rtc->dev.parent);
diff --git a/src/kernel/linux/v4.19/drivers/rtc/rtc-mt6330.c b/src/kernel/linux/v4.19/drivers/rtc/rtc-mt6330.c
index c7bf779..3dc075c 100644
--- a/src/kernel/linux/v4.19/drivers/rtc/rtc-mt6330.c
+++ b/src/kernel/linux/v4.19/drivers/rtc/rtc-mt6330.c
@@ -78,13 +78,9 @@
 #define RTC_AL_DOW_MASK		0x0007
 #define RTC_AL_MTH_MASK		0x000f
 #define RTC_AL_YEA_MASK		0x007f
-#define RTC_PDN1               0x002c
-#define RTC_PDN1_PWRON_TIME    BIT(7)
 
 #define RTC_PDN2		0x002e
 #define RTC_PDN2_PWRON_ALARM	BIT(4)
-#define RTC_SPAR0              0x0030
-#define RTC_SPAR1              0x0032
 
 #define RTC_SPAR0_L			0x0030
 #define RTC_INT_CNT_L			0x0040
@@ -94,32 +90,7 @@
 #define RTC_NUM_YEARS		128
 #define RTC_MIN_YEAR_OFFSET	(RTC_MIN_YEAR - RTC_BASE_YEAR)
 
-#define RTC_PWRON_YEA          RTC_PDN2
-#define RTC_PWRON_YEA_MASK     0x7f00
-#define RTC_PWRON_YEA_SHIFT    8
-
-#define RTC_PWRON_MTH          RTC_PDN2
-#define RTC_PWRON_MTH_MASK     0x000f
-#define RTC_PWRON_MTH_SHIFT    0
-
-#define RTC_PWRON_SEC          RTC_SPAR0
-#define RTC_PWRON_SEC_MASK     0x003f
-#define RTC_PWRON_SEC_SHIFT    0
-
-#define RTC_PWRON_MIN          RTC_SPAR1
-#define RTC_PWRON_MIN_MASK     0x003f
-#define RTC_PWRON_MIN_SHIFT    0
-
-#define RTC_PWRON_HOU          RTC_SPAR1
-#define RTC_PWRON_HOU_MASK     0x07c0
-#define RTC_PWRON_HOU_SHIFT    6
-
-#define RTC_PWRON_DOM          RTC_SPAR1
-#define RTC_PWRON_DOM_MASK     0xf800
-#define RTC_PWRON_DOM_SHIFT    11
-
 #define SPARE_REG_WIDTH		1
-#define RTC_POFF_ALM_SET	_IOW('p', 0x15, struct rtc_time) /* Set alarm time  */
 
 enum mtk_rtc_spare_enum {
 	SPARE_AL_HOU,
@@ -128,12 +99,6 @@
 	SPARE_RG_MAX,
 };
 
-enum rtc_reg_set {
-	RTC_REG,
-	RTC_MASK,
-	RTC_SHIFT
-};
-
 enum rtc_eosc_cali_td {
 	EOSC_CALI_TD_01_SEC = 0x3,
 	EOSC_CALI_TD_02_SEC,
@@ -176,16 +141,6 @@
 
 static int mtk_rtc_write_trigger(struct mt6330_rtc *rtc);
 
-static u16 rtc_pwron_reg[RTC_OFFSET_COUNT][3] = {
-	{RTC_PWRON_SEC, RTC_PWRON_SEC_MASK, RTC_PWRON_SEC_SHIFT},
-	{RTC_PWRON_MIN, RTC_PWRON_MIN_MASK, RTC_PWRON_MIN_SHIFT},
-	{RTC_PWRON_HOU, RTC_PWRON_HOU_MASK, RTC_PWRON_HOU_SHIFT},
-	{RTC_PWRON_DOM, RTC_PWRON_DOM_MASK, RTC_PWRON_DOM_SHIFT},
-	{0, 0, 0},
-	{RTC_PWRON_MTH, RTC_PWRON_MTH_MASK, RTC_PWRON_MTH_SHIFT},
-	{RTC_PWRON_YEA, RTC_PWRON_YEA_MASK, RTC_PWRON_YEA_SHIFT},
-};
-
 static const struct reg_field mt6330_cali_reg_fields[CALI_FILED_MAX] = {
 	[RTC_EOSC32_CK_PDN]	= REG_FIELD(MT6330_SCK_TOP_CKPDN_CON0_L, 2, 2),
 	[EOSC_CALI_TD]		= REG_FIELD(MT6330_RTC_AL_DOW_L, 8, 10),
@@ -303,7 +258,6 @@
 	return ret;
 }
 
-
 static int rtc_write(struct mt6330_rtc *rtc, unsigned int reg,
 			       unsigned int val)
 {
@@ -488,81 +442,6 @@
 	return ret;
 }
 
-static void mtk_rtc_set_pwron_time(struct mt6330_rtc *rtc, struct rtc_time *tm)
-{
-	u32 data[RTC_OFFSET_COUNT];
-	int ret, i;
-
-	data[RTC_OFFSET_SEC] =
-		((tm->tm_sec << RTC_PWRON_SEC_SHIFT) & RTC_PWRON_SEC_MASK);
-	data[RTC_OFFSET_MIN] =
-		((tm->tm_min << RTC_PWRON_MIN_SHIFT) & RTC_PWRON_MIN_MASK);
-	data[RTC_OFFSET_HOUR] =
-		((tm->tm_hour << RTC_PWRON_HOU_SHIFT) & RTC_PWRON_HOU_MASK);
-	data[RTC_OFFSET_DOM] =
-		((tm->tm_mday << RTC_PWRON_DOM_SHIFT) & RTC_PWRON_DOM_MASK);
-	data[RTC_OFFSET_MTH] =
-		((tm->tm_mon << RTC_PWRON_MTH_SHIFT) & RTC_PWRON_MTH_MASK);
-	data[RTC_OFFSET_YEAR] =
-		((tm->tm_year << RTC_PWRON_YEA_SHIFT) & RTC_PWRON_YEA_MASK);
-
-	printk_deferred(" %s set PWRON_SEC %x\n", __func__, data[RTC_OFFSET_SEC]);
-
-	for (i = RTC_OFFSET_SEC; i < RTC_OFFSET_COUNT; i++) {
-		if (i == RTC_OFFSET_DOW)
-			continue;
-		ret = rtc_update_bits(rtc,
-					 rtc->addr_base + rtc_pwron_reg[i][RTC_REG],
-					 rtc_pwron_reg[i][RTC_MASK],
-					 data[i]);
-
-		if (ret < 0)
-			goto exit;
-		mtk_rtc_write_trigger(rtc);
-	}
-
-	if (ret < 0)
-		goto exit;
-
-	return;
-
-exit:
-	dev_err(rtc->dev, "%s error\n", __func__);
-	printk_deferred("%s error\n", __func__);
-
-}
-
-void mtk_rtc_save_pwron_time(struct mt6330_rtc *rtc,
-	bool enable, struct rtc_time *tm)
-{
-	u32 pdn1 = 0;
-	int ret;
-
-	/* set power on time */
-	mtk_rtc_set_pwron_time(rtc, tm);
-
-	/* update power on alarm related flags */
-	if (enable)
-		pdn1 = RTC_PDN1_PWRON_TIME;
-
-	ret = rtc_update_bits(rtc,
-				 rtc->addr_base + RTC_PDN1,
-				 RTC_PDN1_PWRON_TIME,
-				 pdn1);
-
-	mtk_rtc_write_trigger(rtc);
-
-	if (ret < 0)
-		goto exit;
-
-//	mtk_rtc_write_trigger(rtc);
-
-	return;
-
-exit:
-	dev_err(rtc->dev, "%s error\n", __func__);
-}
-
 static int mtk_rtc_read_time(struct device *dev, struct rtc_time *tm)
 {
 	time64_t time;
@@ -678,16 +557,6 @@
 	struct mt6330_rtc *rtc = dev_get_drvdata(dev);
 	int ret;
 	u16 data[RTC_OFFSET_COUNT] = { 0 };
-	ktime_t target;
-
-	printk_deferred(" %s set %d\n", __func__, alm->enabled);
-
-	if (alm->enabled == 1) {
-		/* Add one more second to postpone wake time. */
-		target = rtc_tm_to_ktime(*tm);
-		target = ktime_add_ns(target, NSEC_PER_SEC);
-		*tm = rtc_ktime_to_tm(target);
-	}
 
 	if (tm->tm_year > 195) {
 		dev_err(rtc->dev, "%s: invalid year %04d > 2095\n",
@@ -699,27 +568,6 @@
 	tm->tm_mon++;
 
 	mutex_lock(&rtc->lock);
-	switch (alm->enabled) {
-	case 3:
-		/* enable power-on alarm with logo */
-		mtk_rtc_save_pwron_time(rtc, true, tm);
-		break;
-	case 4:
-		/* disable power-on alarm */
-		mtk_rtc_save_pwron_time(rtc, false, tm);
-		break;
-	default:
-		break;
-	}
-
-	ret = rtc_update_bits(rtc,
-				 rtc->addr_base + RTC_PDN2,
-				 RTC_PDN2_PWRON_ALARM,
-				 0);
-
-	if (ret < 0)
-		goto exit;
-	mtk_rtc_write_trigger(rtc);
 	ret = rtc_bulk_read(rtc, rtc->addr_base + RTC_AL_SEC,
 			       data, RTC_OFFSET_COUNT * 2);
 	if (ret < 0)
@@ -737,7 +585,6 @@
 				(tm->tm_mon & RTC_AL_MTH_MASK));
 	data[RTC_OFFSET_YEAR] = ((data[RTC_OFFSET_YEAR] & ~(RTC_AL_YEA_MASK)) |
 				(tm->tm_year & RTC_AL_YEA_MASK));
-	printk_deferred(" %s set AL_SEC %x\n", __func__, data[RTC_OFFSET_SEC]);
 
 	if (alm->enabled) {
 		ret = rtc_bulk_read(rtc, rtc->addr_base + RTC_AL_SEC,
@@ -795,54 +642,7 @@
 	return ret;
 }
 
-int alarm_set_power_on(struct device *dev, struct rtc_wkalrm *alm)
-{
-	int err = 0;
-	struct rtc_time tm;
-	time64_t now, scheduled;
-
-	err = rtc_valid_tm(&alm->time);
-	if (err != 0)
-		return err;
-	scheduled = rtc_tm_to_time64(&alm->time);
-
-	err = mtk_rtc_read_time(dev, &tm);
-	if (err != 0)
-		return err;
-	now = rtc_tm_to_time64(&tm);
-
-	if (scheduled <= now)
-		alm->enabled = 4;
-	else
-		alm->enabled = 3;
-
-	mtk_rtc_set_alarm(dev, alm);
-
-	return err;
-}
-
-static int mtk_rtc_ioctl(struct device *dev, unsigned int cmd, unsigned long arg)
-{
-	void __user *uarg = (void __user *) arg;
-	int err = 0;
-	struct rtc_wkalrm alm;
-
-	switch (cmd) {
-	case RTC_POFF_ALM_SET:
-		if (copy_from_user(&alm.time, uarg, sizeof(alm.time)))
-			return -EFAULT;
-		err = alarm_set_power_on(dev, &alm);
-		break;
-	default:
-		err = -EINVAL;
-		break;
-	}
-
-	return err;
-}
-
 static const struct rtc_class_ops mtk_rtc_ops = {
-	.ioctl      = mtk_rtc_ioctl,
 	.read_time  = mtk_rtc_read_time,
 	.set_time   = mtk_rtc_set_time,
 	.read_alarm = mtk_rtc_read_alarm,
diff --git a/src/kernel/linux/v4.19/drivers/rtc/rtc-sysfs.c b/src/kernel/linux/v4.19/drivers/rtc/rtc-sysfs.c
index 3825e91..9746c32 100644
--- a/src/kernel/linux/v4.19/drivers/rtc/rtc-sysfs.c
+++ b/src/kernel/linux/v4.19/drivers/rtc/rtc-sysfs.c
@@ -164,7 +164,7 @@
 	struct rtc_device *rtc = to_rtc_device(dev);
 	const char *buf_ptr;
 	int adjust = 0;
-	printk_deferred("%s \n", __func__);
+
 	/* Only request alarms that trigger in the future.  Disable them
 	 * by writing another time, e.g. 0 meaning Jan 1 1970 UTC.
 	 */
@@ -221,101 +221,6 @@
 static DEVICE_ATTR_RW(wakealarm);
 
 static ssize_t
-poweralarm_show(struct device *dev, struct device_attribute *attr, char *buf)
-{
-	ssize_t retval;
-	time64_t alarm;
-	struct rtc_wkalrm alm;
-
-	/* Don't show disabled alarms.  For uniformity, RTC alarms are
-	 * conceptually one-shot, even though some common RTCs (on PCs)
-	 * don't actually work that way.
-	 *
-	 * NOTE: RTC implementations where the alarm doesn't match an
-	 * exact YYYY-MM-DD HH:MM[:SS] date *must* disable their RTC
-	 * alarms after they trigger, to ensure one-shot semantics.
-	 */
-	retval = rtc_read_alarm(to_rtc_device(dev), &alm);
-	if (retval == 0 && alm.enabled) {
-		alarm = rtc_tm_to_time64(&alm.time);
-		retval = sprintf(buf, "%lld\n", alarm);
-	}
-
-	return retval;
-}
-
-
-static ssize_t
-poweralarm_store(struct device *dev, struct device_attribute *attr,
-		const char *buf, size_t n)
-{
-	ssize_t retval;
-	time64_t now, alarm;
-	time64_t push = 0;
-	struct rtc_wkalrm alm;
-	struct rtc_device *rtc = to_rtc_device(dev);
-	const char *buf_ptr;
-	int adjust = 0;
-
-	printk_deferred("%s \n", __func__);
-
-	/* Only request alarms that trigger in the future.  Disable them
-	 * by writing another time, e.g. 0 meaning Jan 1 1970 UTC.
-	 */
-	retval = rtc_read_time(rtc, &alm.time);
-	if (retval < 0)
-		return retval;
-	now = rtc_tm_to_time64(&alm.time);
-
-	buf_ptr = buf;
-	if (*buf_ptr == '+') {
-		buf_ptr++;
-		if (*buf_ptr == '=') {
-			buf_ptr++;
-			push = 1;
-		} else
-			adjust = 1;
-	}
-	retval = kstrtos64(buf_ptr, 0, &alarm);
-	if (retval)
-		return retval;
-	if (adjust) {
-		alarm += now;
-	}
-	if (alarm > now || push) {
-		/* Avoid accidentally clobbering active alarms; we can't
-		 * entirely prevent that here, without even the minimal
-		 * locking from the /dev/rtcN api.
-		 */
-		retval = rtc_read_alarm(rtc, &alm);
-		if (retval < 0)
-			return retval;
-		if (alm.enabled) {
-			
-			if (push) {
-				push = rtc_tm_to_time64(&alm.time);
-				alarm += push;
-			} else
-				return -EBUSY;
-		} else if (push)
-			return -EINVAL;
-		alm.enabled = 3;
-	} else {
-		alm.enabled = 4;
-
-		/* Provide a valid future alarm time.  Linux isn't EFI,
-		 * this time won't be ignored when disabling the alarm.
-		 */
-		alarm = now + 300;
-	}
-	rtc_time64_to_tm(alarm, &alm.time);
-
-	retval = rtc_set_alarm(rtc, &alm);
-	return (retval < 0) ? retval : n;
-}
-static DEVICE_ATTR_RW(poweralarm);
-
-static ssize_t
 offset_show(struct device *dev, struct device_attribute *attr, char *buf)
 {
 	ssize_t retval;
@@ -359,7 +264,6 @@
 	&dev_attr_max_user_freq.attr,
 	&dev_attr_hctosys.attr,
 	&dev_attr_wakealarm.attr,
-	&dev_attr_poweralarm.attr,
 	&dev_attr_offset.attr,
 	&dev_attr_range.attr,
 	NULL,