mirror of
https://github.com/trezor/trezor-firmware.git
synced 2025-08-04 21:05:29 +00:00
style(core): fix cstyles [no changelog]
This commit is contained in:
parent
a3ab75b5aa
commit
892a1b8171
@ -25,9 +25,9 @@
|
||||
#include <io/nrf.h>
|
||||
#include <sys/irq.h>
|
||||
#include <sys/mpu.h>
|
||||
#include <sys/power_manager.h>
|
||||
#include <sys/systick.h>
|
||||
#include <sys/systimer.h>
|
||||
#include <sys/power_manager.h>
|
||||
#include <util/tsqueue.h>
|
||||
|
||||
#include "../crc8.h"
|
||||
|
@ -312,10 +312,9 @@ void prodtest_pm_event_monitor(cli_t* cli) {
|
||||
}
|
||||
|
||||
cli_progress(cli, "%s %s %d %d %d",
|
||||
state.usb_connected ? "USB_connected" : "USB_disconnected",
|
||||
state.wireless_connected ? "WLC_connected" : "WLC_disconnected",
|
||||
state.charging_status, state.power_state, state.soc);
|
||||
|
||||
state.usb_connected ? "USB_connected" : "USB_disconnected",
|
||||
state.wireless_connected ? "WLC_connected" : "WLC_disconnected",
|
||||
state.charging_status, state.power_state, state.soc);
|
||||
|
||||
cli_ok(cli, "");
|
||||
}
|
||||
|
@ -22,14 +22,13 @@
|
||||
#include <trezor_rtl.h>
|
||||
|
||||
#include <rtl/cli.h>
|
||||
#include <sys/systick.h>
|
||||
#include <sys/power_manager.h>
|
||||
#include <sys/systick.h>
|
||||
|
||||
#include <stdlib.h>
|
||||
#include "../stwlc38/stwlc38.h"
|
||||
|
||||
static void prodtest_wpc_info(cli_t* cli) {
|
||||
|
||||
if (cli_arg_count(cli) > 0) {
|
||||
cli_error_arg_count(cli);
|
||||
return;
|
||||
@ -41,7 +40,6 @@ static void prodtest_wpc_info(cli_t* cli) {
|
||||
// Deinit power manager to not interfere with STWLC38
|
||||
pm_deinit();
|
||||
|
||||
|
||||
stwlc38_init();
|
||||
|
||||
cli_trace(cli, "Reading STWLC38 info...");
|
||||
@ -77,7 +75,6 @@ static void prodtest_wpc_info(cli_t* cli) {
|
||||
cli_trace(cli, " nvm_patch_err: 0x%X ", chip_info.nvm_patch_err);
|
||||
cli_trace(cli, " nvm_prod_info_err: 0x%X ", chip_info.nvm_prod_info_err);
|
||||
|
||||
|
||||
stwlc38_deinit();
|
||||
|
||||
// initlize power manager again
|
||||
@ -97,7 +94,6 @@ cleanup:
|
||||
cli_error(cli, CLI_ERROR, "Failed to reinitialize power manager.");
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
static void prodtest_wpc_update(cli_t* cli) {
|
||||
|
@ -148,7 +148,7 @@ backup_ram_status_t backup_ram_erase_unused(void) {
|
||||
}
|
||||
|
||||
backup_ram_status_t backup_ram_store_power_manager_data(
|
||||
const backup_ram_power_manager_data_t *pm_data) {
|
||||
const backup_ram_power_manager_data_t *pm_data) {
|
||||
backup_ram_driver_t *drv = &backup_ram_driver;
|
||||
|
||||
if (!drv->initialized) {
|
||||
|
@ -31,7 +31,7 @@ void fuel_gauge_init(fuel_gauge_state_t* state, float R, float Q,
|
||||
// Initialize state
|
||||
state->soc = 0.0f;
|
||||
state->soc_latched = 0.0f;
|
||||
state->P = P_init; // Initial error covariance
|
||||
state->P = P_init; // Initial error covariance
|
||||
}
|
||||
|
||||
void fuel_gauge_reset(fuel_gauge_state_t* state) {
|
||||
@ -44,7 +44,7 @@ void fuel_gauge_set_soc(fuel_gauge_state_t* state, float soc, float P) {
|
||||
// Set SOC directly
|
||||
state->soc = soc;
|
||||
state->soc_latched = soc;
|
||||
state->P = P; // Set error covariance
|
||||
state->P = P; // Set error covariance
|
||||
}
|
||||
|
||||
void fuel_gauge_initial_guess(fuel_gauge_state_t* state, float voltage_V,
|
||||
@ -60,8 +60,8 @@ void fuel_gauge_initial_guess(fuel_gauge_state_t* state, float voltage_V,
|
||||
state->soc_latched = state->soc;
|
||||
}
|
||||
|
||||
float fuel_gauge_update(fuel_gauge_state_t* state, uint32_t dt_ms, float voltage_V,
|
||||
float current_mA, float temperature) {
|
||||
float fuel_gauge_update(fuel_gauge_state_t* state, uint32_t dt_ms,
|
||||
float voltage_V, float current_mA, float temperature) {
|
||||
// Determine if we're in discharge mode
|
||||
bool discharging_mode = current_mA >= 0.0f;
|
||||
|
||||
|
@ -80,5 +80,5 @@ void fuel_gauge_initial_guess(fuel_gauge_state_t* state, float voltage_V,
|
||||
* @param temperature Battery temperature (°C)
|
||||
* @return Updated SOC estimate (0.0 to 1.0)
|
||||
*/
|
||||
float fuel_gauge_update(fuel_gauge_state_t* state, uint32_t dt_ms, float voltage_V,
|
||||
float current_mA, float temperature);
|
||||
float fuel_gauge_update(fuel_gauge_state_t* state, uint32_t dt_ms,
|
||||
float voltage_V, float current_mA, float temperature);
|
||||
|
@ -23,11 +23,11 @@
|
||||
|
||||
typedef enum {
|
||||
PM_WAKEUP_FLAG_BUTTON = 0x1 << 0, // Button pressed
|
||||
PM_WAKEUP_FLAG_WPC = 0x1 << 1, // Wireless power charging event
|
||||
PM_WAKEUP_FLAG_BLE = 0x1 << 2, // Bluetooth connection event
|
||||
PM_WAKEUP_FLAG_NFC = 0x1 << 3, // NFC event
|
||||
PM_WAKEUP_FLAG_USB = 0x1 << 4, // USB event
|
||||
PM_WAKEUP_FLAG_TIMER = 0x1 << 5, // Timer event
|
||||
PM_WAKEUP_FLAG_WPC = 0x1 << 1, // Wireless power charging event
|
||||
PM_WAKEUP_FLAG_BLE = 0x1 << 2, // Bluetooth connection event
|
||||
PM_WAKEUP_FLAG_NFC = 0x1 << 3, // NFC event
|
||||
PM_WAKEUP_FLAG_USB = 0x1 << 4, // USB event
|
||||
PM_WAKEUP_FLAG_TIMER = 0x1 << 5, // Timer event
|
||||
} pm_wakeup_flags_t;
|
||||
|
||||
/* API return status codes */
|
||||
@ -111,4 +111,3 @@ pm_status_t pm_wait_until_active(uint32_t timeout_ms);
|
||||
pm_status_t pm_wakeup_flags_set(pm_wakeup_flags_t flags);
|
||||
pm_status_t pm_wakeup_flags_reset(void);
|
||||
pm_status_t pm_wakeup_flags_get(pm_wakeup_flags_t* flags);
|
||||
|
||||
|
@ -77,7 +77,7 @@ pm_status_t pm_control_hibernate() {
|
||||
}
|
||||
|
||||
// Wait for the device to power off
|
||||
//systick_delay_ms(50);
|
||||
// systick_delay_ms(50);
|
||||
|
||||
return PM_ERROR;
|
||||
}
|
||||
@ -206,9 +206,6 @@ void pm_control_suspend() {
|
||||
#ifdef USE_TROPIC
|
||||
tropic_init();
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
static void pm_background_tasks_suspend(void) {
|
||||
|
@ -59,7 +59,6 @@ pm_status_t pm_init(bool inherit_state) {
|
||||
PM_FUEL_GAUGE_R_AGGRESSIVE, PM_FUEL_GAUGE_Q_AGGRESSIVE,
|
||||
PM_FUEL_GAUGE_P_INIT);
|
||||
|
||||
|
||||
// Create monitoring timer
|
||||
drv->monitoring_timer = systimer_create(pm_monitoring_timer_handler, NULL);
|
||||
systimer_set_periodic(drv->monitoring_timer, PM_BATTERY_SAMPLING_PERIOD_MS);
|
||||
@ -70,44 +69,38 @@ pm_status_t pm_init(bool inherit_state) {
|
||||
// Initial power source measurement
|
||||
npm1300_measure(pm_pmic_data_ready, NULL);
|
||||
|
||||
|
||||
// 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);
|
||||
|
||||
if (status == BACKUP_RAM_OK) {
|
||||
fuel_gauge_set_soc(&drv->fuel_gauge, pm_recovery_data.soc, pm_recovery_data.P);
|
||||
fuel_gauge_set_soc(&drv->fuel_gauge, pm_recovery_data.soc,
|
||||
pm_recovery_data.P);
|
||||
} else {
|
||||
// Wait for 1s to sample battery data
|
||||
systick_delay_ms(1000);
|
||||
pm_battery_initial_soc_guess();
|
||||
}
|
||||
|
||||
if(inherit_state){
|
||||
|
||||
if (inherit_state) {
|
||||
// Inherit power manager state left in beckup RAM from bootloader.
|
||||
// in case of error, start with PM_STATE_POWER_SAVE as a lowest state in
|
||||
// active mode.
|
||||
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;
|
||||
(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;
|
||||
|
||||
} else {
|
||||
|
||||
// Backup RAM contain valid data
|
||||
drv->state = pm_recovery_data.bootloader_exit_state;
|
||||
|
||||
}
|
||||
|
||||
}else{
|
||||
|
||||
} else {
|
||||
// Start in lowest state and wait for the bootup sequence to
|
||||
// finish (call of pm_turn_on())
|
||||
drv->state = PM_STATE_HIBERNATE;
|
||||
|
||||
}
|
||||
|
||||
// Fuel gauge SoC available, set fuel_gauge initialized.
|
||||
@ -119,11 +112,11 @@ pm_status_t pm_init(bool inherit_state) {
|
||||
// Poll until fuel_gauge is initialized and first PMIC & WLC measurements
|
||||
// propagates into power_monitor.
|
||||
bool state_machine_stabilized;
|
||||
do{
|
||||
do {
|
||||
irq_key_t irq_key = irq_lock();
|
||||
state_machine_stabilized = drv->state_machine_stabilized;
|
||||
irq_unlock(irq_key);
|
||||
}while(!state_machine_stabilized);
|
||||
} while (!state_machine_stabilized);
|
||||
|
||||
drv->initialized = true;
|
||||
|
||||
@ -143,7 +136,7 @@ void pm_deinit(void) {
|
||||
drv->shutdown_timer = NULL;
|
||||
}
|
||||
|
||||
if(drv->fuel_gauge_initialized){
|
||||
if (drv->fuel_gauge_initialized) {
|
||||
pm_store_data_to_backup_ram();
|
||||
}
|
||||
|
||||
@ -151,7 +144,6 @@ void pm_deinit(void) {
|
||||
stwlc38_deinit();
|
||||
|
||||
drv->initialized = false;
|
||||
|
||||
}
|
||||
|
||||
pm_status_t pm_get_events(pm_event_t* event_flags) {
|
||||
@ -228,7 +220,6 @@ pm_status_t pm_hibernate(void) {
|
||||
|
||||
// Whenever hibernation request fall through, request was rejected
|
||||
return PM_REQUEST_REJECTED;
|
||||
|
||||
}
|
||||
|
||||
pm_status_t pm_turn_on(void) {
|
||||
@ -240,16 +231,16 @@ pm_status_t pm_turn_on(void) {
|
||||
|
||||
// Poll until at least single PMIC measurement is done
|
||||
uint32_t pmic_last_update_ms;
|
||||
do{
|
||||
do {
|
||||
irq_key_t irq_key = irq_lock();
|
||||
pmic_last_update_ms = drv->pmic_last_update_ms;
|
||||
irq_unlock(irq_key);
|
||||
} while(pmic_last_update_ms == 0);
|
||||
} while (pmic_last_update_ms == 0);
|
||||
|
||||
// Check if device has enough power to startup
|
||||
if(drv->pmic_data.usb_status == 0x0 &&
|
||||
drv->pmic_data.vbat < PM_BATTERY_UNDERVOLT_RECOVERY_THR_V){
|
||||
return PM_REQUEST_REJECTED;
|
||||
if (drv->pmic_data.usb_status == 0x0 &&
|
||||
drv->pmic_data.vbat < PM_BATTERY_UNDERVOLT_RECOVERY_THR_V) {
|
||||
return PM_REQUEST_REJECTED;
|
||||
}
|
||||
|
||||
drv->request_turn_on = true;
|
||||
@ -350,22 +341,20 @@ pm_status_t pm_store_data_to_backup_ram() {
|
||||
return PM_OK;
|
||||
}
|
||||
|
||||
pm_status_t pm_wait_until_active(uint32_t timeout_ms){
|
||||
|
||||
pm_status_t pm_wait_until_active(uint32_t timeout_ms) {
|
||||
pm_driver_t* drv = &g_pm;
|
||||
uint32_t expire_time = ticks_timeout(timeout_ms);
|
||||
|
||||
while(1){
|
||||
|
||||
if(ticks_expired(expire_time)){
|
||||
while (1) {
|
||||
if (ticks_expired(expire_time)) {
|
||||
// Timeout expired
|
||||
return PM_REQUEST_REJECTED;
|
||||
}
|
||||
|
||||
if((drv->state == PM_STATE_ACTIVE) || (drv->state == PM_STATE_POWER_SAVE)){
|
||||
if ((drv->state == PM_STATE_ACTIVE) ||
|
||||
(drv->state == PM_STATE_POWER_SAVE)) {
|
||||
return PM_OK;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return PM_OK;
|
||||
@ -396,8 +385,7 @@ pm_status_t pm_wakeup_flags_reset(void) {
|
||||
return PM_OK;
|
||||
}
|
||||
|
||||
pm_status_t pm_wakeup_flags_get(pm_wakeup_flags_t *flags) {
|
||||
|
||||
pm_status_t pm_wakeup_flags_get(pm_wakeup_flags_t* flags) {
|
||||
pm_driver_t* drv = &g_pm;
|
||||
|
||||
if (!drv->initialized) {
|
||||
@ -408,10 +396,8 @@ pm_status_t pm_wakeup_flags_get(pm_wakeup_flags_t *flags) {
|
||||
*flags = drv->wakeup_flags;
|
||||
irq_unlock(irq_key);
|
||||
return PM_OK;
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Timer handlers
|
||||
static void pm_monitoring_timer_handler(void* context) {
|
||||
pm_monitor_power_sources();
|
||||
|
@ -75,22 +75,20 @@ void pm_monitor_power_sources(void) {
|
||||
|
||||
// Fuel gauge not initialized yet, battery SoC not available,
|
||||
// Sample the battery data into the circular buffer, request new PMIC
|
||||
if(!drv->fuel_gauge_initialized){
|
||||
|
||||
if (!drv->fuel_gauge_initialized) {
|
||||
pm_battery_sampling(drv->pmic_data.vbat, drv->pmic_data.ibat,
|
||||
drv->pmic_data.ntc_temp);
|
||||
drv->pmic_data.ntc_temp);
|
||||
|
||||
// Request fresh measurements
|
||||
npm1300_measure(pm_pmic_data_ready, NULL);
|
||||
drv->pmic_measurement_ready = false;
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
fuel_gauge_update(&drv->fuel_gauge, drv->pmic_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);
|
||||
@ -117,7 +115,6 @@ void pm_monitor_power_sources(void) {
|
||||
drv->pmic_measurement_ready = false;
|
||||
|
||||
drv->state_machine_stabilized = true;
|
||||
|
||||
}
|
||||
|
||||
// PMIC measurement callback
|
||||
@ -125,7 +122,7 @@ void pm_pmic_data_ready(void* context, npm1300_report_t* report) {
|
||||
pm_driver_t* drv = &g_pm;
|
||||
|
||||
// Store measurement timestamp
|
||||
if(drv->pmic_last_update_ms == 0) {
|
||||
if (drv->pmic_last_update_ms == 0) {
|
||||
drv->pmic_sampling_period_ms = PM_BATTERY_SAMPLING_PERIOD_MS;
|
||||
} else {
|
||||
// Timeout, reset the last update timestamp
|
||||
|
@ -98,9 +98,7 @@ void pm_process_state_machine(void) {
|
||||
|
||||
// State handler implementations
|
||||
|
||||
|
||||
pm_internal_state_t pm_handle_state_hibernate(pm_driver_t* drv) {
|
||||
|
||||
if (drv->request_turn_on) {
|
||||
drv->request_turn_on = false;
|
||||
return PM_STATE_POWER_SAVE;
|
||||
@ -124,7 +122,6 @@ pm_internal_state_t pm_handle_state_hibernate(pm_driver_t* drv) {
|
||||
}
|
||||
|
||||
pm_internal_state_t pm_handle_state_charging(pm_driver_t* drv) {
|
||||
|
||||
if (drv->request_turn_on) {
|
||||
drv->request_turn_on = false;
|
||||
return PM_STATE_POWER_SAVE;
|
||||
@ -166,11 +163,10 @@ pm_internal_state_t pm_handle_state_startup_rejected(pm_driver_t* drv) {
|
||||
}
|
||||
|
||||
pm_internal_state_t pm_handle_state_shutting_down(pm_driver_t* drv) {
|
||||
|
||||
// System is shutting down, but user can still hibernate the device early.
|
||||
if (drv->request_hibernate) {
|
||||
drv->request_hibernate = false;
|
||||
return PM_STATE_HIBERNATE;
|
||||
drv->request_hibernate = false;
|
||||
return PM_STATE_HIBERNATE;
|
||||
}
|
||||
|
||||
// Return to power save if external power or battery recovered
|
||||
@ -187,7 +183,6 @@ pm_internal_state_t pm_handle_state_shutting_down(pm_driver_t* drv) {
|
||||
}
|
||||
|
||||
pm_internal_state_t pm_handle_state_power_save(pm_driver_t* drv) {
|
||||
|
||||
// Handle hibernate request
|
||||
if (drv->request_hibernate) {
|
||||
drv->request_hibernate = false;
|
||||
@ -214,7 +209,6 @@ pm_internal_state_t pm_handle_state_power_save(pm_driver_t* drv) {
|
||||
}
|
||||
|
||||
pm_internal_state_t pm_handle_state_active(pm_driver_t* drv) {
|
||||
|
||||
// Handle hibernate request
|
||||
if (drv->request_hibernate) {
|
||||
drv->request_hibernate = false;
|
||||
@ -244,7 +238,6 @@ void pm_enter_hibernate(pm_driver_t* drv) {
|
||||
// will try to hibernate immediately after reboot.
|
||||
pm_store_data_to_backup_ram();
|
||||
reboot_device();
|
||||
|
||||
}
|
||||
|
||||
void pm_enter_charging(pm_driver_t* drv) {
|
||||
@ -254,7 +247,6 @@ void pm_enter_charging(pm_driver_t* drv) {
|
||||
void pm_enter_suspend(pm_driver_t* drv) {
|
||||
PM_SET_EVENT(drv->event_flags, PM_EVENT_ENTERED_MODE_SUSPEND);
|
||||
pm_control_suspend();
|
||||
|
||||
}
|
||||
|
||||
void pm_enter_shutting_down(pm_driver_t* drv) {
|
||||
@ -275,15 +267,8 @@ void pm_enter_active(pm_driver_t* drv) {
|
||||
PM_SET_EVENT(drv->event_flags, PM_EVENT_ENTERED_MODE_ACTIVE);
|
||||
}
|
||||
|
||||
|
||||
void pm_exit_shutting_down(pm_driver_t* drv) {
|
||||
// Stop the shutdown timer
|
||||
systimer_unset(drv->shutdown_timer);
|
||||
drv->shutdown_timer_elapsed = false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user