FreeCalypso > hg > fc-tourmaline
view src/cs/drivers/drv_app/pwr/pwr_api.h @ 261:841a848ba762
SPI SWE: clear any pending boot-time interrupts in spi_init()
Charger plug/unplug hw logic in the Iota ABB has no built-in debouncing,
thus electrical contact bounce on the charging power connection interface
produces a lot of charger plug/unplug interrupts. When we boot in
charging mode (charging power present at boot time and is presumably
the cause of Switch-ON), some bounce may occur between the initial
Iota Switch-ON action and Calypso firmware booting. By clearing any
accumulated ITSTATREG interrupts on boot, we prevent these pre-boot
interrupts from generating charger plug/unplug events to FCHG, which
would upset smooth from-boot charging.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 14 May 2021 02:49:05 +0000 |
parents | 4e78acac3d88 |
children |
line wrap: on
line source
/******************************************************************************* * * pwr_api.h * * Purpose: This file contains definitions that can be used by any SWE * for power management services. * * Author Candice Bazanegue (c-brille@ti.com) * * (C) Texas Instruments 2001 * ******************************************************************************/ #ifndef __PWR_API_H__ #define __PWR_API_H__ #include "rv/rv_general.h" typedef T_RV_RET T_POWER_RET; typedef enum { POWER_OK = 0, /* OK */ POWER_ERROR = -1 /* ERROR */ }; /* Define the different charging process states */ typedef enum { CHARGE_STOPPED, TESTING_BATTERY, CI_CHARGE_STARTED, /* constant current charge */ CV_CHARGE_STARTED /* constant voltage charge */ }T_PWR_CHARGING_STATE; /* Define the different states for TIMER0 use */ typedef enum { BATTERY_TYPE_TEST, BATTERY_SHORT_TEST, BATTERY_OPEN_TEST, BATTERY_50UA_TEMP_TEST, BATTERY_10UA_TEMP_TEST, BATTERY_CALIBRATION }T_PWR_TIMER0_STATE; typedef struct { BOOLEAN info_enable; T_RV_RETURN return_path; }T_POWER_INFO; typedef UINT8 T_PWR_PERCENT; typedef struct { T_PWR_PERCENT remain_capa_threshold; T_RV_RETURN return_path; }T_POWER_ALERT; typedef enum { BAT_TEMP_OUTSIDE_LIMITS, BAT_OPEN_TEST_FAILED, BAT_SHORT_TEST_FAILED, BAT_TYPE_UNKNOWN } T_BAT_PROBLEM; /* Prototypes */ T_POWER_RET power_info_register(BOOLEAN info_enable, T_RV_RETURN return_path); T_POWER_RET power_alert_register(T_PWR_PERCENT remain_capa_threshold, T_RV_RETURN return_path); T_POWER_RET power_emergency_register(T_RV_RETURN return_path); T_POWER_RET power_battery_information(void); void pwr_get_bat_info(void); #endif /* __PWR_API_H__ */