FreeCalypso > hg > fc-tourmaline
comparison src/cs/drivers/drv_app/spi/spi_env.c @ 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 | 34b7059b9337 |
children |
comparison
equal
deleted
inserted
replaced
260:34b7059b9337 | 261:841a848ba762 |
---|---|
23 #include "rvm/rvm_use_id_list.h" | 23 #include "rvm/rvm_use_id_list.h" |
24 #include <string.h> | 24 #include <string.h> |
25 | 25 |
26 //extern T_RV_RET spi_core(void); | 26 //extern T_RV_RET spi_core(void); |
27 #include "spi/spi_task.h" | 27 #include "spi/spi_task.h" |
28 | |
29 #include "abb/abb.h" /* FreeCalypso addition for initial IT clearing */ | |
28 | 30 |
29 | 31 |
30 /* global pointer to the error function */ | 32 /* global pointer to the error function */ |
31 static T_RVM_RETURN (*spi_error_ft)(T_RVM_NAME swe_name, T_RVM_RETURN error_cause, | 33 static T_RVM_RETURN (*spi_error_ft)(T_RVM_NAME swe_name, T_RVM_RETURN error_cause, |
32 T_RVM_ERROR_TYPE error_type,T_RVM_STRING error_msg); | 34 T_RVM_ERROR_TYPE error_type,T_RVM_STRING error_msg); |
169 * | 171 * |
170 * | 172 * |
171 ******************************************************************************/ | 173 ******************************************************************************/ |
172 T_RVM_RETURN spi_init(void) | 174 T_RVM_RETURN spi_init(void) |
173 { | 175 { |
176 /* | |
177 * FreeCalypso addition: clear any initial interrupts, | |
178 * particularly charger plug/unplug. | |
179 */ | |
180 (void) ABB_Read_Register_on_page(PAGE0, ITSTATREG); | |
181 | |
174 return RV_OK; | 182 return RV_OK; |
175 } | 183 } |
176 | 184 |
177 | 185 |
178 /****************************************************************************** | 186 /****************************************************************************** |