diff options
Diffstat (limited to 'driver/charger/bd99955.h')
-rw-r--r-- | driver/charger/bd99955.h | 166 |
1 files changed, 166 insertions, 0 deletions
diff --git a/driver/charger/bd99955.h b/driver/charger/bd99955.h new file mode 100644 index 0000000000..e027f8e357 --- /dev/null +++ b/driver/charger/bd99955.h @@ -0,0 +1,166 @@ +/* Copyright 2016 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + * + * ROHM BD99955 battery charger driver. + */ + +#ifndef __CROS_EC_BD99955_H +#define __CROS_EC_BD99955_H + +#define BD99955_ADDR 0x12 /* 7bit address 0001_001 */ +#define I2C_ADDR_CHARGER BD99955_ADDR + +/* BD99955 commands to change the command code map */ +enum BD99955_COMMANDS { + BD99955_BAT_CHG_COMMAND, + BD99955_EXTENDED_COMMAND, + BD99955_DEBUG_COMMAND, + BD99955_INVALID_COMMAND +}; + +/* Charger parameters */ +#define CHARGER_NAME "bd99955" +#define CHARGE_V_MAX 19200 +#define CHARGE_V_MIN 3072 +#define CHARGE_V_STEP 16 +#define CHARGE_I_MAX 16320 +#define CHARGE_I_MIN 0 +#define CHARGE_I_OFF 0 +#define CHARGE_I_STEP 64 +#define INPUT_I_MAX 16352 +#define INPUT_I_MIN 0 +#define INPUT_I_STEP 32 + +/* Battery Charger Commands */ +#define BD99955_CMD_CHG_CURRENT 0x14 +#define BD99955_CMD_CHG_VOLTAGE 0x15 +#define BD99955_CMD_IBUS_LIM_SET 0x3C +#define BD99955_CMD_ICC_LIM_SET 0x3D +#define BD99955_CMD_PROTECT_SET 0x3E +#define BD99955_CMD_MAP_SET 0x3F + +/* Extended commands */ +#define BD99955_CMD_CHGSTM_STATUS 0x00 +#define BD99955_CMD_VBAT_VSYS_STATUS 0x01 +#define BD99955_CMD_VBUS_VCC_STATUS 0x02 +#define BD99955_CMD_CHGOP_STATUS 0x03 +#define BD99955_CMD_WDT_STATUS 0x04 +#define BD99955_CMD_CUR_ILIM_VAL 0x05 +#define BD99955_CMD_SEL_ILIM_VAL 0x06 +#define BD99955_CMD_EXT_IBUS_LIM_SET 0x07 +#define BD99955_CMD_EXT_ICC_LIM_SET 0x08 +#define BD99955_CMD_IOTG_LIM_SET 0x09 +#define BD99955_CMD_VIN_CTRL_SET 0x0A +#define BD99955_CMD_CHGOP_SET1 0x0B +#define BD99955_CMD_CHGOP_SET2 0x0C +#define BD99955_CMD_VBUSCLPS_TH_SET 0x0D +#define BD99955_CMD_VCCCLPS_TH_SET 0x0E +#define BD99955_CMD_CHGWDT_SET 0x0F +#define BD99955_CMD_BATTWDT_SET 0x10 +#define BD99955_CMD_VSYSREG_SETa 0x11 +#define BD99955_CMD_VSYSVAL_THH_SET 0x12 +#define BD99955_CMD_VSYSVAL_THL_SET 0x13 +#define BD99955_CMD_ITRICH_SET 0x14 +#define BD99955_CMD_IPRECH_SET 0x15 +#define BD99955_CMD_ICHG_SET 0x16 +#define BD99955_CMD_ITERM_SET 0x17 +#define BD99955_CMD_VPRECHG_TH_SET 0x18 +#define BD99955_CMD_VRBOOST_SET 0x19 +#define BD99955_CMD_VFASTCHG_REG_SET1 0x1A +#define BD99955_CMD_VFASTCHG_REG_SET2 0x1B +#define BD99955_CMD_VFASTCHG_REG_SET3 0x1C +#define BD99955_CMD_VRECHG_SET 0x1D +#define BD99955_CMD_VBATOVP_SET 0x1E +#define BD99955_CMD_IBATSHORT_SET 0x1F +#define BD99955_CMD_PROCHOT_CTRL_SET 0x20 +#define BD99955_CMD_PROCHOT_ICRIT_SET 0x21 +#define BD99955_CMD_PROCHOT_INORM_SET 0x22 +#define BD99955_CMD_PROCHOT_IDCHG_SET 0x23 +#define BD99955_CMD_PROCHOT_VSYS_SET 0x24 +#define BD99955_CMD_PMON_IOUT_CTRL_SET 0x25 +#define BD99955_CMD_PMON_DACIN_VAL 0x26 +#define BD99955_CMD_IOUT_DACIN_VAL 0x27 +#define BD99955_CMD_VCC_UCD_SET 0x28 +#define BD99955_CMD_VCC_UCD_STATUS 0x29 +#define BD99955_CMD_VCC_IDD_STATUS 0x2A +#define BD99955_CMD_VCC_UCD_FCTRL_SET 0x2B +#define BD99955_CMD_VCC_UCD_FCTRL_EN 0x2C +#define BD99955_CMD_VBUS_UCD_SET 0x30 +#define BD99955_CMD_VBUS_UCD_STATUS 0x31 +#define BD99955_CMD_VBUS_IDD_STATUS 0x32 +#define BD99955_CMD_VBUS_UCD_FCTRL_SET 0x33 +#define BD99955_CMD_VBUS_UCD_FCTRL_EN 0x34 +#define BD99955_CMD_CHIP_ID 0x38 +#define BD99955_CMD_CHIP_REV 0x39 +#define BD99955_CMD_IC_SET1 0x3A +#define BD99955_CMD_IC_SET2 0x3B +#define BD99955_CMD_SYSTEM_STATUS 0x3C +#define BD99955_CMD_SYSTEM_CTRL_SET 0x3D +#define BD99955_CMD_EXT_PROTECT_SET 0x3E +#define BD99955_CMD_EXT_MAP_SET 0x3F +#define BD99955_CMD_VM_CTRL_SET 0x40 +#define BD99955_CMD_THERM_WINDOW_SET1 0x41 +#define BD99955_CMD_THERM_WINDOW_SET2 0x42 +#define BD99955_CMD_THERM_WINDOW_SET3 0x43 +#define BD99955_CMD_THERM_WINDOW_SET4 0x44 +#define BD99955_CMD_THERM_WINDOW_SET5 0x45 +#define BD99955_CMD_IBATP_TH_SET 0x46 +#define BD99955_CMD_IBATM_TH_SET 0x47 +#define BD99955_CMD_VBAT_TH_SET 0x48 +#define BD99955_CMD_THERM_TH_SET 0x49 +#define BD99955_CMD_IACP_TH_SET 0x4A +#define BD99955_CMD_VACP_TH_SET 0x4B +#define BD99955_CMD_VBUS_TH_SET 0x4C +#define BD99955_CMD_VCC_TH_SET 0x4D +#define BD99955_CMD_VSYS_TH_SET 0x4E +#define BD99955_CMD_EXTIADP_TH_SET 0x4F +#define BD99955_CMD_IBATP_VAL 0x50 +#define BD99955_CMD_IBATP_AVE_VAL 0x51 +#define BD99955_CMD_IBATM_VAL 0x52 +#define BD99955_CMD_IBATM_AVE_VAL 0x53 +#define BD99955_CMD_VBAT_VAL 0x54 +#define BD99955_CMD_VBAT_AVE_VAL 0x55 +#define BD99955_CMD_THERM_VAL 0x56 +#define BD99955_CMD_VTH_VAL 0x57 +#define BD99955_CMD_IACP_VAL 0x58 +#define BD99955_CMD_IACP_AVE_VAL 0x59 +#define BD99955_CMD_VACP_VAL 0x5A +#define BD99955_CMD_VACP_AVE_VAL 0x5B +#define BD99955_CMD_VBUS_VAL 0x5C +#define BD99955_CMD_VBUS_AVE_VAL 0x5D +#define BD99955_CMD_VCC_VAL 0x5E +#define BD99955_CMD_VCC_AVE_VAL 0x5F +#define BD99955_CMD_VSYS_VAL 0x60 +#define BD99955_CMD_VSYS_AVE_VAL 0x61 +#define BD99955_CMD_EXTIADP_VAL 0x62 +#define BD99955_CMD_EXTIADP_AVE_VAL 0x63 +#define BD99955_CMD_VACPCLPS_TH_SET 0x64 +#define BD99955_CMD_INT0_SET 0x68 +#define BD99955_CMD_INT1_SET 0x69 +#define BD99955_CMD_INT2_SET 0x6A +#define BD99955_CMD_INT3_SET 0x6B +#define BD99955_CMD_INT4_SET 0x6C +#define BD99955_CMD_INT5_SET 0x6D +#define BD99955_CMD_INT6_SET 0x6E +#define BD99955_CMD_INT7_SET 0x6F +#define BD99955_CMD_INT0_STATUS 0x70 +#define BD99955_CMD_INT1_STATUS 0x71 +#define BD99955_CMD_INT2_STATUS 0x72 +#define BD99955_CMD_INT3_STATUS 0x73 +#define BD99955_CMD_INT4_STATUS 0x74 +#define BD99955_CMD_INT5_STATUS 0x75 +#define BD99955_CMD_INT6_STATUS 0x76 +#define BD99955_CMD_INT7_STATUS 0x77 +#define BD99955_CMD_REG0 0x78 +#define BD99955_CMD_REG1 0x79 +#define BD99955_CMD_OTPREG0 0x7A +#define BD99955_CMD_OTPREG1 0x7B +#define BD99955_CMD_SMBREG 0x7C +#define BD99955_CMD_DEBUG_MODE_SET 0x7F + +/* Charger operation control setting 2 */ +#define BD99955_CHGOP_SET2_CHG_EN (1 << 7) +#define BD99955_CHGOP_SET2_BATT_LEARN (1 << 8) + +#endif /* __CROS_EC_BD99955_H */ |