Re: [PATCH 00/17] iio:adc:ad7280a Cleanup and proposed staging graduation.
From: Jonathan Cameron <jic23@kernel.org>
Date: 2021-07-11 14:48:40
Also in:
linux-iio
On Wed, 23 Jun 2021 09:37:41 +0100 Jonathan Cameron [off-list ref] wrote:
On Tue, 22 Jun 2021 14:36:17 -0300 Marcelo Schmitt [off-list ref] wrote:quoted
Hey Jonathan, On 06/14, Jonathan Cameron wrote:quoted
From: Jonathan Cameron <Jonathan.Cameron@huawei.com> Hi All, This one proved an interesting diversion. Work done against a somewhat hacked up QEMU emulation of 3 daisy chained ad7280a devices (18 channels). Note that the emulation isn't complete but does do chaining, CRC, and readout of channels etc in a fashion that worked with the original driver (up to the bug in patch 1) and continues to work with the updated version. I've not intention to upstream the emulation (as would need to make it more completed and flexible), but happy to share it with anyone who is interested.I'm interested in seeing your device emulation with QEMU. I was looking at the ad7150 emulation you shared earlier this year but had some trouble getting the i2c slave created.Sure. Let me do a bit of tidying up they I'll push a suitable branch out. (probably will still have lots of stuff missing!) Might take a little while to get to this though.
I pretended to myself for a few weeks that I'd get around to tidying this up in a remotely meaningful way. That's clearly not happening so I pushed out the untidy version with appropriate eats babies messages: https://github.com/jic23/qemu/commits/ad7280a-hacks Note there is loads of stuff that isn't implemented as it was developed alongside this patch series to verify individual patches rather than with the intent of actually emulating the device. It's hard coded to 2 a chain of 3 ad7280a devices because that seemed to hit most possible corner cases. The top commit has the launch string I'm using. You'll need a filesystem, but you can probably use one of the convenient ones debian posts as nocloud cloud images. There is some info on that on people.kernel.org/jic23 as I wrote up how to test CXL stuff on ARM recently and gave guidance on easy ways to get a filesystem. http://cdimage.debian.org/cdimage/cloud/sid/daily/20210702-691/debian-sid-nocloud-arm64-daily-20210702-691.qcow2 will probably work and is more recent than the one linked from that blog post. Give me a shout if you need more specific guidance than this very very rough guide! I mentioned this thread in the diversion the rust on linux thread took into use of QEMU to emulate devices which motivated me to stop being lazy and at least post this hideous version. Probably the most useful bit is how to get a working spi device emulated on the arm virt machine as that is very handy for all manner of testing. One day someone might implement a large set of IIO device emulation and bolt it into a CI... Jonathan
quoted
Being able to see it running, I may feel more confident to provide a review for this set :):)quoted
Regards, Marceloquoted
I briefly flirted with posting a patch to just drop the driver entirely, but the part is still available and it looked like fun + isn't going to greatly impact maintainability of the subsystem long term so is low cost even if it goes obsolete sometime soonish. There are lots of things we could do after this set to improved the driver and make things more flexible, but it should basically 'just work' Anyhow, as normal for staging graduations, last patch has rename detection turned off so that people can easily see what I am proposing we move out of staging. Jonathan Cameron (17): staging:iio:adc:ad7280a: Fix handing of device address bit reversing. staging:iio:adc:ad7280a: Register define cleanup. staging:iio:adc:ad7280a: rename _read() to _read_reg() staging:iio:adc:ad7280a: Split buff[2] into tx and rx parts staging:iio:adc:ad7280a: Use bitfield ops to managed fields in transfers. staging:iio:adc:ad7280a: Switch to standard event control staging:iio:adc:ad7280a: Standardize extended ABI naming staging:iio:adc:ad7280a: Drop unused timestamp channel. staging:iio:adc:ad7280a: Trivial comment formatting cleanup staging:iio:adc:ad7280a: Make oversampling_ratio a runtime control staging:iio:adc:ad7280a: Cleanup includes staging:iio:ad7280a: Reflect optionality of irq in ABI staging:iio:adc:ad7280a: Use a local dev pointer to avoid &spi->dev staging:iio:adc:ad7280a: Use device properties to replace platform data. dt-bindings:iio:adc:ad7280a: Add binding iio:adc:ad7280a: Document ABI for cell balance switches iio:adc:ad7280a: Move out of staging .../ABI/testing/sysfs-bus-iio-adc-ad7280a | 14 + .../bindings/iio/adc/adi,ad7280a.yaml | 87 ++ drivers/iio/adc/Kconfig | 11 + drivers/iio/adc/Makefile | 1 + drivers/iio/adc/ad7280a.c | 1116 +++++++++++++++++ drivers/staging/iio/adc/Kconfig | 11 - drivers/staging/iio/adc/Makefile | 1 - drivers/staging/iio/adc/ad7280a.c | 1044 --------------- drivers/staging/iio/adc/ad7280a.h | 37 - 9 files changed, 1229 insertions(+), 1093 deletions(-) create mode 100644 Documentation/ABI/testing/sysfs-bus-iio-adc-ad7280a create mode 100644 Documentation/devicetree/bindings/iio/adc/adi,ad7280a.yaml create mode 100644 drivers/iio/adc/ad7280a.c delete mode 100644 drivers/staging/iio/adc/ad7280a.c delete mode 100644 drivers/staging/iio/adc/ad7280a.h -- 2.32.0