'''
MIT License
Copyright (c) 2019 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.
axp20x.py - MicroPython library for X-Power AXP202 chip.
Created by Lewis he on June 24, 2019.
github:https://github.com/lewisxhe/AXP202X_Libraries
'''
AXP202_SLAVE_ADDRESS = 0x35
AXP192_SLAVE_ADDRESS = 0x34
AXP202_CHIP_ID = 0x41
AXP192_CHIP_ID = 0x03
AXP202_STATUS = 0x00
AXP202_MODE_CHGSTATUS = 0x01
AXP202_OTG_STATUS = 0x02
AXP202_IC_TYPE = 0x03
AXP202_DATA_BUFFER1 = 0x04
AXP202_DATA_BUFFER2 = 0x05
AXP202_DATA_BUFFER3 = 0x06
AXP202_DATA_BUFFER4 = 0x07
AXP202_DATA_BUFFER5 = 0x08
AXP202_DATA_BUFFER6 = 0x09
AXP202_DATA_BUFFER7 = 0x0A
AXP202_DATA_BUFFER8 = 0x0B
AXP202_DATA_BUFFER9 = 0x0C
AXP202_DATA_BUFFERA = 0x0D
AXP202_DATA_BUFFERB = 0x0E
AXP202_DATA_BUFFERC = 0x0F
AXP202_LDO234_DC23_CTL = 0x12
AXP202_DC2OUT_VOL = 0x23
AXP202_LDO3_DC2_DVM = 0x25
AXP202_DC3OUT_VOL = 0x27
AXP202_LDO24OUT_VOL = 0x28
AXP202_LDO3OUT_VOL = 0x29
AXP202_IPS_SET = 0x30
AXP202_VOFF_SET = 0x31
AXP202_OFF_CTL = 0x32
AXP202_CHARGE1 = 0x33
AXP202_CHARGE2 = 0x34
AXP202_BACKUP_CHG = 0x35
AXP202_POK_SET = 0x36
AXP202_DCDC_FREQSET = 0x37
AXP202_VLTF_CHGSET = 0x38
AXP202_VHTF_CHGSET = 0x39
AXP202_APS_WARNING1 = 0x3A
AXP202_APS_WARNING2 = 0x3B
AXP202_TLTF_DISCHGSET = 0x3C
AXP202_THTF_DISCHGSET = 0x3D
AXP202_DCDC_MODESET = 0x80
AXP202_ADC_EN1 = 0x82
AXP202_ADC_EN2 = 0x83
AXP202_ADC_SPEED = 0x84
AXP202_ADC_INPUTRANGE = 0x85
AXP202_ADC_IRQ_RETFSET = 0x86
AXP202_ADC_IRQ_FETFSET = 0x87
AXP202_TIMER_CTL = 0x8A
AXP202_VBUS_DET_SRP = 0x8B
AXP202_HOTOVER_CTL = 0x8F
AXP202_GPIO0_CTL = 0x90
AXP202_GPIO0_VOL = 0x91
AXP202_GPIO1_CTL = 0x92
AXP202_GPIO2_CTL = 0x93
AXP202_GPIO012_SIGNAL = 0x94
AXP202_GPIO3_CTL = 0x95
AXP202_INTEN1 = 0x40
AXP202_INTEN2 = 0x41
AXP202_INTEN3 = 0x42
AXP202_INTEN4 = 0x43
AXP202_INTEN5 = 0x44
AXP202_INTSTS1 = 0x48
AXP202_INTSTS2 = 0x49
AXP202_INTSTS3 = 0x4A
AXP202_INTSTS4 = 0x4B
AXP202_INTSTS5 = 0x4C
AXP192_INTEN1 = 0x40
AXP192_INTEN2 = 0x41
AXP192_INTEN3 = 0x42
AXP192_INTEN4 = 0x43
AXP192_INTEN5 = 0x4A
AXP192_INTSTS1 = 0x44
AXP192_INTSTS2 = 0x45
AXP192_INTSTS3 = 0x46
AXP192_INTSTS4 = 0x47
AXP192_INTSTS5 = 0x4D
AXP192_DC1_VLOTAGE = 0x26
AXP202_BAT_AVERVOL_H8 = 0x78
AXP202_BAT_AVERVOL_L4 = 0x79
AXP202_BAT_AVERCHGCUR_H8 = 0x7A
AXP202_BAT_AVERCHGCUR_L4 = 0x7B
AXP202_BAT_VOL_H8 = 0x50
AXP202_BAT_VOL_L4 = 0x51
AXP202_ACIN_VOL_H8 = 0x56
AXP202_ACIN_VOL_L4 = 0x57
AXP202_ACIN_CUR_H8 = 0x58
AXP202_ACIN_CUR_L4 = 0x59
AXP202_VBUS_VOL_H8 = 0x5A
AXP202_VBUS_VOL_L4 = 0x5B
AXP202_VBUS_CUR_H8 = 0x5C
AXP202_VBUS_CUR_L4 = 0x5D
AXP202_INTERNAL_TEMP_H8 = 0x5E
AXP202_INTERNAL_TEMP_L4 = 0x5F
AXP202_TS_IN_H8 = 0x62
AXP202_TS_IN_L4 = 0x63
AXP202_GPIO0_VOL_ADC_H8 = 0x64
AXP202_GPIO0_VOL_ADC_L4 = 0x65
AXP202_GPIO1_VOL_ADC_H8 = 0x66
AXP202_GPIO1_VOL_ADC_L4 = 0x67
AXP202_BAT_AVERDISCHGCUR_H8 = 0x7C
AXP202_BAT_AVERDISCHGCUR_L5 = 0x7D
AXP202_APS_AVERVOL_H8 = 0x7E
AXP202_APS_AVERVOL_L4 = 0x7F
AXP202_INT_BAT_CHGCUR_H8 = 0xA0
AXP202_INT_BAT_CHGCUR_L4 = 0xA1
AXP202_EXT_BAT_CHGCUR_H8 = 0xA2
AXP202_EXT_BAT_CHGCUR_L4 = 0xA3
AXP202_INT_BAT_DISCHGCUR_H8 = 0xA4
AXP202_INT_BAT_DISCHGCUR_L4 = 0xA5
AXP202_EXT_BAT_DISCHGCUR_H8 = 0xA6
AXP202_EXT_BAT_DISCHGCUR_L4 = 0xA7
AXP202_BAT_CHGCOULOMB3 = 0xB0
AXP202_BAT_CHGCOULOMB2 = 0xB1
AXP202_BAT_CHGCOULOMB1 = 0xB2
AXP202_BAT_CHGCOULOMB0 = 0xB3
AXP202_BAT_DISCHGCOULOMB3 = 0xB4
AXP202_BAT_DISCHGCOULOMB2 = 0xB5
AXP202_BAT_DISCHGCOULOMB1 = 0xB6
AXP202_BAT_DISCHGCOULOMB0 = 0xB7
AXP202_COULOMB_CTL = 0xB8
AXP202_BAT_POWERH8 = 0x70
AXP202_BAT_POWERM8 = 0x71
AXP202_BAT_POWERL8 = 0x72
AXP202_VREF_TEM_CTRL = 0xF3
AXP202_BATT_PERCENTAGE = 0xB9
AXP202_IRQ_USBLO = 1
AXP202_IRQ_USBRE = 2
AXP202_IRQ_USBIN = 3
AXP202_IRQ_USBOV = 4
AXP202_IRQ_ACRE = 5
AXP202_IRQ_ACIN = 6
AXP202_IRQ_ACOV = 7
AXP202_IRQ_TEMLO = 8
AXP202_IRQ_TEMOV = 9
AXP202_IRQ_CHAOV = 10
AXP202_IRQ_CHAST = 11
AXP202_IRQ_BATATOU = 12
AXP202_IRQ_BATATIN = 13
AXP202_IRQ_BATRE = 14
AXP202_IRQ_BATIN = 15
AXP202_IRQ_POKLO = 16
AXP202_IRQ_POKSH = 17
AXP202_IRQ_LDO3LO = 18
AXP202_IRQ_DCDC3LO = 19
AXP202_IRQ_DCDC2LO = 20
AXP202_IRQ_CHACURLO = 22
AXP202_IRQ_ICTEMOV = 23
AXP202_IRQ_EXTLOWARN2 = 24
AXP202_IRQ_EXTLOWARN1 = 25
AXP202_IRQ_SESSION_END = 26
AXP202_IRQ_SESS_AB_VALID = 27
AXP202_IRQ_VBUS_UN_VALID = 28
AXP202_IRQ_VBUS_VALID = 29
AXP202_IRQ_PDOWN_BY_NOE = 30
AXP202_IRQ_PUP_BY_NOE = 31
AXP202_IRQ_GPIO0TG = 32
AXP202_IRQ_GPIO1TG = 33
AXP202_IRQ_GPIO2TG = 34
AXP202_IRQ_GPIO3TG = 35
AXP202_IRQ_PEKFE = 37
AXP202_IRQ_PEKRE = 38
AXP202_IRQ_TIMER = 39
AXP202_BATT_VOLTAGE_STEP = 1.1
AXP202_BATT_DISCHARGE_CUR_STEP = 0.5
AXP202_BATT_CHARGE_CUR_STEP = 0.5
AXP202_ACIN_VOLTAGE_STEP = 1.7
AXP202_ACIN_CUR_STEP = 0.625
AXP202_VBUS_VOLTAGE_STEP = 1.7
AXP202_VBUS_CUR_STEP = 0.375
AXP202_INTENAL_TEMP_STEP = 0.1
AXP202_APS_VOLTAGE_STEP = 1.4
AXP202_TS_PIN_OUT_STEP = 0.8
AXP202_GPIO0_STEP = 0.5
AXP202_GPIO1_STEP = 0.5
AXP202_EXTEN = 0
AXP202_DCDC3 = 1
AXP202_LDO2 = 2
AXP202_LDO4 = 3
AXP202_DCDC2 = 4
AXP202_LDO3 = 6
AXP192_DCDC1 = 0
AXP192_DCDC3 = 1
AXP192_LDO2 = 2
AXP192_LDO3 = 3
AXP192_DCDC2 = 4
AXP192_EXTEN = 6
AXP202_ADC1 = 1
AXP202_ADC2 = 2
AXP202_BATT_VOL_ADC1 = 7
AXP202_BATT_CUR_ADC1 = 6
AXP202_ACIN_VOL_ADC1 = 5
AXP202_ACIN_CUR_ADC1 = 4
AXP202_VBUS_VOL_ADC1 = 3
AXP202_VBUS_CUR_ADC1 = 2
AXP202_APS_VOL_ADC1 = 1
AXP202_TS_PIN_ADC1 = 0
AXP202_TEMP_MONITORING_ADC2 = 7
AXP202_GPIO1_FUNC_ADC2 = 3
AXP202_GPIO0_FUNC_ADC2 = 2
AXP202_VBUS_VHOLD_LOW_IRQ = 1 << 1
AXP202_VBUS_REMOVED_IRQ = 1 << 2
AXP202_VBUS_CONNECT_IRQ = 1 << 3
AXP202_VBUS_OVER_VOL_IRQ = 1 << 4
AXP202_ACIN_REMOVED_IRQ = 1 << 5
AXP202_ACIN_CONNECT_IRQ = 1 << 6
AXP202_ACIN_OVER_VOL_IRQ = 1 << 7
AXP202_BATT_LOW_TEMP_IRQ = 1 << 8
AXP202_BATT_OVER_TEMP_IRQ = 1 << 9
AXP202_CHARGING_FINISHED_IRQ = 1 << 10
AXP202_CHARGING_IRQ = 1 << 11
AXP202_BATT_EXIT_ACTIVATE_IRQ = 1 << 12
AXP202_BATT_ACTIVATE_IRQ = 1 << 13
AXP202_BATT_REMOVED_IRQ = 1 << 14
AXP202_BATT_CONNECT_IRQ = 1 << 15
AXP202_PEK_LONGPRESS_IRQ = 1 << 16
AXP202_PEK_SHORTPRESS_IRQ = 1 << 17
AXP202_LDO3_LOW_VOL_IRQ = 1 << 18
AXP202_DC3_LOW_VOL_IRQ = 1 << 19
AXP202_DC2_LOW_VOL_IRQ = 1 << 20
AXP202_CHARGE_LOW_CUR_IRQ = 1 << 21
AXP202_CHIP_TEMP_HIGH_IRQ = 1 << 22
AXP202_APS_LOW_VOL_LEVEL2_IRQ = 1 << 24
APX202_APS_LOW_VOL_LEVEL1_IRQ = 1 << 25
AXP202_VBUS_SESSION_END_IRQ = 1 << 26
AXP202_VBUS_SESSION_AB_IRQ = 1 << 27
AXP202_VBUS_INVALID_IRQ = 1 << 28
AXP202_VBUS_VAILD_IRQ = 1 << 29
AXP202_NOE_OFF_IRQ = 1 << 30
AXP202_NOE_ON_IRQ = 1 << 31
AXP202_ALL_IRQ = 0xFFFF
AXP202_LDO3_LDO_MODE = 0
AXP202_LDO3_DCIN_MODE = 1
AXP202_LDO4_1250MV = 0
AXP202_LDO4_1300MV = 1
AXP202_LDO4_1400MV = 2
AXP202_LDO4_1500MV = 3
AXP202_LDO4_1600MV = 4
AXP202_LDO4_1700MV = 5
AXP202_LDO4_1800MV = 6
AXP202_LDO4_1900MV = 7
AXP202_LDO4_2000MV = 8
AXP202_LDO4_2500MV = 9
AXP202_LDO4_2700MV = 10
AXP202_LDO4_2800MV = 11
AXP202_LDO4_3000MV = 12
AXP202_LDO4_3100MV = 13
AXP202_LDO4_3200MV = 14
AXP202_LDO4_3300MV = 15
AXP202_STARTUP_TIME_128MS = 0
AXP202_STARTUP_TIME_3S = 1
AXP202_STARTUP_TIME_1S = 2
AXP202_STARTUP_TIME_2S = 3
AXP202_LONGPRESS_TIME_1S = 0
AXP202_LONGPRESS_TIME_1S5 = 1
AXP202_LONGPRESS_TIME_2S = 2
AXP202_LONGPRESS_TIME_2S5 = 3
AXP202_SHUTDOWN_TIME_4S = 0
AXP202_SHUTDOWN_TIME_6S = 1
AXP202_SHUTDOWN_TIME_8S = 2
AXP202_SHUTDOWN_TIME_10S = 3
AXP202_TARGET_VOL_4_1V = 0
AXP202_TARGET_VOL_4_15V = 1
AXP202_TARGET_VOL_4_2V = 2
AXP202_TARGET_VOL_4_36V = 3
AXP20X_LED_OFF = 0
AXP20X_LED_BLINK_1HZ = 1
AXP20X_LED_BLINK_4HZ = 2
AXP20X_LED_LOW_LEVEL = 3