mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-22 01:08:13 -04:00
regulator: ltc3676: Fix incorrect IRQSTAT bit offsets
The LTC3676_IRQSTAT_* bit definitions do not match the IRQSTAT
(Interrupt Request Status) register layout documented in Table 15
of the LTC3676/LTC3676-1 datasheet:
bit 0 - Pushbutton Status Active
bit 1 - Hard Reset Occurred
bit 2 - PGOOD Timeout Occurred
bit 3 - Undervoltage Warning
bit 4 - Undervoltage Standby (Fault) Occurred
bit 5 - Overtemperature Warning
bit 6 - Overtemperature Standby (Fault) Occurred
bit 7 - Reserved
The driver instead defines these starting at bit 3, one bit higher
than the datasheet specifies, which causes ltc3676_regulator_isr()
to check the wrong status bits and misreport (or miss) PGOOD
timeout, undervoltage and thermal warning/fault conditions.
Fix the bit offsets to match the datasheet.
Fixes: 37b918a034 ("regulator: Add LTC3676 support")
Cc: stable@vger.kernel.org
Signed-off-by: Abhishek Ojha <Abhishek.ojha@savoirfairelinux.com>
Link: https://patch.msgid.link/20260715170408.295552-1-Abhishek.ojha@savoirfairelinux.com
Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
committed by
Mark Brown
parent
a13c140cc2
commit
50dce2e2f8
@@ -45,11 +45,11 @@
|
||||
#define LTC3676_DVBxA_REF_SELECT BIT(5)
|
||||
#define LTC3676_DVBxB_PGOOD_MASK BIT(5)
|
||||
|
||||
#define LTC3676_IRQSTAT_PGOOD_TIMEOUT BIT(3)
|
||||
#define LTC3676_IRQSTAT_UNDERVOLT_WARN BIT(4)
|
||||
#define LTC3676_IRQSTAT_UNDERVOLT_FAULT BIT(5)
|
||||
#define LTC3676_IRQSTAT_THERMAL_WARN BIT(6)
|
||||
#define LTC3676_IRQSTAT_THERMAL_FAULT BIT(7)
|
||||
#define LTC3676_IRQSTAT_PGOOD_TIMEOUT BIT(2)
|
||||
#define LTC3676_IRQSTAT_UNDERVOLT_WARN BIT(3)
|
||||
#define LTC3676_IRQSTAT_UNDERVOLT_FAULT BIT(4)
|
||||
#define LTC3676_IRQSTAT_THERMAL_WARN BIT(5)
|
||||
#define LTC3676_IRQSTAT_THERMAL_FAULT BIT(6)
|
||||
|
||||
enum ltc3676_reg {
|
||||
LTC3676_SW1,
|
||||
|
||||
Reference in New Issue
Block a user