/* 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_ */
