Message ID | 20210815213309.2847711-1-liambeguin@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | AD7949 Fixes | expand |
On Mon, Aug 16, 2021 at 12:35 AM Liam Beguin <liambeguin@gmail.com> wrote: > > While working on another series[1] I ran into issues where my SPI > controller would fail to handle 14-bit and 16-bit SPI messages. This > addresses that issue and adds support for selecting a different voltage > reference source from the devicetree. > > v1 was base on a series[2] that seems to not have made it all the way, > and was tested on an ad7689. > > v6 drops support for per channel vref selection. > After switching the voltage reference, readings take a little while to > stabilize, invalidating consecutive readings. > > This could've been addressed by adding more dummy cycles at the expense > of speed, but discussing the issue with colleagues more involved in > hardware design, it turns out these circuits are usually designed with a > single vref in mind. > > [1] https://patchwork.kernel.org/project/linux-iio/list/?series=511545 > [2] https://patchwork.kernel.org/project/linux-iio/list/?series=116971&state=%2A&archive=both > > Changes since v5: > - rename defines: s/AD7949_CFG_BIT_/AD7949_CFG_MASK_/g > - rename AD7949_MASK_TOTAL to match other defines > - make vref selection global instead of per channel, and update > dt-bindings Same as per v5: is it a hardware limitation? It's unclear to me what happened here. > - reword commits 2/5, 3/5, and 4/5 > - move bits_per_word configuration to struct spi_device, and switch to > spi_{read,write}.
On Mon Aug 16, 2021 at 4:08 AM EDT, Andy Shevchenko wrote: > On Mon, Aug 16, 2021 at 12:35 AM Liam Beguin <liambeguin@gmail.com> > wrote: > > > > While working on another series[1] I ran into issues where my SPI > > controller would fail to handle 14-bit and 16-bit SPI messages. This > > addresses that issue and adds support for selecting a different voltage > > reference source from the devicetree. > > > > v1 was base on a series[2] that seems to not have made it all the way, > > and was tested on an ad7689. > > > > v6 drops support for per channel vref selection. > > After switching the voltage reference, readings take a little while to > > stabilize, invalidating consecutive readings. > > > > This could've been addressed by adding more dummy cycles at the expense > > of speed, but discussing the issue with colleagues more involved in > > hardware design, it turns out these circuits are usually designed with a > > single vref in mind. > > > > [1] https://patchwork.kernel.org/project/linux-iio/list/?series=511545 > > [2] https://patchwork.kernel.org/project/linux-iio/list/?series=116971&state=%2A&archive=both > > > > Changes since v5: > > - rename defines: s/AD7949_CFG_BIT_/AD7949_CFG_MASK_/g > > - rename AD7949_MASK_TOTAL to match other defines > > > - make vref selection global instead of per channel, and update > > dt-bindings Hi Andy, > > Same as per v5: is it a hardware limitation? > It's unclear to me what happened here. I tried to provide more details in the last paragraph above. After switching the voltage reference, readings take a little while to stabilize invalidating consecutive readings. One option was to add more dummy cycles, but in addition to making things slower it was brought to my attention that this kind of circuit is usually designed with a single vref in mind. For those reasons and because I didn't have an explicit need for it, I decided to drop that part. Liam > > > - reword commits 2/5, 3/5, and 4/5 > > - move bits_per_word configuration to struct spi_device, and switch to > > spi_{read,write}. > > -- > With Best Regards, > Andy Shevchenko
On Mon, 16 Aug 2021 08:59:28 -0400 "Liam Beguin" <liambeguin@gmail.com> wrote: > On Mon Aug 16, 2021 at 4:08 AM EDT, Andy Shevchenko wrote: > > On Mon, Aug 16, 2021 at 12:35 AM Liam Beguin <liambeguin@gmail.com> > > wrote: > > > > > > While working on another series[1] I ran into issues where my SPI > > > controller would fail to handle 14-bit and 16-bit SPI messages. This > > > addresses that issue and adds support for selecting a different voltage > > > reference source from the devicetree. > > > > > > v1 was base on a series[2] that seems to not have made it all the way, > > > and was tested on an ad7689. > > > > > > v6 drops support for per channel vref selection. > > > After switching the voltage reference, readings take a little while to > > > stabilize, invalidating consecutive readings. > > > > > > This could've been addressed by adding more dummy cycles at the expense > > > of speed, but discussing the issue with colleagues more involved in > > > hardware design, it turns out these circuits are usually designed with a > > > single vref in mind. > > > > > > [1] https://patchwork.kernel.org/project/linux-iio/list/?series=511545 > > > [2] https://patchwork.kernel.org/project/linux-iio/list/?series=116971&state=%2A&archive=both > > > > > > Changes since v5: > > > - rename defines: s/AD7949_CFG_BIT_/AD7949_CFG_MASK_/g > > > - rename AD7949_MASK_TOTAL to match other defines > > > > > - make vref selection global instead of per channel, and update > > > dt-bindings > > Hi Andy, > > > > > Same as per v5: is it a hardware limitation? > > It's unclear to me what happened here. > > I tried to provide more details in the last paragraph above. > > After switching the voltage reference, readings take a little while to > stabilize invalidating consecutive readings. > > One option was to add more dummy cycles, but in addition to making > things slower it was brought to my attention that this kind of circuit > is usually designed with a single vref in mind. > > For those reasons and because I didn't have an explicit need for it, I > decided to drop that part. It's not 'impossible' to add it back in later if someone needs it, but until then this works for me. Series applied with tweaks as described in individual patch replies. Thanks, Jonathan > > Liam > > > > > > - reword commits 2/5, 3/5, and 4/5 > > > - move bits_per_word configuration to struct spi_device, and switch to > > > spi_{read,write}. > > > > -- > > With Best Regards, > > Andy Shevchenko >