diff options
author | Paul Ma <magf@bitland.corp-partner.google.com> | 2020-04-26 10:46:30 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-04-26 09:34:47 +0000 |
commit | 486d49750715c5ca5ff279b04e3f9b95fc8541d3 (patch) | |
tree | 3d991678b5306568fcc12df0ab7b8ab88133feb1 /board/dalboz | |
parent | d14696499ad6b9cdbc92362f98d29c8c5b5492e9 (diff) | |
download | chrome-ec-486d49750715c5ca5ff279b04e3f9b95fc8541d3.tar.gz |
dalboz: let i2c control ps8743 DP/USB/FLIP selection
Let i2c control ps8743 DP/USB/FLIP selection. Do not use any
GPIO.
BUG=b:154957683
BRANCH=none
TEST=build and boot dalboz, verify USB2/USB3/DP work well.
Change-Id: Ibb9a258a30e4433f5fcd4196ac6ccebbc0719bfe
Signed-off-by: Paul Ma <magf@bitland.corp-partner.google.com>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2167111
Reviewed-by: Edward Hill <ecgh@chromium.org>
Commit-Queue: Edward Hill <ecgh@chromium.org>
Diffstat (limited to 'board/dalboz')
-rw-r--r-- | board/dalboz/board.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/board/dalboz/board.c b/board/dalboz/board.c index 412661fbba..85d7f32b11 100644 --- a/board/dalboz/board.c +++ b/board/dalboz/board.c @@ -158,6 +158,26 @@ void pcal6408_interrupt(enum gpio_signal signal) hook_call_deferred(&pcal6408_handler_data, 0); } +static int board_ps8743_mux_set(const struct usb_mux *me, + mux_state_t mux_state) +{ + int rv = EC_SUCCESS; + int reg = 0; + + rv = ps8743_read(me, PS8743_REG_MODE, ®); + if (rv) + return rv; + + /* Disable FLIP pin, enable I2C control. */ + reg |= PS8743_MODE_FLIP_REG_CONTROL; + /* Disable CE_USB pin, enable I2C control. */ + reg |= PS8743_MODE_USB_REG_CONTROL; + /* Disable CE_DP pin, enable I2C control. */ + reg |= PS8743_MODE_DP_REG_CONTROL; + + return ps8743_write(me, PS8743_REG_MODE, reg); +} + static void setup_fw_config(void) { uint32_t board_version = 0; @@ -167,6 +187,7 @@ static void setup_fw_config(void) ccprints("PS8743 USB MUX"); usb_muxes[USBC_PORT_C1].i2c_addr_flags = PS8743_I2C_ADDR1_FLAG; usb_muxes[USBC_PORT_C1].driver = &ps8743_usb_mux_driver; + usb_muxes[USBC_PORT_C1].board_set = &board_ps8743_mux_set; } else { ccprints("PS8740 USB MUX"); usb_muxes[USBC_PORT_C1].i2c_addr_flags = PS8740_I2C_ADDR0_FLAG; |