FreeCalypso > hg > fc-magnetite
annotate src/cs/drivers/drv_app/fchg/fchg_struct.h @ 673:62a5285e014a
Lorekeeping: allow tpudrv-leonardo.lib on Leonardo/Tango
Back in 2015 the Mother's idea was to produce a FreeCalypso development
board that would be a clone of TI Leonardo, including the original
quadband RFFE; one major additional stipulation was that this board
needed to be able to run original unmodified TCS211-20070608 firmware
with all blobs intact, with only minimal binary patches to main.lib
and tpudrv.lib. The necessary patched libs were produced at that time
in the tcs211-patches repository.
That plan was changed and we produced FCDEV3B instead, with Openmoko's
triband RFFE instead of Leonardo quadband, but when FC Magnetite started
in 2016, a TPUDRV_blob= provision was still made, allowing the possibility
of patching OM's tpudrv.lib for a restored Leonardo RFFE.
Now in 2020 we have FC Tango which is essentially a verbatim clone of
Leonardo core, including the original quadband RFFE. We have also
deblobbed our firmware so much that we have absolutely no real need
for a blob version of tpudrv.lib - but I thought it would be neat to put
the ancient TPUDRV_blob= mechanism (classic config) to its originally
intended use, just for the heck of it.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 29 May 2020 03:55:36 +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 */ |