pm8921: Add support to disable rtc alarm
This patch adds an API to disable rtc alarm.
CRs-Fixed: 366311
Change-Id: Ibfb9df83cf806ee21de3dc7e8e0b67109ac932aa
diff --git a/dev/pmic/pm8921/include/dev/pm8921.h b/dev/pmic/pm8921/include/dev/pm8921.h
index 0426d42..715e474 100644
--- a/dev/pmic/pm8921/include/dev/pm8921.h
+++ b/dev/pmic/pm8921/include/dev/pm8921.h
@@ -155,4 +155,5 @@
unsigned int flash_ensel);
int pm8921_low_voltage_switch_enable(uint8_t lvs_id);
int pm8921_mpp_set_digital_output(uint8_t mpp_id);
+int pm8921_rtc_alarm_disable(void);
#endif
diff --git a/dev/pmic/pm8921/pm8921.c b/dev/pmic/pm8921/pm8921.c
index b52bea1..1acc021 100644
--- a/dev/pmic/pm8921/pm8921.c
+++ b/dev/pmic/pm8921/pm8921.c
@@ -518,3 +518,24 @@
return ret;
}
+
+int pm8921_rtc_alarm_disable(void)
+{
+ int rc;
+ uint8_t reg;
+
+ rc = dev->read(®, 1, PM8921_RTC_CTRL);
+ if (rc) {
+ dprintf(CRITICAL,"Failed to read RTC_CTRL reg = %d\n",rc);
+ return rc;
+ }
+ reg = (reg & ~PM8921_RTC_ALARM_ENABLE);
+
+ rc = dev->write(®, 1, PM8921_RTC_CTRL);
+ if (rc) {
+ dprintf(CRITICAL,"Failed to write RTC_CTRL reg = %d\n",rc);
+ return rc;
+ }
+
+ return rc;
+}
diff --git a/dev/pmic/pm8921/pm8921_hw.h b/dev/pmic/pm8921/pm8921_hw.h
index 02b01c6..bf43543 100644
--- a/dev/pmic/pm8921/pm8921_hw.h
+++ b/dev/pmic/pm8921/pm8921_hw.h
@@ -116,6 +116,9 @@
#define PM8921_LVS_CTRL_REG(id) (PM8921_LVS_REG_BASE + (2 * (id-1)))
#define PM8921_LVS_TEST_REG(id) (PM8921_LVS_CTRL_REG(id) + 1)
+#define PM8921_RTC_CTRL 0x11D
+#define PM8921_RTC_ALARM_ENABLE (1 << 1)
+
#define PM8921_LVS_100_CTRL_SW_EN (1 << 7)
#define PM8921_LVS_100_CTRL_SLEEP_B_IGNORE (1 << 4)
#define PM8921_LVS_100_TEST_VOUT_OK (1 << 6)