diff --git a/dev/pmic/pm8x41/include/pm8x41.h b/dev/pmic/pm8x41/include/pm8x41.h
index 3f0a83d..b908b14 100644
--- a/dev/pmic/pm8x41/include/pm8x41.h
+++ b/dev/pmic/pm8x41/include/pm8x41.h
@@ -85,6 +85,7 @@
 /*Target power off reasons*/
 #define KPDPWR_AND_RESIN        32
 #define STAGE3                  128
+#define PM660_STAGE3		32
 
 struct pm8x41_gpio {
 	int direction;
@@ -234,6 +235,8 @@
 uint8_t pm660_get_pon_reason();
 uint8_t pm8950_get_pon_reason();
 uint8_t pmi632_get_pon_reason();
+uint8_t pm660_get_pon_poff_reason1();
+uint8_t pm660_get_pon_poff_reason2();
 uint8_t pm8x41_get_pon_poff_reason1();
 uint8_t pm8x41_get_pon_poff_reason2();
 uint32_t pm8x41_get_pwrkey_is_pressed();
diff --git a/dev/pmic/pm8x41/include/pm8x41_hw.h b/dev/pmic/pm8x41/include/pm8x41_hw.h
index d719243..14f693b 100644
--- a/dev/pmic/pm8x41/include/pm8x41_hw.h
+++ b/dev/pmic/pm8x41/include/pm8x41_hw.h
@@ -71,6 +71,8 @@
 #define PON_PON_REASON1                       0x808
 #define PM660_PON_REASON1                     0x8C0
 #define PM660_PON_WARMBOOT_STATUS1            0x8C2
+#define PM660_PON_POFF_REASON1                0x8C5
+#define PM660_PON_POFF_REASON2                0x8C7
 #define PON_WARMBOOT_STATUS1                  0x80A
 #define PON_WARMBOOT_STATUS2                  0x80B
 #define PON_POFF_REASON1                      0x80C
diff --git a/dev/pmic/pm8x41/pm8x41.c b/dev/pmic/pm8x41/pm8x41.c
index 6575f95..fb6e180 100644
--- a/dev/pmic/pm8x41/pm8x41.c
+++ b/dev/pmic/pm8x41/pm8x41.c
@@ -671,6 +671,16 @@
 	return pon_reason;
 }
 
+uint8_t pm660_get_pon_poff_reason1()
+{
+	return REG_READ(PM660_PON_POFF_REASON1);
+}
+
+uint8_t pm660_get_pon_poff_reason2()
+{
+	return REG_READ(PM660_PON_POFF_REASON2);
+}
+
 uint8_t pm8x41_get_pon_poff_reason1()
 {
 	return REG_READ(PON_POFF_REASON1);
diff --git a/dev/qpnp_haptic/qpnp_haptic.c b/dev/qpnp_haptic/qpnp_haptic.c
index ec91d2a..d360580 100644
--- a/dev/qpnp_haptic/qpnp_haptic.c
+++ b/dev/qpnp_haptic/qpnp_haptic.c
@@ -31,23 +31,24 @@
 #include <pm_vib.h>
 #include <target.h>
 #include <vibrator.h>
+#include <smem.h>
 
-#define HAPTIC_BASE (PMI_SECOND_SLAVE_ADDR_BASE+ 0xC000)
-#define QPNP_HAP_EN_CTL_REG (HAPTIC_BASE + 0x46)
-#define QPNP_HAP_EN_CTL2_REG (HAPTIC_BASE + 0x48)
-#define QPNP_HAP_ACT_TYPE_REG (HAPTIC_BASE + 0x4C)
-#define QPNP_HAP_WAV_SHAPE_REG (HAPTIC_BASE + 0x4D)
-#define QPNP_HAP_PLAY_MODE_REG (HAPTIC_BASE + 0x4E)
-#define QPNP_HAP_LRA_AUTO_RES_REG (HAPTIC_BASE + 0x4F)
-#define QPNP_HAP_VMAX_REG (HAPTIC_BASE + 0x51)
-#define QPNP_HAP_ILIM_REG (HAPTIC_BASE + 0x52)
-#define QPNP_HAP_SC_DEB_REG (HAPTIC_BASE + 0x53)
-#define QPNP_HAP_RATE_CFG1_REG (HAPTIC_BASE + 0x54)
-#define QPNP_HAP_RATE_CFG2_REG (HAPTIC_BASE + 0x55)
-#define QPNP_HAP_INT_PWM_REG (HAPTIC_BASE + 0x56)
-#define QPNP_HAP_PWM_CAP_REG (HAPTIC_BASE + 0x58)
-#define QPNP_HAP_BRAKE_REG (HAPTIC_BASE + 0x5C)
-#define QPNP_HAP_PLAY_REG (HAPTIC_BASE + 0x70)
+#define HAPTIC_BASE(s_id) (s_id ? (PMI_SECOND_SLAVE_ADDR_BASE + 0xC000):((PMI_SECOND_SLAVE_OFFSET << 16) + 0xC000))
+#define QPNP_HAP_EN_CTL_REG(s_id) (HAPTIC_BASE(s_id) + 0x46)
+#define QPNP_HAP_EN_CTL2_REG(s_id) (HAPTIC_BASE(s_id) + 0x48)
+#define QPNP_HAP_ACT_TYPE_REG(s_id) (HAPTIC_BASE(s_id) + 0x4C)
+#define QPNP_HAP_WAV_SHAPE_REG(s_id) (HAPTIC_BASE(s_id) + 0x4D)
+#define QPNP_HAP_PLAY_MODE_REG(s_id) (HAPTIC_BASE(s_id) + 0x4E)
+#define QPNP_HAP_LRA_AUTO_RES_REG(s_id) (HAPTIC_BASE(s_id) + 0x4F)
+#define QPNP_HAP_VMAX_REG(s_id) (HAPTIC_BASE(s_id) + 0x51)
+#define QPNP_HAP_ILIM_REG(s_id) (HAPTIC_BASE(s_id) + 0x52)
+#define QPNP_HAP_SC_DEB_REG(s_id) (HAPTIC_BASE(s_id) + 0x53)
+#define QPNP_HAP_RATE_CFG1_REG(s_id) (HAPTIC_BASE(s_id) + 0x54)
+#define QPNP_HAP_RATE_CFG2_REG(s_id) (HAPTIC_BASE(s_id) + 0x55)
+#define QPNP_HAP_INT_PWM_REG(s_id) (HAPTIC_BASE(s_id) + 0x56)
+#define QPNP_HAP_PWM_CAP_REG(s_id) (HAPTIC_BASE(s_id) + 0x58)
+#define QPNP_HAP_BRAKE_REG(s_id) (HAPTIC_BASE(s_id) + 0x5C)
+#define QPNP_HAP_PLAY_REG(s_id) (HAPTIC_BASE(s_id) + 0x70)
 
 #define QPNP_HAP_ACT_TYPE_MASK 0x01
 #define QPNP_HAP_PLAY_MODE_MASK 0x3F
@@ -86,79 +87,90 @@
 void pm_haptic_vib_turn_on(void)
 {
 	struct qpnp_hap vib_config = {0};
+	uint32_t pmic = target_get_pmic();
+	uint32_t slave_id = 1;
 
-	if(!target_is_pmi_enabled())
+	if(!target_is_pmi_enabled() && (pmic != PMIC_IS_PM660))
 		return;
 
+	if (pmic == PMIC_IS_PM660)
+		slave_id = 0;
+
 	get_vibration_type(&vib_config);
 	/* Configure the ACTUATOR TYPE register as ERM*/
-	pmic_spmi_reg_mask_write(QPNP_HAP_ACT_TYPE_REG,
+	pmic_spmi_reg_mask_write(QPNP_HAP_ACT_TYPE_REG(slave_id),
 					QPNP_HAP_ACT_TYPE_MASK,
 					VIB_ERM_TYPE == vib_config.vib_type ? QPNP_HAP_ERM
 					: QPNP_HAP_LRA);
 
 	/* Disable auto resonance for ERM */
-	pmic_spmi_reg_mask_write(QPNP_HAP_LRA_AUTO_RES_REG,
+	pmic_spmi_reg_mask_write(QPNP_HAP_LRA_AUTO_RES_REG(slave_id),
 					QPNP_HAP_LRA_AUTO_MASK,
 					QPNP_HAP_LRA_AUTO_DISABLE);
 
 	/* Configure the PLAY MODE register as direct*/
-	pmic_spmi_reg_mask_write(QPNP_HAP_PLAY_MODE_REG,
+	pmic_spmi_reg_mask_write(QPNP_HAP_PLAY_MODE_REG(slave_id),
 					QPNP_HAP_PLAY_MODE_MASK,
 					QPNP_HAP_DIRECT);
 
 	/* Configure the VMAX register */
-	pmic_spmi_reg_mask_write(QPNP_HAP_VMAX_REG,
+	pmic_spmi_reg_mask_write(QPNP_HAP_VMAX_REG(slave_id),
 					QPNP_HAP_VMAX_MASK, QPNP_HAP_VMAX);
 
 	/* Sets current limit to 800mA*/
-	pmic_spmi_reg_mask_write(QPNP_HAP_ILIM_REG,
+	pmic_spmi_reg_mask_write(QPNP_HAP_ILIM_REG(slave_id),
 					QPNP_HAP_ILIM_MASK, QPNP_HAP_ILIM);
 
 	/* Configure the short circuit debounce register as DEB_8CLK*/
-	pmic_spmi_reg_mask_write(QPNP_HAP_SC_DEB_REG,
+	pmic_spmi_reg_mask_write(QPNP_HAP_SC_DEB_REG(slave_id),
 					QPNP_HAP_SC_DEB_MASK, QPNP_HAP_SC_DEB_8CLK);
 
 	/* Configure the INTERNAL_PWM register as 505KHZ and 13PF*/
-	pmic_spmi_reg_mask_write(QPNP_HAP_INT_PWM_REG,
+	pmic_spmi_reg_mask_write(QPNP_HAP_INT_PWM_REG(slave_id),
 					QPNP_HAP_INT_PWM_MASK, QPNP_HAP_INT_PWM_505KHZ);
-	pmic_spmi_reg_mask_write(QPNP_HAP_PWM_CAP_REG,
+	pmic_spmi_reg_mask_write(QPNP_HAP_PWM_CAP_REG(slave_id),
 					QPNP_HAP_PWM_CAP_MASK, QPNP_HAP_PWM_CAP_13PF);
 
 	/* Configure the WAVE SHAPE register as SQUARE*/
-	pmic_spmi_reg_mask_write(QPNP_HAP_WAV_SHAPE_REG,
+	pmic_spmi_reg_mask_write(QPNP_HAP_WAV_SHAPE_REG(slave_id),
 					QPNP_HAP_WAV_SHAPE_MASK, QPNP_HAP_WAV_SHAPE_SQUARE);
 
 	/* Configure RATE_CFG1 and RATE_CFG2 registers for haptic rate. */
-	pmic_spmi_reg_mask_write(QPNP_HAP_RATE_CFG1_REG,
+	pmic_spmi_reg_mask_write(QPNP_HAP_RATE_CFG1_REG(slave_id),
 					QPNP_HAP_RATE_CFG1_MASK, vib_config.hap_rate_cfg1);
-	pmic_spmi_reg_mask_write(QPNP_HAP_RATE_CFG2_REG,
+	pmic_spmi_reg_mask_write(QPNP_HAP_RATE_CFG2_REG(slave_id),
 					QPNP_HAP_RATE_CFG2_MASK, vib_config.hap_rate_cfg2);
 
 	/* Configure BRAKE register, PATTERN1 & PATTERN2 as VMAX. */
-	pmic_spmi_reg_mask_write(QPNP_HAP_EN_CTL2_REG,
+	pmic_spmi_reg_mask_write(QPNP_HAP_EN_CTL2_REG(slave_id),
 					QPNP_HAP_EN_BRAKE_EN_MASK, QPNP_HAP_EN_BRAKING_EN);
-	pmic_spmi_reg_mask_write(QPNP_HAP_BRAKE_REG,
+	pmic_spmi_reg_mask_write(QPNP_HAP_BRAKE_REG(slave_id),
 					QPNP_HAP_BRAKE_VMAX_MASK, QPNP_HAP_BRAKE_VMAX);
 
 	/* Enable control register */
-	pmic_spmi_reg_mask_write(QPNP_HAP_EN_CTL_REG,
+	pmic_spmi_reg_mask_write(QPNP_HAP_EN_CTL_REG(slave_id),
 					QPNP_HAP_PLAY_MASK, QPNP_HAP_PLAY_EN);
 
 	/* Enable play register */
-	pmic_spmi_reg_mask_write(QPNP_HAP_PLAY_REG, QPNP_HAP_MASK, QPNP_HAP_EN);
+	pmic_spmi_reg_mask_write(QPNP_HAP_PLAY_REG(slave_id), QPNP_HAP_MASK, QPNP_HAP_EN);
 }
 
 /* Turn off vibrator */
 void pm_haptic_vib_turn_off(void)
 {
-	if(!target_is_pmi_enabled())
+	uint32_t pmic = target_get_pmic();
+	uint32_t slave_id = 1;
+
+	if(!target_is_pmi_enabled() && (pmic != PMIC_IS_PM660))
 		return;
 
+	if (pmic == PMIC_IS_PM660)
+		slave_id = 0;
+
 	/* Disable control register */
-	pmic_spmi_reg_mask_write(QPNP_HAP_EN_CTL_REG,
+	pmic_spmi_reg_mask_write(QPNP_HAP_EN_CTL_REG(slave_id),
 					QPNP_HAP_PLAY_MASK, QPNP_HAP_PLAY_DIS);
 
 	/* Disable play register */
-	pmic_spmi_reg_mask_write(QPNP_HAP_PLAY_REG, QPNP_HAP_MASK, QPNP_HAP_DIS);
+	pmic_spmi_reg_mask_write(QPNP_HAP_PLAY_REG(slave_id), QPNP_HAP_MASK, QPNP_HAP_DIS);
 }
diff --git a/platform/msm_shared/reboot.c b/platform/msm_shared/reboot.c
index d9a1310..7be94cd 100644
--- a/platform/msm_shared/reboot.c
+++ b/platform/msm_shared/reboot.c
@@ -37,18 +37,33 @@
 #include <stdlib.h>
 #include <reboot.h>
 #include <qtimer.h>
+#include <smem.h>
 
 #if USER_FORCE_RESET_SUPPORT
 /* Return 1 if it is a force resin triggered by user. */
 uint32_t is_user_force_reset(void)
 {
-	uint8_t poff_reason1 = pm8x41_get_pon_poff_reason1();
-	uint8_t poff_reason2 = pm8x41_get_pon_poff_reason2();
+	uint8_t poff_reason1;
+	uint8_t poff_reason2;
+	uint8_t is_cold_boot;
+	uint32_t pmic = target_get_pmic();
+	bool s3_reset;
+
+	if (pmic == PMIC_IS_PM660) {
+		poff_reason1 = pm660_get_pon_poff_reason1();
+		poff_reason2 = pm660_get_pon_poff_reason2();
+		is_cold_boot = pm660_get_is_cold_boot();
+		s3_reset = (poff_reason2 == PM660_STAGE3);
+	} else {
+		poff_reason1 = pm8x41_get_pon_poff_reason1();
+		poff_reason2 = pm8x41_get_pon_poff_reason2();
+		is_cold_boot = pm8x41_get_is_cold_boot();
+		s3_reset = (poff_reason2 == STAGE3);
+	}
 
 	dprintf(SPEW, "poff_reason1: %d\n", poff_reason1);
 	dprintf(SPEW, "poff_reason2: %d\n", poff_reason2);
-	if (pm8x41_get_is_cold_boot() && (poff_reason1 == KPDPWR_AND_RESIN ||
-							poff_reason2 == STAGE3))
+	if (is_cold_boot && (poff_reason1 == KPDPWR_AND_RESIN || s3_reset))
 		return 1;
 	else
 		return 0;
diff --git a/platform/msm_shared/smem.h b/platform/msm_shared/smem.h
index 5dfa7c3..1e63629 100644
--- a/platform/msm_shared/smem.h
+++ b/platform/msm_shared/smem.h
@@ -517,6 +517,7 @@
 	HW_PLATFORM_SUBTYPE_SVLTE2A = 3,
 	HW_PLATFORM_SUBTYPE_MTP_WEAR = 5,
 	HW_PLATFORM_SUBTYPE_SGLTE = 6,
+	HW_PLATFORM_SUBTYPE_429W_PM660 = 6,
 	HW_PLATFORM_SUBTYPE_DSDA = 7,
 	HW_PLATFORM_SUBTYPE_DSDA2 = 8,
 	HW_PLATFORM_SUBTYPE_SGLTE2 = 9,
