c05564c4d8
Android 13
109 lines
2.9 KiB
C
Executable file
109 lines
2.9 KiB
C
Executable file
|
|
#ifndef __SEC_VOTER_H
|
|
#define __SEC_VOTER_H __FILE__
|
|
|
|
#define FOREACH_VOTER(GENERATE) \
|
|
GENERATE(VOTER_VBUS_CHANGE) \
|
|
GENERATE(VOTER_USB_100MA) \
|
|
GENERATE(VOTER_CHG_LIMIT) \
|
|
GENERATE(VOTER_AICL) \
|
|
GENERATE(VOTER_SELECT_PDO) \
|
|
GENERATE(VOTER_CABLE) \
|
|
GENERATE(VOTER_MIX_LIMIT) \
|
|
GENERATE(VOTER_CHG_TEMP) \
|
|
GENERATE(VOTER_LRP_TEMP) \
|
|
GENERATE(VOTER_STORE_MODE) \
|
|
GENERATE(VOTER_SIOP) \
|
|
GENERATE(VOTER_WPC_CUR) \
|
|
GENERATE(VOTER_SWELLING) \
|
|
GENERATE(VOTER_OTG) \
|
|
GENERATE(VOTER_SLEEP_MODE) \
|
|
GENERATE(VOTER_USER) \
|
|
GENERATE(VOTER_STEP) \
|
|
GENERATE(VOTER_AGING_STEP) \
|
|
GENERATE(VOTER_VBUS_OVP) \
|
|
GENERATE(VOTER_FULL_CHARGE) \
|
|
GENERATE(VOTER_TEST_MODE) \
|
|
GENERATE(VOTER_TIME_EXPIRED) \
|
|
GENERATE(VOTER_MUIC_ABNORMAL) \
|
|
GENERATE(VOTER_WC_TX) \
|
|
GENERATE(VOTER_SLATE) \
|
|
GENERATE(VOTER_SMART_SLATE) \
|
|
GENERATE(VOTER_SUSPEND) \
|
|
GENERATE(VOTER_SYSOVLO) \
|
|
GENERATE(VOTER_VBAT_OVP) \
|
|
GENERATE(VOTER_STEP_CHARGE) \
|
|
GENERATE(VOTER_DC_STEP_CHARGE) \
|
|
GENERATE(VOTER_TOPOFF_CHANGE) \
|
|
GENERATE(VOTER_HMT) \
|
|
GENERATE(VOTER_DC_ERR) \
|
|
GENERATE(VOTER_DC_MODE) \
|
|
GENERATE(VOTER_FULL_CAPACITY) \
|
|
GENERATE(VOTER_WDT_EXPIRE) \
|
|
GENERATE(VOTER_BATTERY) \
|
|
GENERATE(VOTER_USB_FAC_100MA) \
|
|
GENERATE(VOTER_PASS_THROUGH) \
|
|
GENERATE(VOTER_NO_BATTERY) \
|
|
GENERATE(VOTER_D2D_WIRE) \
|
|
GENERATE(VOTER_CHANGE_CHGMODE) \
|
|
GENERATE(VOTER_FLASH) \
|
|
GENERATE(VOTER_MST) \
|
|
GENERATE(VOTER_SRCCAP_TRANSIT) \
|
|
GENERATE(VOTER_FW) \
|
|
GENERATE(VOTER_MAX)
|
|
|
|
#define GENERATE_ENUM(ENUM) ENUM,
|
|
#define GENERATE_STRING(STRING) #STRING,
|
|
|
|
enum VOTER_ENUM {
|
|
FOREACH_VOTER(GENERATE_ENUM)
|
|
};
|
|
|
|
enum {
|
|
SEC_VOTE_MIN,
|
|
SEC_VOTE_MAX,
|
|
SEC_VOTE_EN,
|
|
};
|
|
|
|
enum {
|
|
VOTE_PRI_0 = 0,
|
|
VOTE_PRI_1,
|
|
VOTE_PRI_2,
|
|
VOTE_PRI_3,
|
|
VOTE_PRI_4,
|
|
VOTE_PRI_5,
|
|
VOTE_PRI_6,
|
|
VOTE_PRI_7,
|
|
VOTE_PRI_8,
|
|
VOTE_PRI_9,
|
|
VOTE_PRI_10,
|
|
};
|
|
struct sec_vote;
|
|
|
|
extern int get_sec_vote(struct sec_vote *vote, const char **name, int *value);
|
|
extern struct sec_vote *find_vote(const char *name);
|
|
extern struct sec_vote *sec_vote_init(const char *name, int type, int num, int init_val,
|
|
const char **voter_name, int(*cb)(void *data, int value), void *data);
|
|
extern void sec_vote_destroy(struct sec_vote *vote);
|
|
extern void _sec_vote(struct sec_vote *vote, int event, int en, int value, const char *fname, int line);
|
|
extern void sec_vote_refresh(struct sec_vote *vote);
|
|
extern const char *get_sec_keyvoter_name(struct sec_vote *vote);
|
|
extern int get_sec_vote_result(struct sec_vote *vote);
|
|
extern int get_sec_voter_status(struct sec_vote *vote, int id, int *v);
|
|
extern int show_sec_vote_status(char *buf, unsigned int p_size);
|
|
extern void change_sec_voter_pri(struct sec_vote *vote, int event, int pri);
|
|
|
|
#define sec_vote(vote, event, en, value) _sec_vote(vote, event, en, value, __func__, __LINE__)
|
|
#define sec_votef(name, event, en, value) \
|
|
do { \
|
|
struct sec_vote *vote = find_vote(name); \
|
|
\
|
|
if (!vote) { \
|
|
pr_err("%s: failed to find vote(%s)\n", __func__, (name)); \
|
|
break; \
|
|
} \
|
|
_sec_vote(vote, event, en, value, __func__, __LINE__); \
|
|
} while (0) \
|
|
|
|
#endif
|