msm8974: Implement fastboot reboot functionality
Use PMIC to reset the device using PS_HOLD warm reset
Change-Id: I860eef7a8510c898bba3c44c3f88f9226d6fb382
diff --git a/dev/pmic/pm8x41/pm8x41.c b/dev/pmic/pm8x41/pm8x41.c
index e16e684..f6804ec 100644
--- a/dev/pmic/pm8x41/pm8x41.c
+++ b/dev/pmic/pm8x41/pm8x41.c
@@ -199,3 +199,23 @@
return (rt_sts & BIT(RESIN_BARK_INT_BIT));
}
+
+void pm8x41_reset_configure(uint8_t reset_type)
+{
+ uint8_t val;
+
+ /* disable PS_HOLD_RESET */
+ REG_WRITE(PON_PS_HOLD_RESET_CTL, 0x0);
+
+ /* Delay needed for disable to kick in. */
+ udelay(300);
+
+ /* configure reset type */
+ REG_WRITE(PON_PS_HOLD_RESET_CTL, reset_type);
+
+ val = REG_READ(PON_PS_HOLD_RESET_CTL);
+
+ /* enable PS_HOLD_RESET */
+ val |= BIT(S2_RESET_EN_BIT);
+ REG_WRITE(PON_PS_HOLD_RESET_CTL, val);
+}