summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames_Chao <james_chao@asus.corp-partner.google.com>2019-01-30 15:38:07 +0800
committerchrome-bot <chrome-bot@chromium.org>2019-01-31 18:19:11 -0800
commitbe4160a3ed1e7f88432ea6552d61fad3642acf0e (patch)
tree313462c9b1d6d9cc3def44c1caa874d099b3e136
parentb0ae267a7451e440ae1d7b73dd42f905a8998f48 (diff)
downloadchrome-ec-be4160a3ed1e7f88432ea6552d61fad3642acf0e.tar.gz
ps8xxx: put the PS8751's power role to sink state
BUG=b:123607435 BRANCH=octopus TEST=check the external monitor can work Change-Id: Ibe334576b907774df62865817af6ba5eb3e9d96f Reviewed-on: https://chromium-review.googlesource.com/1445137 Commit-Ready: James Chao <james_chao@asus.corp-partner.google.com> Tested-by: James Chao <james_chao@asus.corp-partner.google.com> Reviewed-by: Jett Rink <jettrink@chromium.org>
-rw-r--r--driver/tcpm/ps8xxx.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/driver/tcpm/ps8xxx.c b/driver/tcpm/ps8xxx.c
index 3cb6903e5b..1ffb18a2c3 100644
--- a/driver/tcpm/ps8xxx.c
+++ b/driver/tcpm/ps8xxx.c
@@ -207,6 +207,21 @@ struct i2c_stress_test_dev ps8xxx_i2c_stress_test_dev = {
};
#endif /* CONFIG_CMD_I2C_STRESS_TEST_TCPC */
+static int ps8xxx_mux_init(int port)
+{
+ tcpci_tcpm_mux_init(port);
+
+ /* If this MUX is also the TCPC, then skip init */
+ if (!(usb_muxes[port].flags & USB_MUX_FLAG_NOT_TCPC))
+ return EC_SUCCESS;
+
+ /* We always want to be a sink when this device is only being used as a mux
+ * to support external peripherals better.
+ */
+ return mux_write(port, TCPC_REG_ROLE_CTRL,
+ TCPC_REG_ROLE_CTRL_SET(0, 1, TYPEC_CC_RD, TYPEC_CC_RD));
+}
+
static int ps8xxx_mux_enter_low_power_mode(int port)
{
mux_write(port, TCPC_REG_ROLE_CTRL,
@@ -214,8 +229,9 @@ static int ps8xxx_mux_enter_low_power_mode(int port)
return tcpci_tcpm_mux_enter_low_power(port);
}
+/* This is meant for mux-only applications */
const struct usb_mux_driver ps8xxx_usb_mux_driver = {
- .init = &tcpci_tcpm_mux_init,
+ .init = &ps8xxx_mux_init,
.set = &tcpci_tcpm_mux_set,
.get = &tcpci_tcpm_mux_get,
.enter_low_power_mode = &ps8xxx_mux_enter_low_power_mode,