FreeCalypso > hg > fc-tourmaline
diff src/cs/drivers/drv_app/pwr/pwr_messages.h @ 0:4e78acac3d88
src/{condat,cs,gpf,nucleus}: import from Selenite
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 16 Oct 2020 06:23:26 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/cs/drivers/drv_app/pwr/pwr_messages.h Fri Oct 16 06:23:26 2020 +0000 @@ -0,0 +1,138 @@ +/******************************************************************************* + * + * pwr_messages.h + * + * Purpose: Contains definitions used by PWR SWE to send events + * to the upper layer (MMI) + * + * Author Candice Bazanegue (c-brille@ti.com) + * + * (C) Texas Instruments 2001 + * + ******************************************************************************/ + +#ifndef __PWR_MESSAGES_H__ +#define __PWR_MESSAGES_H__ + +#include "rv/rv_general.h" +#include "pwr/pwr_api.h" +#include "pwr/pwr_env.h" +#include "spi/spi_api.h" + +typedef struct +{ + UINT16 battery_voltage; + INT16 battery_temperature; + UINT16 battery_charger_current; + BOOLEAN charger_plugged; + T_PWR_CHARGING_STATE charge_started; + T_PWR_PERCENT remaining_capacity; +} T_PWR_BAT_INFO; + + +#define PWR_SEND_MESSAGE(mmi_return_path, \ + message_p) \ + { \ + if ((mmi_return_path).callback_func != NULL) \ + { \ + ((mmi_return_path).callback_func) (message_p); \ + } \ + else \ + { \ + if ((mmi_return_path).addr_id != RVF_INVALID_ADDR_ID) \ + { \ + (void) rvf_send_msg ((mmi_return_path).addr_id, \ + (message_p)); \ + } \ + else \ + { \ + rvf_free_buf((T_RVF_BUFFER *) message_p); \ + } \ + } \ + } + + +/* Events that can be sent by the power SWE API to the MMI */ + +#define POWER_CHARGER_PLUG_IND 1 +#define POWER_CHARGER_UNPLUG_IND 2 +#define POWER_BAT_CI_CHARGE_START_IND 3 +#define POWER_BAT_CV_CHARGE_START_IND 4 +#define POWER_BAT_CHARGE_STOP_IND 5 +#define POWER_BAT_CHARGE_NOT_POSSIBLE_IND 6 +#define POWER_BAT_DISCHARGE_LEVEL_IND 7 +#define POWER_LOW_BAT_ALERT_IND 8 +#define POWER_BAT_INFO_STATUS 9 + + + +/* Structures of messages */ + +typedef struct +{ T_RV_HDR hdr; + INT8 status; +} T_PWR_BAT_CHARGE_STOP; + +typedef struct +{ T_RV_HDR hdr; + T_BAT_PROBLEM problem; +} T_PWR_BAT_CHARGE_NOT_POSSIBLE; + +typedef struct +{ T_RV_HDR hdr; + T_PWR_PERCENT remaining_capacity; +} T_PWR_BAT_DISCHARGE_LEVEL; + +typedef struct +{ T_RV_HDR hdr; + T_PWR_PERCENT remaining_capacity; +} T_PWR_LOW_BAT_ALERT; + + +typedef struct +{ T_RV_HDR hdr; + T_PWR_BAT_INFO bat_info; +} T_PWR_BAT_INFO_STATUS; + + +typedef struct +{ T_RV_HDR hdr; + BOOLEAN info_enable; + T_RV_RETURN return_path; +} T_PWR_SPI_INFO_REG; + + +typedef struct +{ T_RV_HDR hdr; + T_PWR_PERCENT remain_capa_threshold; + T_RV_RETURN return_path; +} T_PWR_SPI_ALERT_REG; + + +typedef struct +{ T_RV_HDR hdr; + T_RV_RETURN return_path; +} T_PWR_SPI_EMERGENCY_REG; + + + + + +/* Prototypes */ + +/* Functions used to send messages to the upper layer */ +T_RV_RET pwr_send_charger_plug_event(void); +T_RV_RET pwr_send_charger_unplug_event(void); +T_RV_RET pwr_send_CI_charge_start_event(void); +T_RV_RET pwr_send_CV_charge_start_event(void); +T_RV_RET pwr_send_charge_stop_event(void); +T_RV_RET pwr_send_charge_not_possible_event(T_BAT_PROBLEM charge_problem); +T_RV_RET pwr_send_bat_discharge_event(T_PWR_PERCENT remaining_capacity); +T_RV_RET pwr_send_low_bat_event(T_PWR_PERCENT remaining_capacity); +T_RV_RET pwr_send_battery_info(UINT16 battery_voltage, UINT16 battery_temperature, + UINT16 battery_charger_current, + BOOLEAN is_charger_plugged, + T_PWR_CHARGING_STATE is_charge_started, + T_PWR_PERCENT remaining_capacity); + +#endif /* __PWR_MESSAGES_H__ */