summaryrefslogtreecommitdiff
path: root/board/dalboz
diff options
context:
space:
mode:
Diffstat (limited to 'board/dalboz')
-rw-r--r--board/dalboz/board.c21
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, &reg);
+ 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;