Message ID | 20250108-wip-bl-ad3552r-axi-v0-iio-testing-carlos-v2-2-2dac02f04638@baylibre.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | iio: ad3552r-hs: add support for ad3541/42r | expand |
On 1/8/25 11:29 AM, Angelo Dureghello wrote: > From: Angelo Dureghello <adureghello@baylibre.com> > > 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. Do we need to do the same for ad3552r.c as well? Separate patch of course. > > 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>
diff --git a/drivers/iio/dac/ad3552r-hs.c b/drivers/iio/dac/ad3552r-hs.c index 216c634f3eaf..8974df625670 100644 --- a/drivers/iio/dac/ad3552r-hs.c +++ b/drivers/iio/dac/ad3552r-hs.c @@ -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);