summaryrefslogtreecommitdiff
path: root/driver/usb_mux
diff options
context:
space:
mode:
authorEdward Hill <ecgh@chromium.org>2020-06-02 18:28:26 -0600
committerCommit Bot <commit-bot@chromium.org>2020-06-03 05:39:13 +0000
commit5124d453200ce13dfd8badfcd2c56e57334df2df (patch)
treeb397b594cf13c79c77beeebf7bb7ec5b2c03bb86 /driver/usb_mux
parentce804f34ccb7c65fc4711c01eac63ceb8c008e26 (diff)
downloadchrome-ec-5124d453200ce13dfd8badfcd2c56e57334df2df.tar.gz
Zork: Switch PS8743 from IOEX_USB_C1_DATA_EN to I2C
Align all Zork devices on using I2C control of PS8743 mux mode, and stop using IOEX_USB_C1_DATA_EN signal/pin. This matches what we were already doing for Dalboz, and gives power savings in both S0 and S3 when nothing is plugged in and mux is set to none. BUG=b:157951317 BRANCH=none TEST=external display and i2ctrace on ezkinil Signed-off-by: Edward Hill <ecgh@chromium.org> Change-Id: Id1c8b172a99bb25bed8b57e90686d933447432f2 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2227589 Reviewed-by: Denis Brockus <dbrockus@chromium.org> Commit-Queue: Denis Brockus <dbrockus@chromium.org>
Diffstat (limited to 'driver/usb_mux')
-rw-r--r--driver/usb_mux/ps8743.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/driver/usb_mux/ps8743.c b/driver/usb_mux/ps8743.c
index 413b37e322..982bfbd91e 100644
--- a/driver/usb_mux/ps8743.c
+++ b/driver/usb_mux/ps8743.c
@@ -74,7 +74,13 @@ static int ps8743_init(const struct usb_mux *me)
/* Writes control register to set switch mode */
static int ps8743_set_mux(const struct usb_mux *me, mux_state_t mux_state)
{
- uint8_t reg = 0;
+ /*
+ * For CE_DP, CE_USB, and FLIP, disable pin control and enable I2C
+ * control.
+ */
+ uint8_t reg = (PS8743_MODE_DP_REG_CONTROL |
+ PS8743_MODE_USB_REG_CONTROL |
+ PS8743_MODE_FLIP_REG_CONTROL);
if (mux_state & USB_PD_MUX_USB_ENABLED)
reg |= PS8743_MODE_USB_ENABLE;