diff options
author | James_Chao <james_chao@asus.corp-partner.google.com> | 2019-01-30 15:38:07 +0800 |
---|---|---|
committer | chrome-bot <chrome-bot@chromium.org> | 2019-01-31 18:19:11 -0800 |
commit | be4160a3ed1e7f88432ea6552d61fad3642acf0e (patch) | |
tree | 313462c9b1d6d9cc3def44c1caa874d099b3e136 | |
parent | b0ae267a7451e440ae1d7b73dd42f905a8998f48 (diff) | |
download | chrome-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.c | 18 |
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, |