~ruther/qmk_firmware

b708658e2ea184402f6fad152c7596cbb40df508 — Sergey Vlasov 2 years ago 000ee31
usbpd_stm32g4: Configure UCPD before disabling the dead battery mode (#21430)

1 files changed, 5 insertions(+), 2 deletions(-)

M platforms/chibios/drivers/usbpd_stm32g4.c
M platforms/chibios/drivers/usbpd_stm32g4.c => platforms/chibios/drivers/usbpd_stm32g4.c +5 -2
@@ 22,8 22,6 @@

// Initialises the USBPD subsystem
__attribute__((weak)) void usbpd_init(void) {
    // Disable dead-battery signals
    PWR->CR3 |= PWR_CR3_UCPD_DBDIS;
    // Enable the clock for the UCPD1 peripheral
    RCC->APB1ENR2 |= RCC_APB1ENR2_UCPD1EN;



@@ 46,6 44,11 @@ __attribute__((weak)) void usbpd_init(void) {
    CR |= UCPD_CR_ANAMODE | UCPD_CR_CCENABLE_Msk;
    // Apply the changes
    UCPD1->CR = CR;

    // Disable dead-battery signals only after UCPD1 is configured to ensure
    // that the transition does not go through any intermediate state without
    // any pull-down resistance.
    PWR->CR3 |= PWR_CR3_UCPD_DBDIS;
}

// Gets the current state of the USBPD allowance