view src/cs/drivers/drv_app/pwr/pwr_messages.h @ 148:c47e2dc10134

l1_pwmgr.c & l1_cust.c: sleep logic changes from Magnetite
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 06 Feb 2019 23:15:04 +0000
parents b6a5e36de839
children
line wrap: on
line source

/*******************************************************************************
 *
 *  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__ */