FreeCalypso > hg > fc-magnetite
annotate src/cs/drivers/drv_app/fchg/fchg_struct.h @ 597:f18b29e27be5
First attempt at MCSI voice path automatic switching
The function is implemented at the ACI level in both aci2 and aci3,
successfully avoids triggering the DSP bug on the first call,
but the shutdown of MCSI upon call completion is not working properly yet
in either version.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Wed, 27 Mar 2019 22:18:35 +0000 |
parents | 4c3d05866531 |
children |
rev | line source |
---|---|
322
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
1 /* |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
2 * Internal structure definitions for the FCHG SWE reside here. |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
3 * abb_inth.c will also need to include this header in order to |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
4 * get our T_PWR_CTRL_BLOCK definition. |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
5 */ |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
6 |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
7 #ifndef __FCHG_STRUCT_H |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
8 #define __FCHG_STRUCT_H |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
9 |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
10 #include "rv/rv_general.h" |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
11 #include "rvf/rvf_api.h" |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
12 #include "fchg/fchg_common.h" |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
13 |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
14 struct charging_config { |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
15 UINT16 start_delay; |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
16 UINT16 start_thresh; |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
17 UINT16 restart_thresh; |
360
ce6d71349af0
FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents:
333
diff
changeset
|
18 UINT16 ci2cv_thresh; |
ce6d71349af0
FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents:
333
diff
changeset
|
19 UINT16 cv_init_set; |
ce6d71349af0
FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents:
333
diff
changeset
|
20 UINT16 cv_ctrl_loop_high; |
ce6d71349af0
FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents:
333
diff
changeset
|
21 UINT16 cv_ctrl_loop_low; |
362
4c3d05866531
FCHG: beginning of the new version
Mychaela Falconia <falcon@freecalypso.org>
parents:
360
diff
changeset
|
22 UINT16 cv_dac_max_incr; |
4c3d05866531
FCHG: beginning of the new version
Mychaela Falconia <falcon@freecalypso.org>
parents:
360
diff
changeset
|
23 UINT16 cv_dac_max_decr; |
360
ce6d71349af0
FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents:
333
diff
changeset
|
24 UINT16 cv_samples_needed; |
322
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
25 UINT16 overvoltage; |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
26 UINT16 ci_current; |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
27 UINT16 end_current; |
360
ce6d71349af0
FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents:
333
diff
changeset
|
28 UINT16 ichg_max_spike; |
ce6d71349af0
FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents:
333
diff
changeset
|
29 UINT16 ichg_samples_needed; |
ce6d71349af0
FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents:
333
diff
changeset
|
30 UINT16 charge_time_limit; |
ce6d71349af0
FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents:
333
diff
changeset
|
31 UINT16 recharge_delay; |
322
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
32 UINT16 bciconf; |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
33 }; |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
34 |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
35 /* from original PWR SWE */ |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
36 typedef struct { |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
37 UINT16 bat_voltage; |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
38 T_PWR_PERCENT remain_capa; |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
39 } T_PWR_THRESHOLDS; |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
40 |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
41 #define MAX_THRESHOLDS 101 |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
42 |
360
ce6d71349af0
FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents:
333
diff
changeset
|
43 #define ICHG_AVG_WINDOW 6 |
ce6d71349af0
FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents:
333
diff
changeset
|
44 |
322
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
45 typedef struct { |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
46 /* RiViera boilerplate */ |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
47 T_RVF_ADDR_ID addr_id; |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
48 T_RVF_MB_ID prim_id; |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
49 /* configuration */ |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
50 struct charging_config config; |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
51 BOOL config_present; |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
52 T_PWR_THRESHOLDS batt_thresholds[MAX_THRESHOLDS]; |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
53 UINT16 nb_thresholds; |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
54 /* state */ |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
55 enum fchg_state state; |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
56 UINT16 batt_mv; |
333
8a90038c0173
FCHG: store discharge state as threshold index rather than percentage
Mychaela Falconia <falcon@freecalypso.org>
parents:
331
diff
changeset
|
57 UINT16 curr_disch_thresh; |
331
8166b0afcf8c
FCHG: main ADC process implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
322
diff
changeset
|
58 /* valid only during a charging cycle */ |
8166b0afcf8c
FCHG: main ADC process implemented
Mychaela Falconia <falcon@freecalypso.org>
parents:
322
diff
changeset
|
59 UINT16 i2v_offset; |
360
ce6d71349af0
FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents:
333
diff
changeset
|
60 UINT16 cv_dac_init; |
ce6d71349af0
FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents:
333
diff
changeset
|
61 UINT16 cv_dac_curr; |
ce6d71349af0
FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents:
333
diff
changeset
|
62 UINT16 cv_high_vbat_count; |
ce6d71349af0
FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents:
333
diff
changeset
|
63 UINT16 cv_low_vbat_count; |
ce6d71349af0
FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents:
333
diff
changeset
|
64 UINT16 ichg_avg_buf[ICHG_AVG_WINDOW]; |
ce6d71349af0
FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents:
333
diff
changeset
|
65 UINT16 ichg_fill_level; |
ce6d71349af0
FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents:
333
diff
changeset
|
66 UINT16 ichg_ring_ptr; |
ce6d71349af0
FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents:
333
diff
changeset
|
67 UINT16 ichg_average; |
ce6d71349af0
FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents:
333
diff
changeset
|
68 UINT16 ichg_low_count; |
ce6d71349af0
FCHG: data structure changes in preparation for the new version
Mychaela Falconia <falcon@freecalypso.org>
parents:
333
diff
changeset
|
69 UINT32 start_time; |
322
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
70 } T_PWR_CTRL_BLOCK; |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
71 |
c4077830aeeb
FCHG implementation code started
Mychaela Falconia <falcon@freecalypso.org>
parents:
diff
changeset
|
72 #endif /* include guard */ |