summaryrefslogtreecommitdiff
path: root/board/samus_pd/usb_pd_policy.c
diff options
context:
space:
mode:
authorAlec Berg <alecaberg@chromium.org>2015-04-08 09:42:43 -0700
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-04-11 04:32:33 +0000
commitf224ae87bd6967533d53278541c57414d61d26cf (patch)
tree188d650825dee59070b5b917be2f40ac4867b9e9 /board/samus_pd/usb_pd_policy.c
parent007fadda59dc617976eb87bcc325af7453d11a53 (diff)
downloadchrome-ec-f224ae87bd6967533d53278541c57414d61d26cf.tar.gz
pd: samus: support vconn swap and enable on Samus when in S0/S3
Support VCONN swap on samus and always accept VCONN swap when in S0 or S3. In S5, we can't provide VCONN, so reject VCONN swap requests. BUG=chrome-os-partner:34978 BRANCH=samus TEST=load on two samus' and use "pd 1 swap vconn" to swap which side is source vconn. also run in S5 and verify swap request is rejected. Change-Id: I04be8d1d910a2d6c5ad8b27a790f8e33121c86ee Signed-off-by: Alec Berg <alecaberg@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/264856 Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
Diffstat (limited to 'board/samus_pd/usb_pd_policy.c')
-rw-r--r--board/samus_pd/usb_pd_policy.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/board/samus_pd/usb_pd_policy.c b/board/samus_pd/usb_pd_policy.c
index 85e3244527..7e1302b018 100644
--- a/board/samus_pd/usb_pd_policy.c
+++ b/board/samus_pd/usb_pd_policy.c
@@ -151,6 +151,12 @@ int pd_check_data_swap(int port, int data_role)
return (data_role == PD_ROLE_UFP) ? 1 : 0;
}
+int pd_check_vconn_swap(int port)
+{
+ /* in S5, do not allow vconn swap since pp5000 rail is off */
+ return gpio_get_level(GPIO_PCH_SLP_S5_L);
+}
+
void pd_execute_data_swap(int port, int data_role)
{
/* Open USB switches when taking UFP role */