]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
iio: dac: ad3552r: clear reset status flag
authorAngelo Dureghello <adureghello@baylibre.com>
Sat, 25 Jan 2025 16:24:32 +0000 (17:24 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Mon, 3 Feb 2025 19:30:11 +0000 (19:30 +0000)
Clear reset status flag, to keep error status register clean after reset
(ad3552r manual, rev B table 38).

Reset error flag was left to 1, so debugging registers, the "Error
Status Register" was dirty (0x01). It is important to clear this bit, so
if there is any reset event over normal working mode, it is possible to
detect it.

Fixes: 8f2b54824b28 ("drivers:iio:dac: Add AD3552R driver support")
Signed-off-by: Angelo Dureghello <adureghello@baylibre.com>
Link: https://patch.msgid.link/20250125-wip-bl-ad3552r-clear-reset-v2-1-aa3a27f3ff8c@baylibre.com
Cc: <Stable@vger..kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/dac/ad3552r.c

index e7206af53af619eaaf5daca81e66ed1782ef82a2..7944f5c1d264d6b45c0f584c42b2e78c9c82fded 100644 (file)
@@ -410,6 +410,12 @@ static int ad3552r_reset(struct ad3552r_desc *dac)
                return ret;
        }
 
+       /* Clear reset error flag, see ad3552r manual, rev B table 38. */
+       ret = ad3552r_write_reg(dac, AD3552R_REG_ADDR_ERR_STATUS,
+                               AD3552R_MASK_RESET_STATUS);
+       if (ret)
+               return ret;
+
        return ad3552r_update_reg_field(dac,
                                        AD3552R_REG_ADDR_INTERFACE_CONFIG_A,
                                        AD3552R_MASK_ADDR_ASCENSION,