summaryrefslogtreecommitdiff
path: root/common/usbc_ppc.c
diff options
context:
space:
mode:
authorAseda Aboagye <aaboagye@google.com>2018-09-25 18:27:19 -0700
committerchrome-bot <chrome-bot@chromium.org>2019-03-26 04:42:42 -0700
commit901dfa10e5204bb6e45f5f70d068aeefa3ad452b (patch)
tree3635f4a4ee73de30d6b8568cd1c8864ef011b94d /common/usbc_ppc.c
parenta4c7cc8ab45d47fff3ab4c45d6a93ea449208e4d (diff)
downloadchrome-ec-901dfa10e5204bb6e45f5f70d068aeefa3ad452b.tar.gz
sn5s330: Add support for SBU FET control.
The SN5S330 has FETs for the SBU lines which need to be controlled by the TCPM. This commit adds a function to control the SBU FETs and enables them when configuring the USB mux. This commit also fixes a bug with the external VBUS current limit setting by setting it appropriately to a min of ~3A. BUG=b:114340064 BRANCH=firmware-nocturne-10984.B TEST=Flash nocturne; plug in hoho; verify that external display is shown. Bounce thru S5, verify that external display still works. TEST=Repeat above with superspeed hub instead. Change-Id: I931f7a47d4eb28e8d9e3cb188601ce0889a44f8d Signed-off-by: Aseda Aboagye <aaboagye@google.com> Reviewed-on: https://chromium-review.googlesource.com/1244382 Commit-Queue: Aseda Aboagye <aaboagye@chromium.org> Tested-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Furquan Shaikh <furquan@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1530125 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: Edward Hill <ecgh@chromium.org> Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
Diffstat (limited to 'common/usbc_ppc.c')
-rw-r--r--common/usbc_ppc.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/common/usbc_ppc.c b/common/usbc_ppc.c
index 9ec33a3ec1..54da1f22b4 100644
--- a/common/usbc_ppc.c
+++ b/common/usbc_ppc.c
@@ -140,6 +140,16 @@ int ppc_is_port_latched_off(int port)
return oc_event_cnt_tbl[port] >= PPC_OC_CNT_THRESH;
}
+#ifdef CONFIG_USBC_PPC_SBU
+int ppc_set_sbu(int port, int enable)
+{
+ if ((port < 0) || (port >= ppc_cnt))
+ return EC_ERROR_INVAL;
+
+ return ppc_chips[port].drv->set_sbu(port, enable);
+}
+#endif /* defined(CONFIG_USBC_PPC_SBU) */
+
#ifdef CONFIG_USBC_PPC_VCONN
int ppc_set_vconn(int port, int enable)
{