420 lines
18 KiB
C++
420 lines
18 KiB
C++
/**
|
||
*
|
||
* @license MIT License
|
||
*
|
||
* Copyright (c) 2022 lewis he
|
||
*
|
||
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||
* of this software and associated documentation files (the "Software"), to deal
|
||
* in the Software without restriction, including without limitation the rights
|
||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||
* copies of the Software, and to permit persons to whom the Software is
|
||
* furnished to do so, subject to the following conditions:
|
||
*
|
||
* The above copyright notice and this permission notice shall be included in all
|
||
* copies or substantial portions of the Software.
|
||
*
|
||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||
* SOFTWARE.
|
||
*
|
||
* @file XPowersParams.hpp
|
||
* @author Lewis He (lewishe@outlook.com)
|
||
* @date 2022-08-28
|
||
*
|
||
*/
|
||
|
||
#pragma once
|
||
|
||
#ifdef _BV
|
||
#undef _BV
|
||
#endif
|
||
#define _BV(b) (1ULL << (uint64_t)(b))
|
||
|
||
|
||
//TODO:Unified interface functions and parameters
|
||
|
||
/**
|
||
* @brief PMU PEKEY Press off time parameters.
|
||
*/
|
||
typedef enum __xpowers_press_off_time {
|
||
XPOWERS_POWEROFF_4S,
|
||
XPOWERS_POWEROFF_6S,
|
||
XPOWERS_POWEROFF_8S,
|
||
XPOWERS_POWEROFF_10S,
|
||
} xpowers_press_off_time_t;
|
||
|
||
/**
|
||
* @brief PMU PEKEY Press on time parameters.
|
||
*/
|
||
typedef enum __xpowers_press_on_time {
|
||
XPOWERS_POWERON_128MS,
|
||
XPOWERS_POWERON_512MS,
|
||
XPOWERS_POWERON_1S,
|
||
XPOWERS_POWERON_2S,
|
||
} xpowers_press_on_time_t;
|
||
|
||
|
||
/**
|
||
* @brief Charging led mode parameters.
|
||
*/
|
||
typedef enum __xpowers_chg_led_mode {
|
||
XPOWERS_CHG_LED_OFF,
|
||
XPOWERS_CHG_LED_BLINK_1HZ,
|
||
XPOWERS_CHG_LED_BLINK_4HZ,
|
||
XPOWERS_CHG_LED_ON,
|
||
XPOWERS_CHG_LED_CTRL_CHG, // The charging indicator is controlled by the charger
|
||
} xpowers_chg_led_mode_t;
|
||
|
||
/**
|
||
* @brief axp2101 charge target voltage parameters.
|
||
*/
|
||
typedef enum __xpowers_axp2101_chg_vol {
|
||
XPOWERS_AXP2101_CHG_VOL_4V = 1,
|
||
XPOWERS_AXP2101_CHG_VOL_4V1,
|
||
XPOWERS_AXP2101_CHG_VOL_4V2,
|
||
XPOWERS_AXP2101_CHG_VOL_4V35,
|
||
XPOWERS_AXP2101_CHG_VOL_4V4,
|
||
XPOWERS_AXP2101_CHG_VOL_MAX
|
||
} xpowers_axp2101_chg_vol_t;
|
||
|
||
/**
|
||
* @brief axp2101 charge currnet voltage parameters.
|
||
*/
|
||
typedef enum __xpowers_axp2101_chg_curr {
|
||
XPOWERS_AXP2101_CHG_CUR_0MA,
|
||
XPOWERS_AXP2101_CHG_CUR_100MA = 4,
|
||
XPOWERS_AXP2101_CHG_CUR_125MA,
|
||
XPOWERS_AXP2101_CHG_CUR_150MA,
|
||
XPOWERS_AXP2101_CHG_CUR_175MA,
|
||
XPOWERS_AXP2101_CHG_CUR_200MA,
|
||
XPOWERS_AXP2101_CHG_CUR_300MA,
|
||
XPOWERS_AXP2101_CHG_CUR_400MA,
|
||
XPOWERS_AXP2101_CHG_CUR_500MA,
|
||
XPOWERS_AXP2101_CHG_CUR_600MA,
|
||
XPOWERS_AXP2101_CHG_CUR_700MA,
|
||
XPOWERS_AXP2101_CHG_CUR_800MA,
|
||
XPOWERS_AXP2101_CHG_CUR_900MA,
|
||
XPOWERS_AXP2101_CHG_CUR_1000MA,
|
||
} xpowers_axp2101_chg_curr_t;
|
||
|
||
|
||
/**
|
||
* @brief axp192 charge target voltage parameters.
|
||
*/
|
||
typedef enum __xpowers_axp192_chg_vol {
|
||
XPOWERS_AXP192_CHG_VOL_4V1,
|
||
XPOWERS_AXP192_CHG_VOL_4V15,
|
||
XPOWERS_AXP192_CHG_VOL_4V2,
|
||
XPOWERS_AXP192_CHG_VOL_4V36,
|
||
XPOWERS_AXP192_CHG_VOL_MAX,
|
||
} xpowers_axp192_chg_vol_t;
|
||
|
||
/**
|
||
* @brief axp202 charge target voltage parameters.
|
||
*/
|
||
typedef enum __xpowers_axp202_chg_vol {
|
||
XPOWERS_AXP202_CHG_VOL_4V1,
|
||
XPOWERS_AXP202_CHG_VOL_4V15,
|
||
XPOWERS_AXP202_CHG_VOL_4V2,
|
||
XPOWERS_AXP202_CHG_VOL_4V36,
|
||
XPOWERS_AXP202_CHG_VOL_MAX,
|
||
} xpowers_axp202_chg_vol_t;
|
||
|
||
/**
|
||
* @brief axp192 charge currnet voltage parameters.
|
||
*/
|
||
typedef enum __xpowers_axp192_chg_curr {
|
||
XPOWERS_AXP192_CHG_CUR_100MA,
|
||
XPOWERS_AXP192_CHG_CUR_190MA,
|
||
XPOWERS_AXP192_CHG_CUR_280MA,
|
||
XPOWERS_AXP192_CHG_CUR_360MA,
|
||
XPOWERS_AXP192_CHG_CUR_450MA,
|
||
XPOWERS_AXP192_CHG_CUR_550MA,
|
||
XPOWERS_AXP192_CHG_CUR_630MA,
|
||
XPOWERS_AXP192_CHG_CUR_700MA,
|
||
XPOWERS_AXP192_CHG_CUR_780MA,
|
||
XPOWERS_AXP192_CHG_CUR_880MA,
|
||
XPOWERS_AXP192_CHG_CUR_960MA,
|
||
XPOWERS_AXP192_CHG_CUR_1000MA,
|
||
XPOWERS_AXP192_CHG_CUR_1080MA,
|
||
XPOWERS_AXP192_CHG_CUR_1160MA,
|
||
XPOWERS_AXP192_CHG_CUR_1240MA,
|
||
XPOWERS_AXP192_CHG_CUR_1320MA,
|
||
} xpowers_axp192_chg_curr_t;
|
||
|
||
/**
|
||
* @brief axp202 charge currnet voltage parameters.
|
||
*/
|
||
typedef enum __xpowers_axp202_chg_curr {
|
||
XPOWERS_AXP202_CHG_CUR_100MA,
|
||
XPOWERS_AXP202_CHG_CUR_190MA,
|
||
XPOWERS_AXP202_CHG_CUR_280MA,
|
||
XPOWERS_AXP202_CHG_CUR_360MA,
|
||
XPOWERS_AXP202_CHG_CUR_450MA,
|
||
XPOWERS_AXP202_CHG_CUR_550MA,
|
||
XPOWERS_AXP202_CHG_CUR_630MA,
|
||
XPOWERS_AXP202_CHG_CUR_700MA,
|
||
XPOWERS_AXP202_CHG_CUR_780MA,
|
||
XPOWERS_AXP202_CHG_CUR_880MA,
|
||
XPOWERS_AXP202_CHG_CUR_960MA,
|
||
XPOWERS_AXP202_CHG_CUR_1000MA,
|
||
XPOWERS_AXP202_CHG_CUR_1080MA,
|
||
XPOWERS_AXP202_CHG_CUR_1160MA,
|
||
XPOWERS_AXP202_CHG_CUR_1240MA,
|
||
XPOWERS_AXP202_CHG_CUR_1320MA,
|
||
} xpowers_axp202_chg_curr_t;
|
||
|
||
|
||
/**
|
||
* @brief axp2101 vbus currnet limit parameters.
|
||
*/
|
||
typedef enum {
|
||
XPOWERS_AXP2101_VBUS_CUR_LIM_100MA,
|
||
XPOWERS_AXP2101_VBUS_CUR_LIM_500MA,
|
||
XPOWERS_AXP2101_VBUS_CUR_LIM_900MA,
|
||
XPOWERS_AXP2101_VBUS_CUR_LIM_1000MA,
|
||
XPOWERS_AXP2101_VBUS_CUR_LIM_1500MA,
|
||
XPOWERS_AXP2101_VBUS_CUR_LIM_2000MA,
|
||
} xpowers_axp2101_vbus_cur_limit_t;
|
||
|
||
/**
|
||
* @brief axp192 vbus currnet limit parameters.
|
||
*/
|
||
typedef enum {
|
||
XPOWERS_AXP192_VBUS_CUR_LIM_500MA,
|
||
XPOWERS_AXP192_VBUS_CUR_LIM_100MA,
|
||
XPOWERS_AXP192_VBUS_CUR_LIM_OFF,
|
||
} xpowers_axp192_vbus_cur_limit_t;
|
||
|
||
|
||
/**
|
||
* @brief axp202 vbus currnet limit parameters.
|
||
*/
|
||
typedef enum {
|
||
XPOWERS_AXP202_VBUS_CUR_LIM_900MA,
|
||
XPOWERS_AXP202_VBUS_CUR_LIM_500MA,
|
||
XPOWERS_AXP202_VBUS_CUR_LIM_100MA,
|
||
XPOWERS_AXP202_VBUS_CUR_LIM_OFF,
|
||
} xpowers_axp202_vbus_cur_limit_t;
|
||
|
||
|
||
typedef enum {
|
||
XPOWERS_AXP192_VBUS_VOL_LIM_4V,
|
||
XPOWERS_AXP192_VBUS_VOL_LIM_4V1,
|
||
XPOWERS_AXP192_VBUS_VOL_LIM_4V2,
|
||
XPOWERS_AXP192_VBUS_VOL_LIM_4V3,
|
||
XPOWERS_AXP192_VBUS_VOL_LIM_4V4,
|
||
XPOWERS_AXP192_VBUS_VOL_LIM_4V5,
|
||
XPOWERS_AXP192_VBUS_VOL_LIM_4V6,
|
||
XPOWERS_AXP192_VBUS_VOL_LIM_4V7,
|
||
} xpowers_axp192_vbus_vol_limit_t;
|
||
|
||
typedef enum {
|
||
XPOWERS_AXP202_VBUS_VOL_LIM_4V,
|
||
XPOWERS_AXP202_VBUS_VOL_LIM_4V1,
|
||
XPOWERS_AXP202_VBUS_VOL_LIM_4V2,
|
||
XPOWERS_AXP202_VBUS_VOL_LIM_4V3,
|
||
XPOWERS_AXP202_VBUS_VOL_LIM_4V4,
|
||
XPOWERS_AXP202_VBUS_VOL_LIM_4V5,
|
||
XPOWERS_AXP202_VBUS_VOL_LIM_4V6,
|
||
XPOWERS_AXP202_VBUS_VOL_LIM_4V7,
|
||
} xpowers_axp202_vbus_vol_limit_t;
|
||
|
||
typedef enum {
|
||
XPOWERS_AXP2101_VBUS_VOL_LIM_3V88,
|
||
XPOWERS_AXP2101_VBUS_VOL_LIM_3V96,
|
||
XPOWERS_AXP2101_VBUS_VOL_LIM_4V04,
|
||
XPOWERS_AXP2101_VBUS_VOL_LIM_4V12,
|
||
XPOWERS_AXP2101_VBUS_VOL_LIM_4V20,
|
||
XPOWERS_AXP2101_VBUS_VOL_LIM_4V28,
|
||
XPOWERS_AXP2101_VBUS_VOL_LIM_4V36,
|
||
XPOWERS_AXP2101_VBUS_VOL_LIM_4V44,
|
||
XPOWERS_AXP2101_VBUS_VOL_LIM_4V52,
|
||
XPOWERS_AXP2101_VBUS_VOL_LIM_4V60,
|
||
XPOWERS_AXP2101_VBUS_VOL_LIM_4V68,
|
||
XPOWERS_AXP2101_VBUS_VOL_LIM_4V76,
|
||
XPOWERS_AXP2101_VBUS_VOL_LIM_4V84,
|
||
XPOWERS_AXP2101_VBUS_VOL_LIM_4V92,
|
||
XPOWERS_AXP2101_VBUS_VOL_LIM_5V,
|
||
XPOWERS_AXP2101_VBUS_VOL_LIM_5V08,
|
||
} xpower_apx2101_vbus_vol_limit_t;
|
||
|
||
|
||
|
||
|
||
/**
|
||
* @brief XPowersLibInterface interrupt control mask parameters.
|
||
* Common interrupt interfaces
|
||
* @Example: enableInterrupt(XPOWERS_USB_INSERT_INT|XPOWERS_USB_REMOVE_INT);
|
||
* disableInterrupt(XPOWERS_CHARGE_START_INT|XPOWERS_PWR_BTN_CLICK_INT);
|
||
*/
|
||
typedef enum __xpowers_interrupt_enum {
|
||
XPOWERS_USB_INSERT_INT = _BV(0),
|
||
XPOWERS_USB_REMOVE_INT = _BV(1),
|
||
XPOWERS_BATTERY_INSERT_INT = _BV(2),
|
||
XPOWERS_BATTERY_REMOVE_INT = _BV(3),
|
||
XPOWERS_CHARGE_START_INT = _BV(4),
|
||
XPOWERS_CHARGE_DONE_INT = _BV(5),
|
||
XPOWERS_PWR_BTN_CLICK_INT = _BV(6),
|
||
XPOWERS_PWR_BTN_LONGPRESSED_INT = _BV(7),
|
||
XPOWERS_ALL_INT = _BV(8),
|
||
} xpowers_interrupt_enum_t;
|
||
|
||
|
||
/**
|
||
* @brief axp192 interrupt control mask parameters.
|
||
*/
|
||
typedef enum __xpowers_axp192_irq {
|
||
//! IRQ1 REG 40H
|
||
XPOWERS_AXP192_VBUS_VHOLD_LOW_IRQ = _BV(1), //VBUS is available, but lower than V HOLD, IRQ enable
|
||
XPOWERS_AXP192_VBUS_REMOVE_IRQ = _BV(2), //VBUS removed, IRQ enable
|
||
XPOWERS_AXP192_VBUS_INSERT_IRQ = _BV(3), //VBUS connected, IRQ enable
|
||
XPOWERS_AXP192_VBUS_OVER_VOL_IRQ = _BV(4), //VBUS over-voltage, IRQ enable
|
||
XPOWERS_AXP192_ACIN_REMOVED_IRQ = _BV(5), //ACIN removed, IRQ enable
|
||
XPOWERS_AXP192_ACIN_CONNECT_IRQ = _BV(6), //ACIN connected, IRQ enable
|
||
XPOWERS_AXP192_ACIN_OVER_VOL_IRQ = _BV(7), //ACIN over-voltage, IRQ enable
|
||
|
||
//! IRQ2 REG 41H
|
||
XPOWERS_AXP192_BATT_LOW_TEMP_IRQ = _BV(8), //Battery low-temperature, IRQ enable
|
||
XPOWERS_AXP192_BATT_OVER_TEMP_IRQ = _BV(9), //Battery over-temperature, IRQ enable
|
||
XPOWERS_AXP192_BAT_CHG_DONE_IRQ = _BV(10), //Charge finished, IRQ enable
|
||
XPOWERS_AXP192_BAT_CHG_START_IRQ = _BV(11), //Be charging, IRQ enable
|
||
XPOWERS_AXP192_BATT_EXIT_ACTIVATE_IRQ = _BV(12), //Exit battery activate mode, IRQ enable
|
||
XPOWERS_AXP192_BATT_ACTIVATE_IRQ = _BV(13), //Battery activate mode, IRQ enable
|
||
XPOWERS_AXP192_BAT_REMOVE_IRQ = _BV(14), //Battery removed, IRQ enable
|
||
XPOWERS_AXP192_BAT_INSERT_IRQ = _BV(15), //Battery connected, IRQ enable
|
||
|
||
//! IRQ3 REG 42H
|
||
XPOWERS_AXP192_PKEY_LONG_IRQ = _BV(16), //PEK long press, IRQ enable
|
||
XPOWERS_AXP192_PKEY_SHORT_IRQ = _BV(17), //PEK short press, IRQ enable
|
||
//**Reserved and unchangeable BIT 2
|
||
XPOWERS_AXP192_DC3_LOW_VOL_IRQ = _BV(19), //DC-DC3output voltage is lower than the set value, IRQ enable
|
||
XPOWERS_AXP192_DC2_LOW_VOL_IRQ = _BV(20), //DC-DC2 output voltage is lower than the set value, IRQ enable
|
||
XPOWERS_AXP192_DC1_LOW_VOL_IRQ = _BV(21), //DC-DC1 output voltage is lower than the set value, IRQ enable
|
||
XPOWERS_AXP192_CHARGE_LOW_CUR_IRQ = _BV(22), //Charge current is lower than the set current, IRQ enable
|
||
XPOWERS_AXP192_CHIP_TEMP_HIGH_IRQ = _BV(23), //XPOWERS internal over-temperature, IRQ enable
|
||
|
||
//! IRQ4 REG 43H
|
||
XPOWERS_AXP192_APS_LOW_VOL_LEVEL_IRQ = _BV(24), //APS low-voltage, IRQ enable
|
||
//**Reserved and unchangeable BIT 1
|
||
XPOWERS_AXP192_VBUS_SESSION_END_IRQ = _BV(26), //VBUS Session End IRQ enable
|
||
XPOWERS_AXP192_VBUS_SESSION_AB_IRQ = _BV(27), //VBUS Session A/B IRQ enable
|
||
XPOWERS_AXP192_VBUS_INVALID_IRQ = _BV(28), //VBUS invalid, IRQ enable
|
||
XPOWERS_AXP192_VBUS_VAILD_IRQ = _BV(29), //VBUS valid, IRQ enable
|
||
XPOWERS_AXP192_NOE_OFF_IRQ = _BV(30), //N_OE shutdown, IRQ enable
|
||
XPOWERS_AXP192_NOE_ON_IRQ = _BV(31), //N_OE startup, IRQ enable
|
||
|
||
//! IRQ5 REG 4AH
|
||
XPOWERS_AXP192_GPIO0_EDGE_TRIGGER_IRQ = _BV(32), //GPIO0 input edge trigger, IRQ enable
|
||
XPOWERS_AXP192_GPIO1_EDGE_TRIGGER_IRQ = _BV(33), //GPIO1input edge trigger or ADC input, IRQ enable
|
||
XPOWERS_AXP192_GPIO2_EDGE_TRIGGER_IRQ = _BV(34), //GPIO2input edge trigger, IRQ enable
|
||
//**Reserved and unchangeable BIT 3
|
||
//**Reserved and unchangeable BIT 4
|
||
//**Reserved and unchangeable BIT 5
|
||
//**Reserved and unchangeable BIT 6
|
||
XPOWERS_AXP192_TIMER_TIMEOUT_IRQ = _BV(39), //Timer timeout, IRQ enable
|
||
|
||
XPOWERS_AXP192_ALL_IRQ = (0xFFFFFFFFFFULL)
|
||
} xpowers_axp192_irq_t;
|
||
|
||
|
||
|
||
/**
|
||
* @brief axp2101 interrupt control mask parameters.
|
||
*/
|
||
typedef enum __xpowers_axp2101_irq {
|
||
//! IRQ1 REG 40H
|
||
XPOWERS_AXP2101_BAT_NOR_UNDER_TEMP_IRQ = _BV(0), // Battery Under Temperature in Work
|
||
XPOWERS_AXP2101_BAT_NOR_OVER_TEMP_IRQ = _BV(1), // Battery Over Temperature in Work mode
|
||
XPOWERS_AXP2101_BAT_CHG_UNDER_TEMP_IRQ = _BV(2), // Battery Under Temperature in Charge mode IRQ(bcut_irq)
|
||
XPOWERS_AXP2101_BAT_CHG_OVER_TEMP_IRQ = _BV(3), // Battery Over Temperature in Charge mode IRQ(bcot_irq) enable
|
||
XPOWERS_AXP2101_GAUGE_NEW_SOC_IRQ = _BV(4), // Gauge New SOC IRQ(lowsoc_irq) enable (low state of charge)
|
||
XPOWERS_AXP2101_WDT_TIMEOUT_IRQ = _BV(5), // Gauge Watchdog Timeout IRQ(gwdt_irq) enable
|
||
XPOWERS_AXP2101_WARNING_LEVEL1_IRQ = _BV(6), // SOC drop to Warning Level1 IRQ(socwl1_irq) enable
|
||
XPOWERS_AXP2101_WARNING_LEVEL2_IRQ = _BV(7), // SOC drop to Warning Level2 IRQ(socwl2_irq) enable
|
||
|
||
//! IRQ2 REG 41H
|
||
XPOWERS_AXP2101_PKEY_POSITIVE_IRQ = _BV(8), // POWERON Positive Edge IRQ(ponpe_irq_en) enable
|
||
XPOWERS_AXP2101_PKEY_NEGATIVE_IRQ = _BV(9), // POWERON Negative Edge IRQ(ponne_irq_en) enable
|
||
XPOWERS_AXP2101_PKEY_LONG_IRQ = _BV(10), // POWERON Long PRESS IRQ(ponlp_irq) enable
|
||
XPOWERS_AXP2101_PKEY_SHORT_IRQ = _BV(11), // POWERON Short PRESS IRQ(ponsp_irq_en) enable
|
||
XPOWERS_AXP2101_BAT_REMOVE_IRQ = _BV(12), // Battery Remove IRQ(bremove_irq) enable
|
||
XPOWERS_AXP2101_BAT_INSERT_IRQ = _BV(13), // Battery Insert IRQ(binsert_irq) enabl
|
||
XPOWERS_AXP2101_VBUS_REMOVE_IRQ = _BV(14), // VBUS Remove IRQ(vremove_irq) enabl
|
||
XPOWERS_AXP2101_VBUS_INSERT_IRQ = _BV(15), // VBUS Insert IRQ(vinsert_irq) enable
|
||
|
||
//! IRQ3 REG 42H
|
||
XPOWERS_AXP2101_BAT_OVER_VOL_IRQ = _BV(16), // Battery Over Voltage Protection IRQ(bovp_irq) enable
|
||
XPOWERS_AXP2101_CHARGER_TIMER_IRQ = _BV(17), // Charger Safety Timer1/2 expire IRQ(chgte_irq) enable
|
||
XPOWERS_AXP2101_DIE_OVER_TEMP_IRQ = _BV(18), // DIE Over Temperature level1 IRQ(dotl1_irq) enable
|
||
XPOWERS_AXP2101_BAT_CHG_START_IRQ = _BV(19), // Charger start IRQ(chgst_irq) enable
|
||
XPOWERS_AXP2101_BAT_CHG_DONE_IRQ = _BV(20), // Battery charge done IRQ(chgdn_irq) enable
|
||
XPOWERS_AXP2101_BATFET_OVER_CURR_IRQ = _BV(21), // BATFET Over Current Protection IRQ(bocp_irq) enable
|
||
XPOWERS_AXP2101_LDO_OVER_CURR_IRQ = _BV(22), // LDO Over Current IRQ(ldooc_irq) enable
|
||
XPOWERS_AXP2101_WDT_EXPIRE_IRQ = _BV(23), // Watchdog Expire IRQ(wdexp_irq) enable
|
||
|
||
XPOWERS_AXP2101_ALL_IRQ = (0xFFFFFFFFUL)
|
||
} xpowers_axp2101_irq_t;
|
||
|
||
|
||
/**
|
||
* @brief axp202 interrupt control mask parameters.
|
||
*/
|
||
typedef enum __xpowers_axp202_irq {
|
||
//! IRQ1 REG 40H
|
||
XPOWERS_AXP202_VBUS_VHOLD_LOW_IRQ = _BV(1), //VBUS is available, but lower than V HOLD, IRQ enable
|
||
XPOWERS_AXP202_VBUS_REMOVE_IRQ = _BV(2), //VBUS removed, IRQ enable
|
||
XPOWERS_AXP202_VBUS_INSERT_IRQ = _BV(3), //VBUS connected, IRQ enable
|
||
XPOWERS_AXP202_VBUS_OVER_VOL_IRQ = _BV(4), //VBUS over-voltage, IRQ enable
|
||
XPOWERS_AXP202_ACIN_REMOVED_IRQ = _BV(5), //ACIN removed, IRQ enable
|
||
XPOWERS_AXP202_ACIN_CONNECT_IRQ = _BV(6), //ACIN connected, IRQ enable
|
||
XPOWERS_AXP202_ACIN_OVER_VOL_IRQ = _BV(7), //ACIN over-voltage, IRQ enable
|
||
|
||
//! IRQ2 REG 41H
|
||
XPOWERS_AXP202_BATT_LOW_TEMP_IRQ = _BV(8), //Battery low-temperature, IRQ enable
|
||
XPOWERS_AXP202_BATT_OVER_TEMP_IRQ = _BV(9), //Battery over-temperature, IRQ enable
|
||
XPOWERS_AXP202_BAT_CHG_DONE_IRQ = _BV(10), //Charge finished, IRQ enable
|
||
XPOWERS_AXP202_BAT_CHG_START_IRQ = _BV(11), //Be charging, IRQ enable
|
||
XPOWERS_AXP202_BATT_EXIT_ACTIVATE_IRQ = _BV(12), //Exit battery activate mode, IRQ enable
|
||
XPOWERS_AXP202_BATT_ACTIVATE_IRQ = _BV(13), //Battery activate mode, IRQ enable
|
||
XPOWERS_AXP202_BAT_REMOVE_IRQ = _BV(14), //Battery removed, IRQ enable
|
||
XPOWERS_AXP202_BAT_INSERT_IRQ = _BV(15), //Battery connected, IRQ enable
|
||
|
||
//! IRQ3 REG 42H
|
||
XPOWERS_AXP202_PKEY_LONG_IRQ = _BV(16), //PEK long press, IRQ enable
|
||
XPOWERS_AXP202_PKEY_SHORT_IRQ = _BV(17), //PEK short press, IRQ enable
|
||
XPOWERS_AXP202_LDO3_LOW_VOL_IRQ = _BV(18), //LDO3output voltage is lower than the set value, IRQ enable
|
||
XPOWERS_AXP202_DC3_LOW_VOL_IRQ = _BV(19), //DC-DC3output voltage is lower than the set value, IRQ enable
|
||
XPOWERS_AXP202_DC2_LOW_VOL_IRQ = _BV(20), //DC-DC2 output voltage is lower than the set value, IRQ enable
|
||
//**Reserved and unchangeable BIT 5
|
||
XPOWERS_AXP202_CHARGE_LOW_CUR_IRQ = _BV(22), //Charge current is lower than the set current, IRQ enable
|
||
XPOWERS_AXP202_CHIP_TEMP_HIGH_IRQ = _BV(23), //AXP202 internal over-temperature, IRQ enable
|
||
|
||
//! IRQ4 REG 43H
|
||
XPOWERS_AXP202_APS_LOW_VOL_LEVEL2_IRQ = _BV(24), //APS low-voltage, IRQ enable(LEVEL2)
|
||
XPOWERS_APX202_APS_LOW_VOL_LEVEL1_IRQ = _BV(25), //APS low-voltage, IRQ enable(LEVEL1)
|
||
XPOWERS_AXP202_VBUS_SESSION_END_IRQ = _BV(26), //VBUS Session End IRQ enable
|
||
XPOWERS_AXP202_VBUS_SESSION_AB_IRQ = _BV(27), //VBUS Session A/B IRQ enable
|
||
XPOWERS_AXP202_VBUS_INVALID_IRQ = _BV(28), //VBUS invalid, IRQ enable
|
||
XPOWERS_AXP202_VBUS_VAILD_IRQ = _BV(29), //VBUS valid, IRQ enable
|
||
XPOWERS_AXP202_NOE_OFF_IRQ = _BV(30), //N_OE shutdown, IRQ enable
|
||
XPOWERS_AXP202_NOE_ON_IRQ = _BV(31), //N_OE startup, IRQ enable
|
||
|
||
//! IRQ5 REG 44H
|
||
XPOWERS_AXP202_GPIO0_EDGE_TRIGGER_IRQ = _BV(32), //GPIO0 input edge trigger, IRQ enable
|
||
XPOWERS_AXP202_GPIO1_EDGE_TRIGGER_IRQ = _BV(33), //GPIO1input edge trigger or ADC input, IRQ enable
|
||
XPOWERS_AXP202_GPIO2_EDGE_TRIGGER_IRQ = _BV(34), //GPIO2input edge trigger, IRQ enable
|
||
XPOWERS_AXP202_GPIO3_EDGE_TRIGGER_IRQ = _BV(35), //GPIO3 input edge trigger, IRQ enable
|
||
//**Reserved and unchangeable BIT 4
|
||
XPOWERS_AXP202_PKEY_NEGATIVE_IRQ = _BV(37), //PEK press falling edge, IRQ enable
|
||
XPOWERS_AXP202_PKEY_POSITIVE_IRQ = _BV(38), //PEK press rising edge, IRQ enable
|
||
XPOWERS_AXP202_TIMER_TIMEOUT_IRQ = _BV(39), //Timer timeout, IRQ enable
|
||
|
||
XPOWERS_AXP202_ALL_IRQ = (0xFFFFFFFFFFULL)
|
||
} xpowers_axp202_irq_t;
|