mirror of
https://github.com/torvalds/linux.git
synced 2026-11-06 21:58:01 +01:00
mfd: bq257xx: Mark self-modifying BQ25792 registers volatile
Some BQ25792 configuration registers change without being written: input
source detection sets VINDPM and IINDPM at plug-in, plug-in also clears
EN_HIZ, the FORCE_* bits clear once their operation starts or completes,
EN_ACDRV1/2 follow input path changes, and ADC_EN clears after a one-shot
conversion. Reading them from the cache returns stale values.
Mark these registers volatile, keeping the cache for the rest.
Cc: stable@vger.kernel.org
Fixes: 9adbe53e32 ("mfd: bq257xx: Add BQ25792 support")
Signed-off-by: Alexey Charkov <alchark@flipper.net>
Link: https://patch.msgid.link/20261001-bq25792-volatile-v1-1-cb3d4ec8a414@flipper.net
Signed-off-by: Lee Jones <lee@kernel.org>
This commit is contained in:
parent
3606288af5
commit
56d974f3ad
|
|
@ -52,8 +52,18 @@ static const struct regmap_access_table bq25792_writeable_regs = {
|
|||
};
|
||||
|
||||
static const struct regmap_range bq25792_volatile_reg_ranges[] = {
|
||||
regmap_reg_range(BQ25792_REG05_INPUT_VOLTAGE_LIMIT,
|
||||
BQ25792_REG06_INPUT_CURRENT_LIMIT + 1),
|
||||
regmap_reg_range(BQ25792_REG0F_CHARGER_CONTROL_0,
|
||||
BQ25792_REG0F_CHARGER_CONTROL_0),
|
||||
regmap_reg_range(BQ25792_REG11_CHARGER_CONTROL_2,
|
||||
BQ25792_REG11_CHARGER_CONTROL_2),
|
||||
regmap_reg_range(BQ25792_REG13_CHARGER_CONTROL_4,
|
||||
BQ25792_REG13_CHARGER_CONTROL_4),
|
||||
regmap_reg_range(BQ25792_REG19_ICO_CURRENT_LIMIT,
|
||||
BQ25792_REG27_FAULT_FLAG_1),
|
||||
regmap_reg_range(BQ25792_REG2E_ADC_CONTROL,
|
||||
BQ25792_REG2E_ADC_CONTROL),
|
||||
regmap_reg_range(BQ25792_REG31_IBUS_ADC,
|
||||
BQ25792_REG47_DPDM_DRIVER),
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user