FreeCalypso > hg > fc-tourmaline
view src/cs/drivers/drv_app/pwr/pwr_env.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
/*****************************************************************************/ /* */ /* File Name: pwr_env.h */ /* */ /* Purpose: This file contains prototypes for RV manager related */ /* functions used to get info, start and stop the pwr block */ /* */ /* Version 0.1 */ /* */ /* Date Modification */ /* ------------------------------------ */ /* 20/08/2000 Create */ /* */ /* Author Candice Bazanegue (c-brille@ti.com) */ /* */ /* (C) Copyright 2000 by Texas Instruments Incorporated, All Rights Reserved */ /*****************************************************************************/ #ifndef __PWR_ENV_H__ #define __PWR_ENV_H__ #include "rvm/rvm_gen.h" #include "pwr/pwr_api.h" #include "pwr/pwr_cust.h" #include "pwr/pwr_pool_size.h" /* Stack & Memory Bank sizes definitions */ #define PWR_MAILBOX_USED RVF_TASK_MBOX_1 /* memory bank size and watermark */ #define PWR_MB_PRIM_SIZE PWR_MB1_SIZE #define PWR_MB_PRIM_WATERMARK (PWR_MB_PRIM_SIZE - 200) #define PWR_MB_PRIM_INC_SIZE 0 #define PWR_MB_PRIM_INC_WATERMARK 0 typedef struct { T_RVF_MB_ID prim_id; T_RVF_ADDR_ID addr_id; T_PWR_CHARGING_STATE charging_state; UINT16 i2v_madc_offset; UINT16 madc_eoc_current_code; UINT16 max_voltage_code; T_POWER_INFO power_info; T_POWER_ALERT power_alert; T_RV_RETURN power_emergency; T_PWR_TIMER0_STATE timer0_state; T_PWR_BATTERY_TYPE bat_type; INT16 bat_celsius_temp; /* temperature in Celsius degrees */ } T_PWR_ENV_CTRL_BLK; extern T_PWR_ENV_CTRL_BLK *pwr_env_ctrl_blk; /* Prototypes */ T_RVM_RETURN pwr_get_info (T_RVM_INFO_SWE *infoSWE); T_RVM_RETURN pwr_set_info( T_RVF_ADDR_ID addr_id, T_RV_RETURN return_path[], T_RVF_MB_ID mbId[], T_RVM_RETURN (*callBackFct) (T_RVM_NAME SWEntName, T_RVM_RETURN errorCause, T_RVM_ERROR_TYPE errorType, T_RVM_STRING errorMsg)); T_RVM_RETURN pwr_init (void); T_RVM_RETURN pwr_start (void); T_RVM_RETURN pwr_stop (void); T_RVM_RETURN pwr_kill (void); #endif /* __PWR_ENV_H__ */