mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 19:30:30 +09:00
mfd: rk808: update rk818 volatile reg range
The registers relative with fuel gauge must be volatile. Change-Id: I8e942e8f15f66dabf24ede48b81857947575fa23 Signed-off-by: Joseph Chen <chenjh@rock-chips.com> Signed-off-by: Elaine Zhang <zhangqing@rock-chips.com>
This commit is contained in:
@@ -78,12 +78,45 @@ static bool rk817_is_volatile_reg(struct device *dev, unsigned int reg)
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool rk818_is_volatile_reg(struct device *dev, unsigned int reg)
|
||||
{
|
||||
/*
|
||||
* Notes:
|
||||
* - Technically the ROUND_30s bit makes RTC_CTRL_REG volatile, but
|
||||
* we don't use that feature. It's better to cache.
|
||||
* - It's unlikely we care that RK808_DEVCTRL_REG is volatile since
|
||||
* bits are cleared in case when we shutoff anyway, but better safe.
|
||||
*/
|
||||
|
||||
switch (reg) {
|
||||
case RK808_SECONDS_REG ... RK808_WEEKS_REG:
|
||||
case RK808_RTC_STATUS_REG:
|
||||
case RK808_VB_MON_REG:
|
||||
case RK808_THERMAL_REG:
|
||||
case RK808_DCDC_EN_REG:
|
||||
case RK808_LDO_EN_REG:
|
||||
case RK808_DCDC_UV_STS_REG:
|
||||
case RK808_LDO_UV_STS_REG:
|
||||
case RK808_DCDC_PG_REG:
|
||||
case RK808_LDO_PG_REG:
|
||||
case RK808_DEVCTRL_REG:
|
||||
case RK808_INT_STS_REG1:
|
||||
case RK808_INT_STS_REG2:
|
||||
case RK808_INT_STS_MSK_REG1:
|
||||
case RK808_INT_STS_MSK_REG2:
|
||||
case RK818_SUP_STS_REG ... RK818_SAVE_DATA19:
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
static const struct regmap_config rk818_regmap_config = {
|
||||
.reg_bits = 8,
|
||||
.val_bits = 8,
|
||||
.max_register = RK818_USB_CTRL_REG,
|
||||
.max_register = RK818_SAVE_DATA19,
|
||||
.cache_type = REGCACHE_RBTREE,
|
||||
.volatile_reg = rk808_is_volatile_reg,
|
||||
.volatile_reg = rk818_is_volatile_reg,
|
||||
};
|
||||
|
||||
static const struct regmap_config rk805_regmap_config = {
|
||||
|
||||
@@ -190,7 +190,82 @@ enum rk818_reg {
|
||||
#define RK818_BOOST_LDO9_SLP_VSEL_REG 0x55
|
||||
#define RK818_BOOST_CTRL_REG 0x56
|
||||
#define RK818_DCDC_ILMAX 0x90
|
||||
#define RK818_SUP_STS_REG 0xa0
|
||||
#define RK818_USB_CTRL_REG 0xa1
|
||||
#define RK818_CHRG_CTRL_REG1 0xa3
|
||||
#define RK818_CHRG_CTRL_REG2 0xa4
|
||||
#define RK818_CHRG_CTRL_REG3 0xa5
|
||||
#define RK818_BAT_CTRL_REG 0xa6
|
||||
#define RK818_BAT_HTS_TS1_REG 0xa8
|
||||
#define RK818_BAT_LTS_TS1_REG 0xa9
|
||||
#define RK818_BAT_HTS_TS2_REG 0xaa
|
||||
#define RK818_BAT_LTS_TS2_REG 0xab
|
||||
#define RK818_TS_CTRL_REG 0xac
|
||||
#define RK818_ADC_CTRL_REG 0xad
|
||||
#define RK818_ON_SOURCE_REG 0xae
|
||||
#define RK818_OFF_SOURCE_REG 0xaf
|
||||
#define RK818_GGCON_REG 0xb0
|
||||
#define RK818_GGSTS_REG 0xb1
|
||||
#define RK818_FRAME_SMP_INTERV_REG 0xb2
|
||||
#define RK818_AUTO_SLP_CUR_THR_REG 0xb3
|
||||
#define RK818_GASCNT_CAL_REG3 0xb4
|
||||
#define RK818_GASCNT_CAL_REG2 0xb5
|
||||
#define RK818_GASCNT_CAL_REG1 0xb6
|
||||
#define RK818_GASCNT_CAL_REG0 0xb7
|
||||
#define RK818_GASCNT3_REG 0xb8
|
||||
#define RK818_GASCNT2_REG 0xb9
|
||||
#define RK818_GASCNT1_REG 0xba
|
||||
#define RK818_GASCNT0_REG 0xbb
|
||||
#define RK818_BAT_CUR_AVG_REGH 0xbc
|
||||
#define RK818_BAT_CUR_AVG_REGL 0xbd
|
||||
#define RK818_TS1_ADC_REGH 0xbe
|
||||
#define RK818_TS1_ADC_REGL 0xbf
|
||||
#define RK818_TS2_ADC_REGH 0xc0
|
||||
#define RK818_TS2_ADC_REGL 0xc1
|
||||
#define RK818_BAT_OCV_REGH 0xc2
|
||||
#define RK818_BAT_OCV_REGL 0xc3
|
||||
#define RK818_BAT_VOL_REGH 0xc4
|
||||
#define RK818_BAT_VOL_REGL 0xc5
|
||||
#define RK818_RELAX_ENTRY_THRES_REGH 0xc6
|
||||
#define RK818_RELAX_ENTRY_THRES_REGL 0xc7
|
||||
#define RK818_RELAX_EXIT_THRES_REGH 0xc8
|
||||
#define RK818_RELAX_EXIT_THRES_REGL 0xc9
|
||||
#define RK818_RELAX_VOL1_REGH 0xca
|
||||
#define RK818_RELAX_VOL1_REGL 0xcb
|
||||
#define RK818_RELAX_VOL2_REGH 0xcc
|
||||
#define RK818_RELAX_VOL2_REGL 0xcd
|
||||
#define RK818_BAT_CUR_R_CALC_REGH 0xce
|
||||
#define RK818_BAT_CUR_R_CALC_REGL 0xcf
|
||||
#define RK818_BAT_VOL_R_CALC_REGH 0xd0
|
||||
#define RK818_BAT_VOL_R_CALC_REGL 0xd1
|
||||
#define RK818_CAL_OFFSET_REGH 0xd2
|
||||
#define RK818_CAL_OFFSET_REGL 0xd3
|
||||
#define RK818_NON_ACT_TIMER_CNT_REG 0xd4
|
||||
#define RK818_VCALIB0_REGH 0xd5
|
||||
#define RK818_VCALIB0_REGL 0xd6
|
||||
#define RK818_VCALIB1_REGH 0xd7
|
||||
#define RK818_VCALIB1_REGL 0xd8
|
||||
#define RK818_IOFFSET_REGH 0xdd
|
||||
#define RK818_IOFFSET_REGL 0xde
|
||||
#define RK818_SOC_REG 0xe0
|
||||
#define RK818_REMAIN_CAP_REG3 0xe1
|
||||
#define RK818_REMAIN_CAP_REG2 0xe2
|
||||
#define RK818_REMAIN_CAP_REG1 0xe3
|
||||
#define RK818_REMAIN_CAP_REG0 0xe4
|
||||
#define RK818_UPDAT_LEVE_REG 0xe5
|
||||
#define RK818_NEW_FCC_REG3 0xe6
|
||||
#define RK818_NEW_FCC_REG2 0xe7
|
||||
#define RK818_NEW_FCC_REG1 0xe8
|
||||
#define RK818_NEW_FCC_REG0 0xe9
|
||||
#define RK818_NON_ACT_TIMER_CNT_SAVE_REG 0xea
|
||||
#define RK818_OCV_VOL_VALID_REG 0xeb
|
||||
#define RK818_REBOOT_CNT_REG 0xec
|
||||
#define RK818_POFFSET_REG 0xed
|
||||
#define RK818_MISC_MARK_REG 0xee
|
||||
#define RK818_HALT_CNT_REG 0xef
|
||||
#define RK818_CALC_REST_REGH 0xf0
|
||||
#define RK818_CALC_REST_REGL 0xf1
|
||||
#define RK818_SAVE_DATA19 0xf2
|
||||
|
||||
#define RK818_H5V_EN BIT(0)
|
||||
#define RK818_REF_RDY_CTRL BIT(1)
|
||||
|
||||
Reference in New Issue
Block a user