| Date | Sat, 30 Sep 2023 15:51:07 +0100 | From | Jonathan Cameron <> | Subject | Re: [PATCH v3 10/27] staging: iio: resolver: ad2s1210: use regmap for config registers |
| |
On Fri, 29 Sep 2023 12:23:15 -0500 David Lechner <dlechner@baylibre.com> wrote:
> From: David Lechner <david@lechnology.com> > > From: David Lechner <dlechner@baylibre.com> > > This makes use of the regmap API to read and write the configuration > registers. This simplifies code quite a bit and makes it safer > (previously, it was easy to write a bad value to the config registers > which causes the chip to lock up and need to be reset). > > This chip has multiple modes of operation. In normal mode, we do not use > regmap since there is no addressing - data is just bitshifted out during > the SPI read. In config mode, we use regmap since it requires writing > the address (with read/write flag) before reading and writing. > > We don't use the lock provided by the regmap because we need to also > synchronize with the normal mode SPI reads and with the various GPIOs. > > There is also a quirk when reading registers (other than the fault > register). If the address/data bit is set in the value read, then it > indicates there is a configuration parity error and the data is not > valid. Previously, this was checked in a few places, but not > consistently. Now, we always check it in the regmap read function. > > Signed-off-by: David Lechner <dlechner@baylibre.com>
This was a complex change, so I'm partly relying on the fact it clearly works after the change to be sure it is correct ;)
Anyhow, code is much cleaner and probably right, so applied to the togreg branch of iio.git and pushed out as testing for all the normal reasons.
Thanks,
Jonathan
|