diff options
author | Todd Broch <tbroch@chromium.org> | 2015-02-12 11:22:34 -0800 |
---|---|---|
committer | ChromeOS Commit Bot <chromeos-commit-bot@chromium.org> | 2015-02-25 03:33:12 +0000 |
commit | e20d019fc4494d2340b227ed0c42c29ca39c85d3 (patch) | |
tree | 0116ec759d2c1365bfcdb2b26856b883a9c25981 /board/plankton | |
parent | c3cd10937e321f04c4b2dfc4786ec146e785e5cb (diff) | |
download | chrome-ec-e20d019fc4494d2340b227ed0c42c29ca39c85d3.tar.gz |
pd: Massage initialization at task start.
Refactoring effort to unify the set of PD intialization tasks that
need to occur. Those areas include:
1. host mode as it relates to power & pull-ups/downs
2. PD tx init
3. PD mux settings
Signed-off-by: Todd Broch <tbroch@chromium.org>
BRANCH=samus
BUG=chrome-os-partner:36481
TEST=manual,
1. compiles and functions on samus_pd
2. If sysjump w/ dongle connected than alternate mode re-entered
properly including muxing and HPD
Change-Id: I47f32acaeccbd7745e1e01a8b085b1804c4c5000
Reviewed-on: https://chromium-review.googlesource.com/249273
Reviewed-by: Alec Berg <alecaberg@chromium.org>
Tested-by: Alec Berg <alecaberg@chromium.org>
Commit-Queue: Alec Berg <alecaberg@chromium.org>
Diffstat (limited to 'board/plankton')
-rw-r--r-- | board/plankton/usb_pd_config.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/board/plankton/usb_pd_config.h b/board/plankton/usb_pd_config.h index c1fefbcf7e..23bdd82d0e 100644 --- a/board/plankton/usb_pd_config.h +++ b/board/plankton/usb_pd_config.h @@ -133,12 +133,24 @@ static inline void pd_set_host_mode(int port, int enable) * Initialize various GPIOs and interfaces to safe state at start of pd_task. * * These include: + * VBUS, charge path based on power role. + * Physical layer CC transmit. * VCONNs disabled. * - * @param port USB-C port number + * @param port USB-C port number + * @param power_role Power role of device */ -static inline void pd_config_init(int port) +static inline void pd_config_init(int port, uint8_t power_role) { + /* + * Set CC pull resistors, and charge_en and vbus_en GPIOs to match + * the initial role. + */ + pd_set_host_mode(port, power_role); + + /* Initialize TX pins and put them in Hi-Z */ + pd_tx_init(); + gpio_set_level(GPIO_USB_CC1_VCONN_EN_L, 1); gpio_set_level(GPIO_USB_CC2_VCONN_EN_L, 1); } |