diff --git a/target/msm8952/init.c b/target/msm8952/init.c
old mode 100755
new mode 100644
index 8446481..b8cff9f
--- 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() == HW_PLATFORM_SUBTYPE_429W_PM660)) || platform_is_sdm429w())
+	if ((platform_is_sdm429() && (board_hardware_subtype() == HW_PLATFORM_SUBTYPE_429W_PM660)) || platform_is_sdm429w() || platform_is_sda429w())
 		return 1;
 	else
 		return 0;
@@ -201,7 +201,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_sdm429w() || platform_is_sdm439() ||
+		    platform_is_sdm429() || platform_is_sdm429w() || platform_is_sda429w() || platform_is_sdm439() ||
 		    platform_is_qm215())
 		vol_up_gpio = TLMM_VOL_UP_BTN_GPIO_8937;
 	else
@@ -307,7 +307,7 @@
 	if(target_is_pmi_enabled())
 	{
 		if(platform_is_msm8937() || platform_is_msm8917() ||
-		   platform_is_sdm429() || platform_is_sdm429w() || platform_is_sdm439())
+		   platform_is_sdm429() || platform_is_sdm429w() || platform_is_sda429w() || platform_is_sdm439())
 		{
 			uint8_t pmi_rev = 0;
 			uint32_t pmi_type = 0;
@@ -341,7 +341,7 @@
 #if PON_VIB_SUPPORT
 	/* turn on vibrator to indicate that phone is booting up to end user */
 	if(target_is_pmi_enabled() || platform_is_qm215()
-			|| platform_is_sdm429w() || sdm429_pm660_target())
+			|| platform_is_sdm429w() || platform_is_sda429w() || sdm429_pm660_target())
 		vib_timed_turn_on(VIBRATE_TIME);
 #endif
 
@@ -427,6 +427,7 @@
 	case SDM429:
 	case SDM439:
 	case SDM429W:
+	case SDA429W:
 	case QM215:
 	case QCM2150:
 		board->baseband = BASEBAND_MSM;
@@ -520,7 +521,7 @@
 void target_uninit(void)
 {
 #if PON_VIB_SUPPORT
-	if(target_is_pmi_enabled() || platform_is_sdm429w() || sdm429_pm660_target())
+	if(target_is_pmi_enabled() || platform_is_sdm429w() || platform_is_sda429w() || sdm429_pm660_target())
 		turn_off_vib_early();
 #endif
 	mmc_put_card_to_sleep(dev);
@@ -715,7 +716,7 @@
 
 bool target_is_pmi_enabled(void)
 {
-	if (platform_is_qm215() || platform_is_sdm429w() || sdm429_pm660_target() ||
+	if (platform_is_qm215() || platform_is_sdm429w() || platform_is_sda429w() || sdm429_pm660_target() ||
 			(platform_is_msm8917() && (board_hardware_subtype() ==
 			HW_PLATFORM_SUBTYPE_SAP_NOPMI)))
 		return 0;
@@ -772,7 +773,7 @@
 		else
 			return PMIC_IS_PMI8950;
 	} else {
-		if (platform_is_qm215() || platform_is_sdm429w() || sdm429_pm660_target()) {
+		if (platform_is_qm215() || platform_is_sdm429w() || platform_is_sda429w() || sdm429_pm660_target()) {
 			pmi_type = board_pmic_target(0) & PMIC_TYPE_MASK;
 			return pmi_type;
 		}
diff --git a/target/msm8952/oem_panel.c b/target/msm8952/oem_panel.c
old mode 100755
new mode 100644
index 07eee04..0a20579
--- a/target/msm8952/oem_panel.c
+++ b/target/msm8952/oem_panel.c
@@ -1075,7 +1075,7 @@
 			panel_id = HX8399C_FHD_PLUSE_VIDEO_PANEL;
 		}
 
-		if (platform_is_sdm429() || platform_is_sdm429w()) {
+		if (platform_is_sdm429() || platform_is_sdm429w() || platform_is_sda429w()) {
 			if (hw_subtype == HW_PLATFORM_SUBTYPE_429W_PM660) /* WTP 2700 DVT */
 			  panel_id = RM67162_QVGA_CMD_PANEL;
 			else if (hw_subtype == HW_PLATFORM_SUBTYPE_429W_PM660_WDP) /* WDP 2700 */
@@ -1118,7 +1118,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() || platform_is_sdm429w()) {
+	if (platform_is_sdm439() || platform_is_sdm429() || platform_is_sdm429w() || platform_is_sda429w()) {
 		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
old mode 100755
new mode 100644
index 873077f..4daf4ea
--- 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() || platform_is_sdm429w()) {
+	} else if (platform_is_sdm439() || platform_is_sdm429() || platform_is_sdm429w() || platform_is_sda429w()) {
 		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() && (board_hardware_subtype() == HW_PLATFORM_SUBTYPE_429W_PM660)) || platform_is_sdm429w()) {
+	if ((platform_is_sdm429() && (board_hardware_subtype() == HW_PLATFORM_SUBTYPE_429W_PM660)) || platform_is_sdm429w() || platform_is_sda429w()) {
 		if (enable & REG_LDO13)
 			rpm_send_data(&ldo13_pm660[GENERIC_ENABLE][0],
 				36, RPM_REQUEST_TYPE);
@@ -200,7 +200,7 @@
 		rpm_send_data(&ldo17[GENERIC_ENABLE][0], 36, RPM_REQUEST_TYPE);
 
 	if (enable & REG_LDO6) {
-		if ((platform_is_sdm429() || platform_is_sdm429w()) && hw_subtype
+		if ((platform_is_sdm429() || platform_is_sdm429w() || platform_is_sda429w()) && hw_subtype
 				== HW_PLATFORM_SUBTYPE_429W_PM660)
 			rpm_send_data(&ldo6_pm660[GENERIC_ENABLE][0], 36, RPM_REQUEST_TYPE);
 		else
@@ -214,7 +214,7 @@
 		if (enable & REG_LDO1)
 			rpm_send_data(&ldo1[GENERIC_DISABLE][0], 36, RPM_REQUEST_TYPE);
 
-	} else if (platform_is_sdm439() || platform_is_sdm429() || platform_is_sdm429w()) {
+	} else if (platform_is_sdm439() || platform_is_sdm429() || platform_is_sdm429w() || platform_is_sda429w()) {
 		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
old mode 100755
new mode 100644
index 0dc6834..af32186
--- a/target/msm8952/target_display.c
+++ b/target/msm8952/target_display.c
@@ -364,7 +364,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() || platform_is_sdm429w()) {
+	} else if (platform_is_sdm439() || platform_is_sdm429() || platform_is_sdm429w() || platform_is_sda429w()) {
 		pll_data->ssc_en = true;
 		pll_data->is_center_spread = false;
 		pll_data->ssc_freq = 31500;
@@ -388,7 +388,7 @@
 
 		gcc_dsi_lp_clock_enable(flags);
 
-		if (platform_is_sdm439() || platform_is_sdm429() || platform_is_sdm429w()) {
+		if (platform_is_sdm439() || platform_is_sdm429() || platform_is_sdm429w() || platform_is_sda429w()) {
 			mdss_dsi_auto_pll_12nm_config(pinfo);
 
 			/*
@@ -452,9 +452,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() || platform_is_sdm429w()) {
+	} else if (platform_is_sdm439() || platform_is_sdm429() || platform_is_sdm429w() || platform_is_sda429w()) {
 		reset_gpio.pin_id = 60;
-		if ((platform_is_sdm429() && (board_hardware_subtype() == HW_PLATFORM_SUBTYPE_429W_PM660)) || platform_is_sdm429w()) {
+		if ((platform_is_sdm429() && (board_hardware_subtype() == HW_PLATFORM_SUBTYPE_429W_PM660)) || platform_is_sdm429w() || platform_is_sda429w()) {
       if (board_hardware_subtype() == HW_PLATFORM_SUBTYPE_429W_PM660_WDP) {
         reset_gpio.pin_id = 60;
         pinfo->mipi.use_enable_gpio = 0;
@@ -480,7 +480,7 @@
 			gpio_set_dir(enable_gpio.pin_id, 2);
 		}
 
-		if (platform_is_sdm439() || platform_is_sdm429() || platform_is_sdm429w()) {
+		if (platform_is_sdm439() || platform_is_sdm429() || platform_is_sdm429w() || platform_is_sda429w()) {
 			/* enable PM GPIO-4 for backlight enable */
 			struct pm8x41_gpio gpio_param = {
 			.direction = PM_GPIO_DIR_OUT,
@@ -492,7 +492,7 @@
 			};
 
 			if (((board_target_id() & VARIANT_MAJOR_MASK)) &&
-				platform_is_sdm429w()) {
+				(platform_is_sda429w() || platform_is_sdm429w())) {
 				/* enable PM660 GPIO-12 for backlight enable */
 				bkl_en_gpio.pin_id = 12;
 				gpio_param.inv_int_pol = PM_GPIO_INVERT;
@@ -641,7 +641,7 @@
 
 int target_display_get_base_offset(uint32_t base)
 {
-	if (platform_is_sdm439() || platform_is_sdm429() || platform_is_sdm429w()) {
+	if (platform_is_sdm439() || platform_is_sdm429() || platform_is_sdm429w() || platform_is_sda429w()) {
 		if (base == MIPI_DSI0_BASE)
 			return DSI0_BASE_ADJUST;
 		else if (base == DSI0_PHY_BASE)
@@ -674,12 +674,12 @@
 
 	if (platform_is_msm8956())
 		ldo_num |= REG_LDO1;
-	else if (platform_is_sdm439() || platform_is_sdm429() || platform_is_sdm429w())
+	else if (platform_is_sdm439() || platform_is_sdm429() || platform_is_sdm429w() || platform_is_sda429w())
 		ldo_num |= REG_LDO5; /* LDO23 is enable by default */
 	else
 		ldo_num |= REG_LDO2;
 
-	if ((platform_is_sdm429() && (board_hardware_subtype() == HW_PLATFORM_SUBTYPE_429W_PM660)) || platform_is_sdm429w()) {
+	if ((platform_is_sdm429() && (board_hardware_subtype() == HW_PLATFORM_SUBTYPE_429W_PM660)) || platform_is_sdm429w() || platform_is_sda429w()) {
 			ldo_num &= ~(REG_LDO17 | REG_LDO5);
 			ldo_num |= REG_LDO13 | REG_LDO15;
 		}
@@ -710,7 +710,7 @@
 		 */
 		regulator_disable(REG_LDO17);
 
-		if ((platform_is_sdm429() || platform_is_sdm429w()) && hw_subtype
+		if ((platform_is_sdm429() || platform_is_sdm429w() || platform_is_sda429w()) && hw_subtype
 			== HW_PLATFORM_SUBTYPE_429W_PM660)
 			regulator_disable(REG_LDO13 | REG_LDO15);
 	}
