]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
iio: dac: ad3552r-hs: clear reset status flag
authorAngelo Dureghello <adureghello@baylibre.com>
Wed, 8 Jan 2025 17:29:16 +0000 (18:29 +0100)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 12 Jan 2025 13:36:01 +0000 (13:36 +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: 0b4d9fe58be8 ("iio: dac: ad3552r: add high-speed platform driver")
Signed-off-by: Angelo Dureghello <adureghello@baylibre.com>
Reviewed-by: David Lechner <dlechner@baylibre.com>
Link: https://patch.msgid.link/20250108-wip-bl-ad3552r-axi-v0-iio-testing-carlos-v2-2-2dac02f04638@baylibre.com
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/dac/ad3552r-hs.c

index 216c634f3eaf727fe07e123f9a237b2ab59fb324..8974df6256708152ce76addba2af43233186504f 100644 (file)
@@ -329,6 +329,12 @@ static int ad3552r_hs_setup(struct ad3552r_hs_state *st)
                dev_info(st->dev, "Chip ID error. Expected 0x%x, Read 0x%x\n",
                         AD3552R_ID, id);
 
+       /* Clear reset error flag, see ad3552r manual, rev B table 38. */
+       ret = st->data->bus_reg_write(st->back, AD3552R_REG_ADDR_ERR_STATUS,
+                                     AD3552R_MASK_RESET_STATUS, 1);
+       if (ret)
+               return ret;
+
        ret = st->data->bus_reg_write(st->back,
                                      AD3552R_REG_ADDR_SH_REFERENCE_CONFIG,
                                      0, 1);