Files
banban/ql-bootloader/boot33/inc/dm_charge.h
T

71 lines
2.0 KiB
C

#ifndef _DM_CHARGE_H_
#define _DM_CHARGE_H_
#include "common.h"
#define Battery_Low_Voltage 3450
#define Battery_Full_Voltage 4350
#define Hours_6 (6 * 60 * 60)
#define Hours_2 (2 * 60 * 60)
/** power manage ic family define **/
#define GUILIN 0
#define PM812 1
#define NINGBO 2
typedef union counter32 {
UINT8 cnt_8[4];
UINT32 cnt_32;
} counter32U;
typedef enum powerUpTypeE {
PowerUP_Battery = 0,
PowerUP_ONKEY = 1,
PowerUP_USB = 2,
PowerUP_External = 3,
PowerUP_Reset = 4,
PowerUP_Unkown = 0xff
} powerUpTypeEE;
typedef struct chargerTimer {
UINT8 volCheck;
UINT8 curCheck;
UINT8 trickle;
UINT8 precharge;
UINT8 cccv;
BOOL keep; // emm, Don't remember funtion of "keep"...
} chargerTimerT;
typedef struct chargerThreshold {
UINT16 termCur; // charge termination current
} chargerThresholdT;
typedef struct chargeManagerT {
UINT8 family;
UINT8 id;
UINT8 subId;
UINT8 (*chargeICIDGet)(void);
void (*init)(void);
BOOL (*batteryConnectCheck)(void);
BOOL (*usbConnectCheck)(void);
enum powerUpTypeE (*wakeUpCheck)(BOOL batConnectState);
BOOL (*powerOnKeyCheck)(UINT8 timeOutValue);
UINT16 (*batInstantVoltGet)(BOOL usbStatus);
UINT16 (*batStableVoltGet)(UINT8 *pPercent);
void (*systemPowerOff)(void);
BOOL (*chargerFull)(void);
BOOL (*chargerCC)(void);
BOOL (*setMPP)(UINT16 limit);
BOOL (*getChargeStatus)(void);
UINT32 (*getChargeCurrent)(void);
void (*closeCharge)(void);
void (*openCharge)(void);
void (*handleChargerAbnormal)(void);
} chargeManagerTT;
extern struct chargeManagerT chargeManager[8];
//void uudelay(int us);
//void mdelay(int ms);
void DM_CHARGE_Manager(void);
#endif /* _DM_CHARGE_H_ */