diff options
author | Todd Broch <tbroch@chromium.org> | 2014-08-27 16:15:31 -0700 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2014-09-04 10:41:53 +0000 |
commit | c3a1a633794477ad0b897ae054934691629ff8ce (patch) | |
tree | 805aefbe4f654383cbaf90dd739f53d327474b2e | |
parent | e46e738e00b8a89722acd82b58f9dd5323be422e (diff) | |
download | chrome-ec-c3a1a633794477ad0b897ae054934691629ff8ce.tar.gz |
pd: Set pd mux to USB 3.0 (superspeed) initially.
BRANCH=manual
BUG=chrome-os-partner:28585
TEST=manual,
Plug USB 3.0 capable device in both ports and both polarites on samus
and see device enumerate as superspeed. For example,
usb 2-3: new SuperSpeed USB device number 6 using xhci_hcd
In order you must first connected device (hoho) prior to configuring
mux via 'ectool --dev=1 --interface=lpc usbpd <port> dp'
Change-Id: Ia6b8a714ce9ae1539769399e51ff245d00202171
Signed-off-by: Todd Broch <tbroch@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/214579
Reviewed-by: Alec Berg <alecaberg@chromium.org>
Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
(cherry picked from commit 2f4de76850dc6323febbbcf0b207a3fa2c8b211a)
Reviewed-on: https://chromium-review.googlesource.com/216254
Commit-Queue: Vic Yang <victoryang@chromium.org>
Tested-by: Vic Yang <victoryang@chromium.org>
-rw-r--r-- | common/usb_pd_protocol.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/common/usb_pd_protocol.c b/common/usb_pd_protocol.c index a8c22d9c69..3ab4719bb5 100644 --- a/common/usb_pd_protocol.c +++ b/common/usb_pd_protocol.c @@ -253,6 +253,12 @@ static inline void set_state(int port, enum pd_states next_state) set_state_timeout(port, 0, 0); pd[port].task_state = next_state; +#ifdef CONFIG_USBC_SS_MUX + if (next_state == PD_STATE_SRC_DISCONNECTED) + board_set_usb_mux(port, TYPEC_MUX_NONE, + pd[port].polarity); +#endif + /* Log state transition, except for toggling between sink and source */ if (last_state == next_state) return; @@ -1191,6 +1197,11 @@ void pd_task(void) (cc2_volt < PD_SRC_VNC)) { pd[port].polarity = !(cc1_volt < PD_SRC_VNC); pd_select_polarity(port, pd[port].polarity); + /* Set to USB SS initially */ +#ifdef CONFIG_USBC_SS_MUX + board_set_usb_mux(port, TYPEC_MUX_USB, + pd[port].polarity); +#endif /* Enable VBUS */ pd_set_power_supply_ready(port); set_state(port, PD_STATE_SRC_DISCOVERY); |