145
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /*******************************************************************************
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 *
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * pwr_api.c
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 *
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 * Purpose: This file contains functions that can be accessed by any SWE
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 * to use power management services.
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 *
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 * Author Candice Bazanegue (c-brille@ti.com)
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 *
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 *
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 * (C) Texas Instruments 2001
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 *
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 ******************************************************************************/
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14
|
151
|
15 #include "rv/rv_defined_swe.h" // for RVM_PWR_SWE
|
145
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 #ifdef RVM_PWR_SWE
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
18
|
151
|
19 #include "rvm/rvm_use_id_list.h"
|
|
20 #include "spi/spi_api.h"
|
|
21 #include "spi/spi_env.h"
|
|
22 #include "pwr/pwr_env.h"
|
|
23 #include "pwr/pwr_cust.h"
|
|
24 #include "pwr/pwr_messages.h"
|
|
25 #include "pwr/pwr_messages_i.h"
|
145
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 /* Define a pointer to the PWR Environment control block. */
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
28 extern T_PWR_ENV_CTRL_BLK *pwr_env_ctrl_blk;
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
29
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
30
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
31 /*******************************************************************************
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 **
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 ** Function power_info_register
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 **
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 ** Description Function called by the MMI to enable (or disable) the receipt
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 ** of several events related to the charging process or the
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 ** discharge levels.
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 **
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 **
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 *******************************************************************************/
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 T_POWER_RET power_info_register(BOOLEAN info_enable, T_RV_RETURN return_path)
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 {
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
43 if (((pwr_env_ctrl_blk->power_info.return_path.callback_func)!= NULL) ||
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
44 (pwr_env_ctrl_blk->power_info.return_path.addr_id != RVF_INVALID_ADDR_ID))
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 {
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 rvf_send_trace("power_info_register : info already registered, performs another registration",
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 76,
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 NULL_PARAM,
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 RV_TRACE_LEVEL_DEBUG_HIGH,
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 PWR_USE_ID);
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 }
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 pwr_env_ctrl_blk->power_info.info_enable = info_enable;
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 pwr_env_ctrl_blk->power_info.return_path.addr_id = return_path.addr_id;
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 pwr_env_ctrl_blk->power_info.return_path.callback_func = return_path.callback_func;
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 return (POWER_OK);
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
57
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
58 }
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
59
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
60
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
61
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
62 /*******************************************************************************
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
63 **
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
64 ** Function power_alert_register
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
65 **
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
66 ** Description Function called by the MMI to configure the threshold of
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
67 ** remaining energy in the battery, under which the MMI will
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
68 ** receive low battery alerts.
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
69 **
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 **
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 *******************************************************************************/
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 T_POWER_RET power_alert_register(T_PWR_PERCENT remain_capa_threshold,
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
73 T_RV_RETURN return_path)
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
74 {
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
75
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
76 if (((pwr_env_ctrl_blk->power_alert.return_path.callback_func)!= NULL) ||
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
77 (pwr_env_ctrl_blk->power_alert.return_path.addr_id != RVF_INVALID_ADDR_ID))
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
78 {
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
79 rvf_send_trace("power_alert_register : info already registered, performs another registration",
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
80 77,
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
81 NULL_PARAM,
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
82 RV_TRACE_LEVEL_DEBUG_HIGH,
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
83 PWR_USE_ID);
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
84 }
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
85 pwr_env_ctrl_blk->power_alert.remain_capa_threshold = remain_capa_threshold;
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
86 pwr_env_ctrl_blk->power_alert.return_path.addr_id = return_path.addr_id;
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
87 pwr_env_ctrl_blk->power_alert.return_path.callback_func = return_path.callback_func;
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
88
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
89 return (POWER_OK);
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
90
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
91 }
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
92
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
93
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
94 /*******************************************************************************
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
95 **
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
96 ** Function power_emergency_register
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
97 **
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
98 ** Description Function called by the MMI to define the call-back function
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
99 ** which will be called in case of emergency switch OFF.
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
100 **
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
101 **
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
102 *******************************************************************************/
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
103 T_POWER_RET power_emergency_register(T_RV_RETURN return_path)
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
104 {
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
105
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
106 if (((pwr_env_ctrl_blk->power_emergency.callback_func)!= NULL) ||
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
107 (pwr_env_ctrl_blk->power_emergency.addr_id != RVF_INVALID_ADDR_ID))
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
108 {
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
109 rvf_send_trace("power_emergency_register : info already registered, performs another registration",
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
110 80,
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
111 NULL_PARAM,
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
112 RV_TRACE_LEVEL_DEBUG_HIGH,
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
113 PWR_USE_ID);
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
114 }
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
115 pwr_env_ctrl_blk->power_emergency.addr_id = return_path.addr_id;
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
116 pwr_env_ctrl_blk->power_emergency.callback_func = return_path.callback_func;
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
117
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
118 return (POWER_OK);
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
119
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
120 }
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
121
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
122
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
123
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
124 /*******************************************************************************
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
125 **
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
126 ** Function pwr_callback_func
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
127 **
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
128 ** Description
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
129 **
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
130 **
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
131 **
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
132 *******************************************************************************/
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
133 void pwr_callback_func(void *ptr)
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
134 {
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
135 T_PWR_CHARGING_STATE charge_started;
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
136
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
137
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
138 /* Charge started? */
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
139 charge_started = pwr_env_ctrl_blk->charging_state;
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
140
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
141 if (charge_started == CHARGE_STOPPED)
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
142 {
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
143 /* Ask for battery temperature measurement */
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
144 pwr_get_battery_temperature();
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
145 }
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
146
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
147 else if ((charge_started == CI_CHARGE_STARTED) ||
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
148 (charge_started == CV_CHARGE_STARTED))
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
149 {
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
150 /* The battery temperature has been measured during the charge */
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
151 pwr_get_bat_info();
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
152 }
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
153
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
154 }
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
155
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
156
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
157
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
158
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
159 /*******************************************************************************
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
160 **
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
161 ** Function pwr_get_bat_info
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
162 **
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
163 ** Description
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
164 **
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
165 **
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
166 *******************************************************************************/
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
167 void pwr_get_bat_info(void)
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
168 {
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
169 UINT16 bat_voltage, bat_madc_voltage;
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
170 UINT16 charger_current, bat_madc_current;
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
171 UINT16 status;
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
172 BOOLEAN charger_plugged;
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
173 T_PWR_CHARGING_STATE charge_started;
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
174 T_PWR_PERCENT remain_capacity;
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
175 INT16 bat_temperature;
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
176
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
177
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
178 /* Voltage and current */
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
179 /* Read the conversion results in the analog device registers */
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
180 bat_madc_voltage = ABB_Read_Register_on_page(PAGE0, VBATREG);
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
181 bat_madc_current = ABB_Read_Register_on_page(PAGE0, ICHGREG);
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
182
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
183 bat_voltage = pwr_adc_to_mvolt(bat_madc_voltage);
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
184 charger_current = pwr_adc_to_mA(bat_madc_current);
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
185
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
186 /* Remaining capacity in the battery */
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
187 remain_capacity = pwr_get_capacity_vs_voltage(bat_voltage);
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
188
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
189 /* Charger plugged? */
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
190 status = ABB_Read_Status();
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
191 if (status & CHGPRES)
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
192 {
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
193 charger_plugged = TRUE;
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
194 }
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
195 else
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
196 {
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
197 charger_plugged = FALSE;
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
198 }
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
199
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
200 /* Charge started? */
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
201 charge_started = pwr_env_ctrl_blk->charging_state;
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
202
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
203 /* The battery temperature is already measured during the charge */
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
204 /* Use the last result */
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
205 bat_temperature = pwr_env_ctrl_blk->bat_celsius_temp;
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
206
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
207 /* Send the results to the upper layer */
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
208 pwr_send_battery_info(bat_voltage, bat_temperature, charger_current,
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
209 charger_plugged, charge_started,
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
210 remain_capacity);
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
211 }
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
212
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
213
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
214
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
215
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
216 /*******************************************************************************
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
217 **
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
218 ** Function power_battery_information
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
219 **
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
220 ** Description Function called by the MMI to get information concerning
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
221 ** the battery.
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
222 **
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
223 **
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
224 *******************************************************************************/
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
225 T_POWER_RET power_battery_information(void)
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
226 {
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
227 T_RV_RET spi_return;
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
228
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
229 spi_return = pwr_spi_battery_info(pwr_callback_func);
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
230 if (spi_return != RV_OK)
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
231 {
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
232 return (POWER_ERROR);
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
233 }
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
234
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
235 return (POWER_OK);
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
236 }
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
237
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
238 #endif /* #ifdef RVM_PWR_SWE */
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
239
|
246f4a7dd92b
src/cs/drivers/drv_app/pwr: import from MV100 source
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
240
|