From 68d26f0c79e84339da960967066985912d30c1e8 Mon Sep 17 00:00:00 2001 From: kopecdav Date: Wed, 30 Apr 2025 20:36:34 +0200 Subject: [PATCH] fix(core): fix styles [no changelog] --- .../sys/power_manager/stm32u5/power_control.c | 45 +++++++++---------- .../sys/power_manager/stm32u5/power_manager.c | 30 +++++-------- .../power_manager/stm32u5/power_monitoring.c | 28 ++++-------- .../sys/power_manager/stm32u5/power_states.c | 1 - 4 files changed, 40 insertions(+), 64 deletions(-) diff --git a/core/embed/sys/power_manager/stm32u5/power_control.c b/core/embed/sys/power_manager/stm32u5/power_control.c index 69fb1bba33..9947805e6e 100644 --- a/core/embed/sys/power_manager/stm32u5/power_control.c +++ b/core/embed/sys/power_manager/stm32u5/power_control.c @@ -17,36 +17,33 @@ * along with this program. If not, see . */ - +#include #include #include -#include -#include "power_manager_internal.h" #include "../../powerctl/npm1300/npm1300.h" +#include "power_manager_internal.h" -pm_status_t pm_control_hibernate(){ +pm_status_t pm_control_hibernate() { + // TEMPORARY FIX: + // Enable Backup domain retentaion in VBAT mode before entering the + // hiberbation. BREN bit can be accessed only in LDO mode. + __HAL_RCC_PWR_CLK_ENABLE(); - // TEMPORARY FIX: - // Enable Backup domain retentaion in VBAT mode before entering the - // hiberbation. BREN bit can be accessed only in LDO mode. - __HAL_RCC_PWR_CLK_ENABLE(); - - // Switch to LDO regulator - CLEAR_BIT(PWR->CR3, PWR_CR3_REGSEL); - // Wait until system switch on new regulator - while (HAL_IS_BIT_SET(PWR->SVMSR, PWR_SVMSR_REGS)) - ; - // Enable backup domain retention - PWR->BDCR1 |= PWR_BDCR1_BREN; - - if (!npm1300_enter_shipmode()) { - return PM_ERROR; - } - - // Wait for the device to power off - systick_delay_ms(50); + // Switch to LDO regulator + CLEAR_BIT(PWR->CR3, PWR_CR3_REGSEL); + // Wait until system switch on new regulator + while (HAL_IS_BIT_SET(PWR->SVMSR, PWR_SVMSR_REGS)) + ; + // Enable backup domain retention + PWR->BDCR1 |= PWR_BDCR1_BREN; + if (!npm1300_enter_shipmode()) { return PM_ERROR; - + } + + // Wait for the device to power off + systick_delay_ms(50); + + return PM_ERROR; } diff --git a/core/embed/sys/power_manager/stm32u5/power_manager.c b/core/embed/sys/power_manager/stm32u5/power_manager.c index 5788d3b50d..54872ed30a 100644 --- a/core/embed/sys/power_manager/stm32u5/power_manager.c +++ b/core/embed/sys/power_manager/stm32u5/power_manager.c @@ -17,11 +17,11 @@ * along with this program. If not, see . */ +#include #include #include #include #include -#include #include "../../powerctl/npm1300/npm1300.h" #include "../../powerctl/stwlc38/stwlc38.h" @@ -59,41 +59,34 @@ pm_status_t pm_init(bool skip_bootup_sequence) { PM_FUEL_GAUGE_R_AGGRESSIVE, PM_FUEL_GAUGE_Q_AGGRESSIVE, PM_FUEL_GAUGE_P_INIT); - - if(skip_bootup_sequence) { - + if (skip_bootup_sequence) { // Skip bootup sequence and try to recover the power manages state left // by the bootloader in backup ram. backup_ram_power_manager_data_t pm_recovery_data; - backup_ram_status_t status - = backup_ram_read_power_manager_data(&pm_recovery_data); + backup_ram_status_t status = + backup_ram_read_power_manager_data(&pm_recovery_data); if (status != BACKUP_RAM_OK && (pm_recovery_data.bootloader_exit_state != PM_STATE_POWER_SAVE && pm_recovery_data.bootloader_exit_state != PM_STATE_ACTIVE)) { - drv->state = PM_STATE_POWER_SAVE; drv->fuel_gauge_request_new_guess = true; - }else{ - + } else { // Backup RAM contain valid data drv->state = pm_recovery_data.bootloader_exit_state; drv->fuel_gauge.soc = pm_recovery_data.soc; drv->fuel_gauge_request_new_guess = false; - } drv->fuel_gauge_initialized = true; - }else{ - + } else { // Start in lowest state and wait for the bootup sequence to // finish (call of pm_turn_on()) drv->state = PM_STATE_HIBERNATE; drv->initialized = false; - } // Disable charging by default @@ -241,9 +234,9 @@ pm_status_t pm_turn_on(void) { // Try to recover SoC from the backup RAM backup_ram_power_manager_data_t pm_recovery_data; backup_ram_status_t status = - backup_ram_read_power_manager_data(&pm_recovery_data); + backup_ram_read_power_manager_data(&pm_recovery_data); - if(status == BACKUP_RAM_OK && pm_recovery_data.soc != 0.0f) { + if (status == BACKUP_RAM_OK && pm_recovery_data.soc != 0.0f) { drv->fuel_gauge.soc = pm_recovery_data.soc; } else { pm_battery_initial_soc_guess(); @@ -314,7 +307,7 @@ pm_status_t pm_charging_disable(void) { return PM_OK; } -pm_status_t pm_store_data_to_backup_ram(void){ +pm_status_t pm_store_data_to_backup_ram(void) { pm_driver_t* drv = &g_pm; if (!drv->initialized) { @@ -325,8 +318,7 @@ pm_status_t pm_store_data_to_backup_ram(void){ pm_data.bootloader_exit_state = drv->state; pm_data.soc = drv->fuel_gauge.soc; - backup_ram_status_t status - = backup_ram_store_power_manager_data(&pm_data); + backup_ram_status_t status = backup_ram_store_power_manager_data(&pm_data); if (status != BACKUP_RAM_OK) { return PM_ERROR; @@ -345,5 +337,3 @@ static void pm_shutdown_timer_handler(void* context) { drv->shutdown_timer_elapsed = true; pm_process_state_machine(); } - - diff --git a/core/embed/sys/power_manager/stm32u5/power_monitoring.c b/core/embed/sys/power_manager/stm32u5/power_monitoring.c index f74c77e60b..175ba7931f 100644 --- a/core/embed/sys/power_manager/stm32u5/power_monitoring.c +++ b/core/embed/sys/power_manager/stm32u5/power_monitoring.c @@ -18,9 +18,9 @@ * along with this program. If not, see . */ +#include #include #include -#include #include "../../powerctl/fuel_gauge/fuel_gauge.h" #include "../../powerctl/npm1300/npm1300.h" @@ -37,43 +37,36 @@ void pm_monitor_power_sources(void) { // Update fuel gauge state if (drv->fuel_gauge_initialized) { - - if(drv->fuel_gauge_request_new_guess){ - + if (drv->fuel_gauge_request_new_guess) { // Request new single SoC guess based on the latest measurements fuel_gauge_initial_guess(&drv->fuel_gauge, drv->pmic_data.vbat, - drv->pmic_data.ibat, drv->pmic_data.ntc_temp); + drv->pmic_data.ibat, drv->pmic_data.ntc_temp); drv->fuel_gauge_request_new_guess = false; - }else{ - + } else { fuel_gauge_update(&drv->fuel_gauge, PM_BATTERY_SAMPLING_PERIOD_MS, - drv->pmic_data.vbat, drv->pmic_data.ibat, - drv->pmic_data.ntc_temp); + drv->pmic_data.vbat, drv->pmic_data.ibat, + drv->pmic_data.ntc_temp); // Ceil the float soc to user friendly integer - uint8_t soc_ceiled_temp = (int)(drv->fuel_gauge.soc_latched * 100 + 0.999f); + uint8_t soc_ceiled_temp = + (int)(drv->fuel_gauge.soc_latched * 100 + 0.999f); if (soc_ceiled_temp != drv->soc_ceiled) { drv->soc_ceiled = soc_ceiled_temp; PM_SET_EVENT(drv->event_flags, PM_EVENT_SOC_UPDATED); } - } } else { - pm_battery_sampling(drv->pmic_data.vbat, drv->pmic_data.ibat, drv->pmic_data.ntc_temp); // Battery sampling period, collect data before initial guess is made. fuel_gauge_initial_guess(&drv->fuel_gauge, drv->pmic_data.vbat, drv->pmic_data.ibat, drv->pmic_data.ntc_temp); - } - - // Check USB power source status if (drv->pmic_data.usb_status != 0x0) { if (!drv->usb_connected) { @@ -255,8 +248,7 @@ void pm_battery_initial_soc_guess(void) { fuel_gauge_initial_guess(&drv->fuel_gauge, vbat_g, ibat_g, ntc_temp_g); } -void pm_store_power_manager_data(pm_driver_t* drv){ - +void pm_store_power_manager_data(pm_driver_t* drv) { backup_ram_power_manager_data_t pm_data = {0}; // Store the current state of the power manager @@ -265,6 +257,4 @@ void pm_store_power_manager_data(pm_driver_t* drv){ // Store the data in backup RAM backup_ram_store_power_manager_data(&pm_data); - } - diff --git a/core/embed/sys/power_manager/stm32u5/power_states.c b/core/embed/sys/power_manager/stm32u5/power_states.c index 1c396c2e53..d43e21565c 100644 --- a/core/embed/sys/power_manager/stm32u5/power_states.c +++ b/core/embed/sys/power_manager/stm32u5/power_states.c @@ -309,7 +309,6 @@ void pm_enter_suspend(pm_driver_t* drv) { } void pm_enter_hibernate(pm_driver_t* drv) { - pm_store_power_manager_data(drv); reboot_device();