diff --git a/google_battery.c b/google_battery.c
index 55c5bcc..f2eed7f 100644
--- a/google_battery.c
+++ b/google_battery.c
@@ -8491,7 +8491,7 @@
 		pr_err("cannot register power supply notifer, ret=%d\n",
 			ret);
 
-	batt_drv->batt_ws = wakeup_source_register(NULL, gbatt_psy_desc.name);
+	batt_drv->batt_ws = wakeup_source_register(NULL, "google-battery");
 	batt_drv->taper_ws = wakeup_source_register(NULL, "Taper");
 	batt_drv->poll_ws = wakeup_source_register(NULL, "Poll");
 	batt_drv->msc_ws = wakeup_source_register(NULL, "MSC");
diff --git a/google_bms.h b/google_bms.h
index 10fe4b4..1cd3e6a 100644
--- a/google_bms.h
+++ b/google_bms.h
@@ -571,7 +571,8 @@
 
 	GBMS_CHGR_MODE_WLC_TX	= 0x40,
 
-	GBMS_CHGR_MODE_VOUT	= 0x50,
+	GBMS_POGO_VIN		= 0x50,
+	GBMS_POGO_VOUT		= 0x51,
 };
 
 #define GBMS_MODE_VOTABLE "CHARGER_MODE"
diff --git a/google_charger.c b/google_charger.c
index c930773..b2e5e73 100644
--- a/google_charger.c
+++ b/google_charger.c
@@ -110,7 +110,8 @@
 #define EXT2_DETECT_THRESHOLD_UV	(5000000)
 
 #define usb_pd_is_high_volt(ad) \
-	((ad)->ad_type == CHG_EV_ADAPTER_TYPE_USB_PD && \
+	(((ad)->ad_type == CHG_EV_ADAPTER_TYPE_USB_PD || \
+	(ad)->ad_type == CHG_EV_ADAPTER_TYPE_USB_PD_PPS) && \
 	(ad)->ad_voltage * 100 > PD_SNK_MIN_MV)
 
 /*
@@ -588,13 +589,20 @@
 static int info_usb_ad_type(int usb_type, int usbc_type)
 {
 	switch (usb_type) {
-	case POWER_SUPPLY_TYPE_USB:
-		return CHG_EV_ADAPTER_TYPE_USB_SDP;
-	case POWER_SUPPLY_TYPE_USB_CDP:
+	case POWER_SUPPLY_USB_TYPE_SDP:
+		return (usbc_type == POWER_SUPPLY_USB_TYPE_PD_PPS) ?
+			CHG_EV_ADAPTER_TYPE_USB_PD_PPS :
+			CHG_EV_ADAPTER_TYPE_USB_SDP;
+	case POWER_SUPPLY_USB_TYPE_CDP:
 		return CHG_EV_ADAPTER_TYPE_USB_CDP;
-	case POWER_SUPPLY_TYPE_USB_DCP:
-		return CHG_EV_ADAPTER_TYPE_USB_DCP;
-	case POWER_SUPPLY_TYPE_USB_PD:
+	case POWER_SUPPLY_USB_TYPE_DCP:
+		if (usbc_type == POWER_SUPPLY_USB_TYPE_PD)
+			return CHG_EV_ADAPTER_TYPE_USB_PD;
+		else if (usbc_type == POWER_SUPPLY_USB_TYPE_PD_PPS)
+			return CHG_EV_ADAPTER_TYPE_USB_PD_PPS;
+		else
+			return CHG_EV_ADAPTER_TYPE_USB_DCP;
+	case POWER_SUPPLY_USB_TYPE_PD:
 		return (usbc_type == POWER_SUPPLY_USB_TYPE_PD_PPS) ?
 			CHG_EV_ADAPTER_TYPE_USB_PD_PPS :
 			CHG_EV_ADAPTER_TYPE_USB_PD;
@@ -1938,8 +1946,10 @@
 			bd_state->dd_last_update = now;
 
 		time = now - bd_state->dd_last_update;
-		if (bd_state->dd_trigger_time && time >= bd_state->dd_trigger_time)
+		if (bd_state->dd_trigger_time && time >= bd_state->dd_trigger_time) {
 			bd_state->dd_enabled = 1;
+			bd_state->lowerbd_reached = true;
+		}
 	}
 }
 
@@ -1964,7 +1974,7 @@
 	/* update dd_state to user space */
 	bd_state->dd_state = bd_dd_state_update(bd_state->dd_state,
 						bd_state->dd_triggered,
-						(soc >= lowerbd));
+						(soc >= upperbd));
 
 	/* Start DD stats */
 	if (bd_state->dd_state == DOCK_DEFEND_ACTIVE)
@@ -5288,7 +5298,7 @@
 		const bool pps_enable = of_property_read_bool(chg_drv->device->of_node,
 							      "google,pps-enable");
 
-		ret = pps_init(&chg_drv->pps_data, chg_drv->device, tcpm_psy);
+		ret = pps_init(&chg_drv->pps_data, chg_drv->device, tcpm_psy, "gcharger-pps");
 		if (ret < 0) {
 			pr_err("PPS init failure for %s (%d)\n", name, ret);
 		} else if (pps_enable) {
diff --git a/google_cpm.c b/google_cpm.c
index f88e0cc..9d57db4 100644
--- a/google_cpm.c
+++ b/google_cpm.c
@@ -3168,7 +3168,7 @@
 
 			/* PPS charging: needs an APDO */
 			ret = pps_init(&gcpm->tcpm_pps_data, gcpm->device,
-				       gcpm->tcpm_psy);
+				       gcpm->tcpm_psy, "wired-pps");
 			if (ret == 0 && gcpm->debug_entry)
 				pps_init_fs(&gcpm->tcpm_pps_data, gcpm->debug_entry);
 			if (ret < 0) {
@@ -3206,7 +3206,7 @@
 
 			/* PPS charging: needs an APDO */
 			ret = pps_init(&gcpm->wlc_pps_data, gcpm->device,
-					gcpm->wlc_dc_psy);
+					gcpm->wlc_dc_psy, "wireless-pps");
 			if (ret == 0 && gcpm->debug_entry)
 				pps_init_fs(&gcpm->wlc_pps_data, gcpm->debug_entry);
 			if (ret < 0) {
@@ -3838,7 +3838,7 @@
 	INIT_DELAYED_WORK(&gcpm->init_work, gcpm_init_work);
 	mutex_init(&gcpm->chg_psy_lock);
 
-	gcpm->gcpm_ws = wakeup_source_register(NULL, "gcpm");
+	gcpm->gcpm_ws = wakeup_source_register(NULL, "google-cpm");
 	if (!gcpm->gcpm_ws) {
 		dev_err(gcpm->device, "Failed to register wakeup source\n");
 		return -ENODEV;
diff --git a/google_dc_pps.c b/google_dc_pps.c
index 8b10f5e..bca5239 100644
--- a/google_dc_pps.c
+++ b/google_dc_pps.c
@@ -504,7 +504,7 @@
  * pps_data->nr_snk_pdo == 0 means no PPS
  */
 int pps_init(struct pd_pps_data *pps_data, struct device *dev,
-	     struct power_supply *pps_psy)
+	     struct power_supply *pps_psy, const char *pps_ws_name)
 {
 	int ret;
 
@@ -530,8 +530,7 @@
 	pps_data->stay_awake = of_property_read_bool(dev->of_node,
 						     "google,pps-awake");
 	if (pps_data->stay_awake) {
-		pps_data->pps_ws = wakeup_source_register(NULL,
-							  pps_name(pps_psy));
+		pps_data->pps_ws = wakeup_source_register(NULL, pps_ws_name);
 		if (!pps_data->pps_ws) {
 			dev_err(dev, "Failed to register wakeup source\n");
 			return -ENODEV;
diff --git a/google_dc_pps.h b/google_dc_pps.h
index bda5f65..d747988 100644
--- a/google_dc_pps.h
+++ b/google_dc_pps.h
@@ -106,7 +106,7 @@
 
 struct dentry;
 int pps_init(struct pd_pps_data *pps_data, struct device *dev,
-	     struct power_supply *pps_psy);
+	     struct power_supply *pps_psy, const char *pps_ws_name);
 int pps_init_fs(struct pd_pps_data *pps_data, struct dentry *de);
 /* reset state and leave in DISABLED  */
 void pps_init_state(struct pd_pps_data *pps_data);
diff --git a/google_dock.c b/google_dock.c
index c425a3a..77ec0ff 100644
--- a/google_dock.c
+++ b/google_dock.c
@@ -99,7 +99,7 @@
 
 	return gvotable_cast_long_vote(dock->chg_mode_votable,
 				       DOCK_VOUT_VOTER,
-				       GBMS_CHGR_MODE_VOUT,
+				       GBMS_POGO_VOUT,
 				       enabled != 0);
 }
 
diff --git a/max77759.h b/max77759.h
index cc89ff8..35d02ba 100644
--- a/max77759.h
+++ b/max77759.h
@@ -124,6 +124,7 @@
 	u8 raw_value;	/* hard override */
 	bool use_raw;
 
+	bool pogo_vin;	/* pogo ovp_en */
 	bool pogo_vout;	/* pogo 5v vout */
 
 	u8 reg;
diff --git a/max77759_charger.c b/max77759_charger.c
index 7d6cc61..8eac855 100644
--- a/max77759_charger.c
+++ b/max77759_charger.c
@@ -588,11 +588,18 @@
 		pr_debug("%s: WLC_TX vote=%x\n", __func__, mode);
 		cb_data->wlc_tx += 1;
 		break;
+	/* pogo vin */
+	case GBMS_POGO_VIN:
+		if (!cb_data->pogo_vin)
+			cb_data->reason = reason;
+		pr_debug("%s: POGO VIN vote=%x\n", __func__, mode);
+		cb_data->pogo_vin += 1;
+		break;
 	/* pogo vout */
-	case GBMS_CHGR_MODE_VOUT:
+	case GBMS_POGO_VOUT:
 		if (!cb_data->pogo_vout)
 			cb_data->reason = reason;
-		pr_debug("%s: VOUT vote=%x\n", __func__, mode);
+		pr_debug("%s: POGO VOUT vote=%x\n", __func__, mode);
 		cb_data->pogo_vout += 1;
 		break;
 
@@ -831,7 +838,23 @@
 	return usecase;
 }
 
-static int max77759_wcin_is_valid(struct max77759_chgr_data *data);
+static void max77759_set_pogo_ovp_en(struct max77759_usecase_data *uc_data,
+				     const int enabled)
+{
+	const int gpio_en = gpio_get_value_cansleep(uc_data->pogo_ovp_en);
+	const bool pogo_ovp_en = uc_data->pogo_ovp_en_act_low ?
+				 (gpio_en == 0) : (gpio_en == 1);
+
+	/* return if pogo_ovp_en has been set */
+	if ((enabled && pogo_ovp_en) || (!enabled && !pogo_ovp_en))
+		return;
+
+	/* turn on/off pogo_ovp_en */
+	gpio_set_value_cansleep(uc_data->pogo_ovp_en, enabled ?
+				!uc_data->pogo_ovp_en_act_low :
+				uc_data->pogo_ovp_en_act_low);
+}
+
 /*
  * adjust *INSEL (only one source can be enabled at a given time)
  * NOTE: providing compatibility with input_suspend makes this more complex
@@ -889,15 +912,9 @@
 		/* turn off pogo_ovp */
 		if (uc_data->pogo_ovp_en > 0)
 			gpio_set_value_cansleep(uc_data->pogo_ovp_en, uc_data->pogo_ovp_en_act_low);
-	} else if (uc_data->dcin_is_dock && max77759_wcin_is_valid(data) && !cb_data->wlcin_off) {
+	} else if (cb_data->pogo_vin && !cb_data->wlcin_off) {
 		/* always disable USB when Dock is present */
 		insel_value &= ~MAX77759_CHG_CNFG_12_CHGINSEL;
-		/* b/232723240: charge over USB-C
-		 *              set to 1 for POGO_OVP_EN
-		 *              set to 0 for POGO_OVP_EN_L
-		 */
-		if (uc_data->pogo_ovp_en > 0)
-			gpio_set_value_cansleep(uc_data->pogo_ovp_en, !uc_data->pogo_ovp_en_act_low);
 		insel_value |= MAX77759_CHG_CNFG_12_WCINSEL;
 	}
 
@@ -920,6 +937,9 @@
 	/* changing [CHGIN|WCIN]_INSEL: works when protection is disabled  */
 	ret = max77759_chg_insel_write(uc_data->client, insel_mask, insel_value);
 
+	if (uc_data->pogo_ovp_en > 0)
+		max77759_set_pogo_ovp_en(uc_data, cb_data->pogo_vin);
+
 	pr_debug("%s: usecase=%d->%d mask=%x insel=%x wlc_on=%d force_wlc=%d (%d)\n",
 		 __func__, from_uc, use_case, insel_mask, insel_value, wlc_on,
 		 force_wlc, ret);
@@ -1059,7 +1079,7 @@
 	       !cb_data.chgr_on && !cb_data.buck_on && ! cb_data.boost_on &&
 	       !cb_data.otg_on && !cb_data.uno_on && !cb_data.wlc_tx &&
 	       !cb_data.wlc_rx && !cb_data.wlcin_off && !cb_data.chgin_off &&
-	       !cb_data.usb_wlc && !cb_data.pogo_vout;
+	       !cb_data.usb_wlc && !cb_data.pogo_vout && !cb_data.pogo_vin;
 	if (nope) {
 		pr_debug("%s: nope callback\n", __func__);
 		goto unlock_done;
@@ -1067,12 +1087,13 @@
 
 	dev_info(data->dev, "%s:%s full=%d raw=%d stby_on=%d, dc_on=%d, chgr_on=%d, buck_on=%d,"
 		" boost_on=%d, otg_on=%d, uno_on=%d wlc_tx=%d wlc_rx=%d usb_wlc=%d"
-		" chgin_off=%d wlcin_off=%d frs_on=%d pogo_vout=%d\n",
+		" chgin_off=%d wlcin_off=%d frs_on=%d pogo_vout=%d pogo_vin=%d\n",
 		__func__, trigger ? trigger : "<>",
 		data->charge_done, cb_data.use_raw, cb_data.stby_on, cb_data.dc_on,
 		cb_data.chgr_on, cb_data.buck_on, cb_data.boost_on, cb_data.otg_on,
 		cb_data.uno_on, cb_data.wlc_tx, cb_data.wlc_rx, cb_data.usb_wlc,
-		cb_data.chgin_off, cb_data.wlcin_off, cb_data.frs_on, cb_data.pogo_vout);
+		cb_data.chgin_off, cb_data.wlcin_off, cb_data.frs_on, cb_data.pogo_vout,
+		cb_data.pogo_vin);
 
 	/* just use raw "as is", no changes to switches etc */
 	if (cb_data.use_raw) {
diff --git a/pca9468_gbms_pps.c b/pca9468_gbms_pps.c
index 5960269..98c0bab 100644
--- a/pca9468_gbms_pps.c
+++ b/pca9468_gbms_pps.c
@@ -144,7 +144,7 @@
 	}
 
 	/* not needed if tcpm-power-supply is not there */
-	ret = pps_init(&pca9468->pps_data, pca9468->dev, tcpm_psy);
+	ret = pps_init(&pca9468->pps_data, pca9468->dev, tcpm_psy, "pca-pps");
 	if (ret == 0) {
 		pps_set_logbuffer(&pca9468->pps_data, pca9468->log);
 		pps_init_state(&pca9468->pps_data);
