diff options
Diffstat (limited to 'board/voxel')
-rw-r--r-- | board/voxel/board.c | 24 | ||||
-rw-r--r-- | board/voxel/board.h | 1 |
2 files changed, 20 insertions, 5 deletions
diff --git a/board/voxel/board.c b/board/voxel/board.c index ef392b5afd..7b47ee0642 100644 --- a/board/voxel/board.c +++ b/board/voxel/board.c @@ -311,11 +311,6 @@ void board_reset_pd_mcu(void) */ } -__override void board_cbi_init(void) -{ - setup_board_tcpc(); -} - /******************************************************************************/ /* USB-A charging control */ @@ -330,11 +325,13 @@ struct ppc_config_t ppc_chips[] = { .i2c_port = I2C_PORT_USB_C0, .i2c_addr_flags = SYV682X_ADDR0_FLAGS, .drv = &syv682x_drv, + .frs_en = GPIO_USB_C0_FRS_EN, }, [USBC_PORT_C1] = { .i2c_port = I2C_PORT_USB_C1, .i2c_addr_flags = SYV682X_ADDR0_FLAGS, .drv = &syv682x_drv, + .frs_en = GPIO_USB_C1_FRS_EN, }, }; BUILD_ASSERT(ARRAY_SIZE(ppc_chips) == USBC_PORT_COUNT); @@ -355,6 +352,23 @@ void ppc_interrupt(enum gpio_signal signal) } } +/* Disable FRS on boards with the SYV682A. FRS only works on the SYV682B. */ +void setup_board_ppc(void) +{ + uint8_t board_id = get_board_id(); + + if (board_id < 2) { + ppc_chips[USBC_PORT_C0].frs_en = 0; + ppc_chips[USBC_PORT_C1].frs_en = 0; + } +} + +__override void board_cbi_init(void) +{ + setup_board_tcpc(); + setup_board_ppc(); +} + /******************************************************************************/ /* BC1.2 charger detect configuration */ const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = { diff --git a/board/voxel/board.h b/board/voxel/board.h index def9fcd153..bf92358030 100644 --- a/board/voxel/board.h +++ b/board/voxel/board.h @@ -92,6 +92,7 @@ /* USBC PPC*/ #define CONFIG_USBC_PPC_SYV682X /* USBC port C0/C1 */ +#define CONFIG_USB_PD_FRS_PPC /* BC 1.2 */ |