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

This commit is contained in:
Sergey Vlasov 2023-07-03 01:53:54 +03:00 committed by GitHub
parent 000ee31e2c
commit b708658e2e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -22,8 +22,6 @@
// Initialises the USBPD subsystem // Initialises the USBPD subsystem
__attribute__((weak)) void usbpd_init(void) { __attribute__((weak)) void usbpd_init(void) {
// Disable dead-battery signals
PWR->CR3 |= PWR_CR3_UCPD_DBDIS;
// Enable the clock for the UCPD1 peripheral // Enable the clock for the UCPD1 peripheral
RCC->APB1ENR2 |= RCC_APB1ENR2_UCPD1EN; RCC->APB1ENR2 |= RCC_APB1ENR2_UCPD1EN;
@ -46,6 +44,11 @@ __attribute__((weak)) void usbpd_init(void) {
CR |= UCPD_CR_ANAMODE | UCPD_CR_CCENABLE_Msk; CR |= UCPD_CR_ANAMODE | UCPD_CR_CCENABLE_Msk;
// Apply the changes // Apply the changes
UCPD1->CR = CR; 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 // Gets the current state of the USBPD allowance