diff --git a/target/msm8952/init.c b/target/msm8952/init.c
index 7513e9e..136ab70 100644
--- a/target/msm8952/init.c
+++ b/target/msm8952/init.c
@@ -112,7 +112,7 @@
 
 static int sdm429_pm660_target()
 {
-	if (platform_is_sdm429() && (board_hardware_subtype()
+	if ((platform_is_sdm429() || platform_is_sdm429w()) && (board_hardware_subtype()
 			== HW_PLATFORM_SUBTYPE_429W_PM660))
 		return 1;
 	else
@@ -202,7 +202,7 @@
 	if(platform_is_msm8956())
 		vol_up_gpio = TLMM_VOL_UP_BTN_GPIO_8956;
 	else if(platform_is_msm8937() || platform_is_msm8917() ||
-		    platform_is_sdm429() || platform_is_sdm439() ||
+		    platform_is_sdm429() || platform_is_sdm429w() || platform_is_sdm439() ||
 		    platform_is_qm215())
 		vol_up_gpio = TLMM_VOL_UP_BTN_GPIO_8937;
 	else
@@ -308,7 +308,7 @@
 	if(target_is_pmi_enabled())
 	{
 		if(platform_is_msm8937() || platform_is_msm8917() ||
-		   platform_is_sdm429() || platform_is_sdm439())
+		   platform_is_sdm429() || platform_is_sdm429w() || platform_is_sdm439())
 		{
 			uint8_t pmi_rev = 0;
 			uint32_t pmi_type = 0;
@@ -427,6 +427,7 @@
 	case MSM8617:
 	case SDM429:
 	case SDM439:
+	case SDM429W:
 	case QM215:
 		board->baseband = BASEBAND_MSM;
 		break;
diff --git a/target/msm8952/oem_panel.c b/target/msm8952/oem_panel.c
index 55619e7..e49252c 100644
--- a/target/msm8952/oem_panel.c
+++ b/target/msm8952/oem_panel.c
@@ -1041,7 +1041,7 @@
 			panel_id = HX8399C_FHD_PLUSE_VIDEO_PANEL;
 		}
 
-		if (platform_is_sdm429()) {
+		if (platform_is_sdm429() || platform_is_sdm429w()) {
 			if (hw_subtype == HW_PLATFORM_SUBTYPE_429W_PM660) /* Spyro target */
 				panel_id = RM67162_QVGA_CMD_PANEL;
 			else
@@ -1082,7 +1082,7 @@
 	 * Update all data structures after 'panel_init' label. Only panel
 	 * selection is supposed to happen before that.
 	 */
-	if (platform_is_sdm439() || platform_is_sdm429()) {
+	if (platform_is_sdm439() || platform_is_sdm429() || platform_is_sdm429w()) {
 		phy_db->pll_type = DSI_PLL_TYPE_12NM;
 		pinfo->lane_config = mdss_dsi_lane_config;
 		goto end;
diff --git a/target/msm8952/regulator.c b/target/msm8952/regulator.c
index ecb2ba3..143d9c0 100644
--- a/target/msm8952/regulator.c
+++ b/target/msm8952/regulator.c
@@ -178,7 +178,7 @@
 		if (enable & REG_LDO1)
 			rpm_send_data(&ldo1[GENERIC_ENABLE][0], 36, RPM_REQUEST_TYPE);
 
-	} else if (platform_is_sdm439() || platform_is_sdm429()) {
+	} else if (platform_is_sdm439() || platform_is_sdm429() || platform_is_sdm429w()) {
 		if (enable & REG_LDO5)
 			rpm_send_data(&ldo5[GENERIC_ENABLE][0],
 				36, RPM_REQUEST_TYPE);
@@ -187,7 +187,7 @@
 			rpm_send_data(&ldo2[GENERIC_ENABLE][0], 36, RPM_REQUEST_TYPE);
 	}
 
-	if (platform_is_sdm429() && hw_subtype
+	if ((platform_is_sdm429() || platform_is_sdm429w()) && hw_subtype
 			== HW_PLATFORM_SUBTYPE_429W_PM660) {
 		if (enable & REG_LDO13)
 			rpm_send_data(&ldo13_pm660[GENERIC_ENABLE][0],
@@ -201,7 +201,7 @@
 		rpm_send_data(&ldo17[GENERIC_ENABLE][0], 36, RPM_REQUEST_TYPE);
 
 	if (enable & REG_LDO6) {
-		if (platform_is_sdm429() && hw_subtype
+		if ((platform_is_sdm429() || platform_is_sdm429w()) && hw_subtype
 				== HW_PLATFORM_SUBTYPE_429W_PM660)
 			rpm_send_data(&ldo6_pm660[GENERIC_ENABLE][0], 36, RPM_REQUEST_TYPE);
 		else
@@ -215,7 +215,7 @@
 		if (enable & REG_LDO1)
 			rpm_send_data(&ldo1[GENERIC_DISABLE][0], 36, RPM_REQUEST_TYPE);
 
-	} else if (platform_is_sdm439() || platform_is_sdm429()) {
+	} else if (platform_is_sdm439() || platform_is_sdm429() || platform_is_sdm429w()) {
 		if (enable & REG_LDO5)
 			rpm_send_data(&ldo5[GENERIC_DISABLE][0],
 				36, RPM_REQUEST_TYPE);
diff --git a/target/msm8952/target_display.c b/target/msm8952/target_display.c
index 7d74abe..43a3382 100644
--- a/target/msm8952/target_display.c
+++ b/target/msm8952/target_display.c
@@ -362,7 +362,7 @@
 		pll_data->is_center_spread = false;
 		pll_data->ssc_freq = 30000;
 		pll_data->ssc_ppm = 5000;
-	} else if (platform_is_sdm439() || platform_is_sdm429()) {
+	} else if (platform_is_sdm439() || platform_is_sdm429() || platform_is_sdm429w()) {
 		pll_data->ssc_en = true;
 		pll_data->is_center_spread = false;
 		pll_data->ssc_freq = 31500;
@@ -386,7 +386,7 @@
 
 		gcc_dsi_lp_clock_enable(flags);
 
-		if (platform_is_sdm439() || platform_is_sdm429()) {
+		if (platform_is_sdm439() || platform_is_sdm429() || platform_is_sdm429w()) {
 			mdss_dsi_auto_pll_12nm_config(pinfo);
 
 			/*
@@ -450,9 +450,9 @@
 		bkl_gpio.pin_id = 93;
 		enable_gpio.pin_id = 94;
 		pinfo->mipi.use_enable_gpio = 1;
-	} else if (platform_is_sdm439() || platform_is_sdm429()) {
+	} else if (platform_is_sdm439() || platform_is_sdm429() || platform_is_sdm429w()) {
 		reset_gpio.pin_id = 60;
-		if (platform_is_sdm429() && hw_subtype
+		if ((platform_is_sdm429() || platform_is_sdm429w()) && hw_subtype
 			== HW_PLATFORM_SUBTYPE_429W_PM660) {
 			reset_gpio.pin_id = 60;
 			pinfo->mipi.use_enable_gpio = 1;
@@ -473,7 +473,7 @@
 			gpio_set_dir(enable_gpio.pin_id, 2);
 		}
 
-		if (platform_is_sdm439() || platform_is_sdm429()) {
+		if (platform_is_sdm439() || platform_is_sdm429() || platform_is_sdm429w()) {
 			/* enable PM GPIO-4 for backlight enable */
 			struct pm8x41_gpio gpio_param = {
 			.direction = PM_GPIO_DIR_OUT,
@@ -627,7 +627,7 @@
 
 int target_display_get_base_offset(uint32_t base)
 {
-	if (platform_is_sdm439() || platform_is_sdm429()) {
+	if (platform_is_sdm439() || platform_is_sdm429() || platform_is_sdm429w()) {
 		if (base == MIPI_DSI0_BASE)
 			return DSI0_BASE_ADJUST;
 		else if (base == DSI0_PHY_BASE)
@@ -660,12 +660,12 @@
 
 	if (platform_is_msm8956())
 		ldo_num |= REG_LDO1;
-	else if (platform_is_sdm439() || platform_is_sdm429())
+	else if (platform_is_sdm439() || platform_is_sdm429() || platform_is_sdm429w())
 		ldo_num |= REG_LDO5; /* LDO23 is enable by default */
 	else
 		ldo_num |= REG_LDO2;
 
-	if (platform_is_sdm429() && hw_subtype
+	if ((platform_is_sdm429() || platform_is_sdm429w()) && hw_subtype
 		== HW_PLATFORM_SUBTYPE_429W_PM660)
 		ldo_num |= REG_LDO13 | REG_LDO15;
 
@@ -695,7 +695,7 @@
 		 */
 		regulator_disable(REG_LDO17);
 
-		if (platform_is_sdm429() && hw_subtype
+		if ((platform_is_sdm429() || platform_is_sdm429w()) && hw_subtype
 			== HW_PLATFORM_SUBTYPE_429W_PM660)
 			regulator_disable(REG_LDO13 | REG_LDO15);
 	}
