diff options
Diffstat (limited to 'board/nami/board.c')
-rw-r--r-- | board/nami/board.c | 40 |
1 files changed, 16 insertions, 24 deletions
diff --git a/board/nami/board.c b/board/nami/board.c index 09e9419273..3fd6ee4631 100644 --- a/board/nami/board.c +++ b/board/nami/board.c @@ -266,6 +266,21 @@ static int ps8751_tune_mux(const struct usb_mux *mux) return EC_SUCCESS; } +static int board_anx7447_mux_set(int port, mux_state_t mux_state) +{ + int rv = EC_SUCCESS; + + if (gpio_get_level(GPIO_CCD_MODE_ODL)) + return rv; + + CPRINTS("C%d: set AUX_SW_SEL=0x%x", port, 0xc); + rv = tcpc_write(port, ANX7447_REG_TCPC_AUX_SWITCH, 0xc); + if (rv) + CPRINTS("C%d: Setting AUX_SW_SEL failed", port); + + return rv; +} + struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_COUNT] = { [USB_PD_PORT_PS8751] = { .port_addr = USB_PD_PORT_PS8751, @@ -275,6 +290,7 @@ struct usb_mux usb_muxes[CONFIG_USB_PD_PORT_COUNT] = { [USB_PD_PORT_ANX7447] = { .port_addr = USB_PD_PORT_ANX7447, .driver = &anx7447_usb_mux_driver, + .board_set = board_anx7447_mux_set, .hpd_update = &anx7447_tcpc_update_hpd_status, } }; @@ -1075,26 +1091,6 @@ struct keyboard_scan_config keyscan_config = { }, }; -static void anx7447_set_aux_switch(void) -{ - const int port = USB_PD_PORT_ANX7447; - - /* Debounce */ - if (gpio_get_level(GPIO_CCD_MODE_ODL)) - return; - - CPRINTS("C%d: AUX_SW_SEL=0x%x", port, 0xc); - if (tcpc_write(port, ANX7447_REG_TCPC_AUX_SWITCH, 0xc)) - CPRINTS("C%d: Setting AUX_SW_SEL failed", port); -} -DECLARE_DEFERRED(anx7447_set_aux_switch); - -void ccd_mode_isr(enum gpio_signal signal) -{ - /* Wait 2 seconds until all mux setting is done by PD task */ - hook_call_deferred(&anx7447_set_aux_switch_data, 2 * SECOND); -} - static void board_init(void) { int reg; @@ -1127,10 +1123,6 @@ static void board_init(void) gpio_enable_interrupt(GPIO_USB_C0_BC12_INT_L); gpio_enable_interrupt(GPIO_USB_C1_BC12_INT_L); - /* Trigger once to set mux in case CCD cable is already connected. */ - ccd_mode_isr(GPIO_CCD_MODE_ODL); - gpio_enable_interrupt(GPIO_CCD_MODE_ODL); - /* Enable Accel/Gyro interrupt for convertibles. */ if (sku & SKU_ID_MASK_CONVERTIBLE) gpio_enable_interrupt(GPIO_ACCELGYRO3_INT_L); |