FreeCalypso > hg > fc-tourmaline
view src/cs/drivers/drv_app/r2d/r2d_blrr_api.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 | bb1f572ac098 |
| children |
line wrap: on
line source
/* * This module implements the blrr_display_ctrl() function defined * in r2d_blrr_api.h; this implementation consists of posting the * necessary internal message to the R2D task. */ #include "r2d/r2d_blrr_api.h" #include "r2d/r2d_i.h" #include "r2d/r2d_messages.h" #include "rv/rv_general.h" #include "rvf/rvf_api.h" #include "rvm/rvm_use_id_list.h" T_RV_RET blrr_display_ctrl(enum blrr_display_state arg) { T_R2D_EVT *msg; rvf_send_trace("BLRR display state change", 25, arg, RV_TRACE_LEVEL_DEBUG_HIGH, R2D_USE_ID); if (rvf_get_buf(r2d_mb_id, sizeof(T_R2D_EVT), (T_RVF_BUFFER **)&msg) == RVF_RED) { rvf_send_trace( "rvf_get_buf() failed in blrr_display_ctrl()", 43, NULL_PARAM, RV_TRACE_LEVEL_ERROR, R2D_USE_ID); return RV_MEMORY_ERR; } msg->os_hdr.msg_id = R2D_MESSAGE_ONOFF; msg->os_hdr.src_addr_id = r2d_addr_id; msg->os_hdr.dest_addr_id = r2d_addr_id; msg->os_hdr.callback_func = NULL; msg->status = arg; if (rvf_send_msg(r2d_addr_id, msg) != RV_OK) { rvf_send_trace("blrr_display_ctrl(): Send failed!", 33, NULL_PARAM, RV_TRACE_LEVEL_ERROR, R2D_USE_ID); rvf_free_buf(msg); return RV_INTERNAL_ERR; } return RV_OK; }
