annotate src/cs/drivers/drv_app/fchg/fchg_struct.h @ 682:17b7b92e7dba

uartfax.c: fix for old Openmoko bug with Auto-CTS Openmoko made the change of enabling hardware assisted CTS flow control in the UART when RTS/CTS flow control is used - it is a change which we have retained in FreeCalypso - but they forgot to turn this hw mode off if RTS/CTS flow control is deselected at the application level. We (FreeCalypso) are now fixing the latter defect ourselves.
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 26 Jun 2020 02:53:02 +0000
parents 4c3d05866531
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 */