blob: 854691e2a750402f595be1761d872b4d72d60d8a [file] [log] [blame] [edit]
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright 2023 Google, LLC
*
* SW Support for MAX77779 IF-PMIC
*/
#ifndef MAX77779_REG_H_
#define MAX77779_REG_H_
#include "max77779_v070_0510b_prelim_regs.h"
/* b/257314583 FSHIP_EXIT_DTLS is still read only */
#define MAX77779_FSHIP_EXIT_DTLS MAX77779_PMIC_INT_MASK
#define MAX77759_FSHIP_EXIT_DTLS_RD \
MAX77779_PMIC_INT_MASK_FSHIP_NOT_RD
#define MAX77759_FSHIP_EXIT_DTLS_RD_SHIFT \
MAX77779_PMIC_INT_MASK_FSHIP_NOT_RD_SHIFT
#define MAX77759_FSHIP_EXIT_DTLS_RD_MASK \
MAX77779_PMIC_INT_MASK_FSHIP_NOT_RD_MASK
#define MAX77759_FSHIP_EXIT_DTLS_RD_CLEAR \
MAX77779_PMIC_INT_MASK_FSHIP_NOT_RD_CLEAR
/* TODO: b/257309885 do we still need this? */
#define MAX77779_CHG_CNFG_11_OTG_VBYP_5000MV 0x0
#define MAX77779_CHG_CNFG_11_OTG_VBYP_5100MV 0x2
/* TODO: b/257309885 do we still need this? */
#define MAX77779_CHG_CNFG_05_OTG_ILIM_DISABLE 0x00
#define MAX77779_CHG_CNFG_05_OTG_ILIM_500MA 0x01
#define MAX77779_CHG_CNFG_05_OTG_ILIM_1500MA 0x0b
#define MAX77779_CHG_CNFG_12_CHG_EN (0x1 << 7)
#define MAX77779_CHG_CNFG_12_WCINSEL (0x1 << 6)
#define MAX77779_CHG_CNFG_12_CHGINSEL (0x1 << 5)
#define MAX77779_CHG_CNFG_12_DISKIP (0x1 << 0)
/* TODO: b/257309885 do we still need this? */
#define MAX77779_CHG_CNFG_12_WCIN_REG_4_5 (0x0 << MAX77779_CHG_CNFG_12_WCIN_REG_SHIFT)
#define MAX77779_CHG_CNFG_12_WCIN_REG_4_85 (0x3 << MAX77779_CHG_CNFG_12_WCIN_REG_SHIFT)
/* TODO: b/284182020 - add config2, USR, and nIChgTerm to 0.7 regmap */
#define MAX77779_FG_CONFIG2 0xab
#define MAX77779_FG_CONFIG2_TALRTEN_SHIFT 6
#define MAX77779_FG_CONFIG2_TALRTEN_MASK (0x1 << 6)
#define MAX77779_FG_CONFIG2_TALRTEN_CLEAR (~(0x1 << 6))
#define MAX77779_FG_CONFIG2_DSOCEN_SHIFT 7
#define MAX77779_FG_CONFIG2_DSOCEN_MASK (0x1 << 7)
#define MAX77779_FG_CONFIG2_DSOCEN_CLEAR (~(0x1 << 7))
#define MAX77779_FG_CONFIG2_SPR_13_08_SHIFT 8
#define MAX77779_FG_CONFIG2_SPR_13_08_MASK (0x3f << 8)
#define MAX77779_FG_CONFIG2_SPR_13_08_CLEAR (~(0x3f << 8))
#define MAX77779_FG_CONFIG2_NRLD_SHIFT 14
#define MAX77779_FG_CONFIG2_NRLD_MASK (0x1 << 14)
#define MAX77779_FG_CONFIG2_NRLD_CLEAR (~(0x1 << 14))
#define MAX77779_FG_CONFIG2_LDMDL_SHIFT 15
#define MAX77779_FG_CONFIG2_LDMDL_MASK (0x1 << 15)
#define MAX77779_FG_CONFIG2_LDMDL_CLEAR (~(0x1 << 15))
MAX77779_BFF(max77779_fg_config2_talrten,6,6)
MAX77779_BFF(max77779_fg_config2_dsocen,7,7)
MAX77779_BFF(max77779_fg_config2_spr_13_08,13,8)
MAX77779_BFF(max77779_fg_config2_nrld,14,14)
MAX77779_BFF(max77779_fg_config2_ldmdl,15,15)
#define MAX77779_FG_USR 0xff
#define MAX77779_FG_USR_NLOCK_SHIFT 1
#define MAX77779_FG_USR_NLOCK_MASK (0x1 << 1)
#define MAX77779_FG_USR_NLOCK_CLEAR (~(0x1 << 1))
#define MAX77779_FG_USR_VLOCK_SHIFT 2
#define MAX77779_FG_USR_VLOCK_MASK (0x1 << 2)
#define MAX77779_FG_USR_VLOCK_CLEAR (~(0x1 << 2))
#define MAX77779_FG_USR_RLOCK_SHIFT 3
#define MAX77779_FG_USR_RLOCK_MASK (0x1 << 3)
#define MAX77779_FG_USR_RLOCK_CLEAR (~(0x1 << 3))
#define MAX77779_FG_USR_SPR_USR_0_SHIFT 4
#define MAX77779_FG_USR_SPR_USR_0_MASK (0xfff << 4)
#define MAX77779_FG_USR_SPR_USR_0_CLEAR (~(0xfff << 4))
MAX77779_BFF(max77779_fg_usr_nlock,1,1)
MAX77779_BFF(max77779_fg_usr_vlock,2,2)
MAX77779_BFF(max77779_fg_usr_rlock,3,3)
MAX77779_BFF(max77779_fg_usr_spr_usr_0,15,4)
#define MAX77779_FG_DBG_nIChgTerm 0x9c
/* ----------------------------------------------------------------------------
* Mode Register
*/
enum max77779_charger_modes {
MAX77779_CHGR_MODE_ALL_OFF = 0x00,
MAX77779_CHGR_MODE_BUCK_ON = 0x04,
MAX77779_CHGR_MODE_CHGR_BUCK_ON = 0x05,
MAX77779_CHGR_MODE_BOOST_UNO_ON = 0x08,
MAX77779_CHGR_MODE_BOOST_ON = 0x09,
MAX77779_CHGR_MODE_OTG_BOOST_ON = 0x0a,
MAX77779_CHGR_MODE_OTG_BOOST_UNO_ON = 0x0b,
MAX77779_CHGR_MODE_BUCK_BOOST_UNO_ON = 0x0c,
MAX77779_CHGR_MODE_CHGR_BUCK_BOOST_UNO_ON = 0x0d,
MAX77779_CHGR_MODE_OTG_BUCK_BOOST_ON = 0x0e,
MAX77779_CHGR_MODE_CHGR_OTG_BUCK_BOOST_ON = 0x0f,
};
#endif /* MAX77779_REG_H_ */