qmk_firmware

QMK firmware for my keyboards (Corne, Sweep Ferris) and trackball (Ploopy Adept)
Log | Files | Refs | Submodules | LICENSE

commit b708658e2ea184402f6fad152c7596cbb40df508
parent 000ee31e2c64ad374b93be5a98f5529c48446188
Author: Sergey Vlasov <sigprof@gmail.com>
Date:   Mon,  3 Jul 2023 01:53:54 +0300

usbpd_stm32g4: Configure UCPD before disabling the dead battery mode (#21430)


Diffstat:
Mplatforms/chibios/drivers/usbpd_stm32g4.c | 7+++++--
1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/platforms/chibios/drivers/usbpd_stm32g4.c b/platforms/chibios/drivers/usbpd_stm32g4.c @@ -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