summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew McRae <amcrae@google.com>2020-01-03 15:40:05 +1100
committerCommit Bot <commit-bot@chromium.org>2020-01-03 07:30:55 +0000
commit583e01e679d33796cfb54e59b24464a0450e84c8 (patch)
tree3c948f97431afa9ace9a2adc98b1c8b96c664f0b
parent73c327471750542f789dbe45baebfb9126cdd245 (diff)
downloadchrome-ec-583e01e679d33796cfb54e59b24464a0450e84c8.tar.gz
puff: Enable type C power source when requested.
Implement the board function to enable type C power sourcing. BUG=b:146031922 TEST=Verified on puff, plugged in phone to charge. BRANCH=none Change-Id: I4dbdc9d5e5103e48b2d163ccfb841ae615957d0c Signed-off-by: Andrew McRae <amcrae@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1985727 Tested-by: Andrew McRae <amcrae@chromium.org> Reviewed-by: Peter Marheine <pmarheine@chromium.org> Commit-Queue: Peter Marheine <pmarheine@chromium.org>
-rw-r--r--board/puff/usb_pd_policy.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/board/puff/usb_pd_policy.c b/board/puff/usb_pd_policy.c
index dd4b8e19bd..f3b9146b0b 100644
--- a/board/puff/usb_pd_policy.c
+++ b/board/puff/usb_pd_policy.c
@@ -53,6 +53,28 @@ void pd_power_supply_reset(int port)
int pd_set_power_supply_ready(int port)
{
+ int rv;
+
+ /* Disable charging. */
+ rv = ppc_vbus_sink_enable(port, 0);
+ if (rv)
+ return rv;
+
+ pd_set_vbus_discharge(port, 0);
+
+ /* Provide Vbus. */
+ rv = ppc_vbus_source_enable(port, 1);
+ if (rv)
+ return rv;
+
+#ifdef CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT
+ /* Ensure we advertise the proper available current quota */
+ charge_manager_source_port(port, 1);
+#endif /* defined(CONFIG_USB_PD_MAX_SINGLE_SOURCE_CURRENT) */
+
+ /* Notify host of power info change. */
+ pd_send_host_event(PD_EVENT_POWER_CHANGE);
+
return EC_SUCCESS;
}