-
Notifications
You must be signed in to change notification settings - Fork 845
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for AD4052 ADC Family #2642
base: main
Are you sure you want to change the base?
Conversation
ce15fe8
to
86e6d7c
Compare
Forced pushed to:
Forced pushed (2) to:
Forced pushed (3) to:
|
1f5b827
to
9611c42
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here it goes first round of review...
I think this one can be upstreamed without the offload bits
4b81da9
to
494d89f
Compare
Change log v0 -> v1 Review changes:
New:
Design changes:
|
drivers/iio/adc/Kconfig
Outdated
tristate "Analog Devices AD4052 Driver" | ||
depends on SPI | ||
depends on PWM | ||
depends on GPIOLIB |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm also not sure if gpio is something you should depend on or just select it. I think the single shot reading could be something useful to have even more to make this driver more upstreamable without offload support (we can still some questions about it though).
drivers/iio/adc/Kconfig
Outdated
tristate "Analog Devices AD4052 Driver" | ||
depends on SPI | ||
depends on PWM | ||
depends on GPIOLIB |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also one not on the commit message. Style is iio: adc: ...
. Drop the drivers:
if (val == 0) { | ||
st->mode = AD4052_SAMPLE_MODE; | ||
} else { | ||
st->mode = AD4052_BURST_AVERAGING_MODE; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would double check other examples of oversampling. To me this is a 1 or 0 thing. Either it's enabled it not. Your mode variable also just seems to have two states here so the way you're handling val
raises some questions.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The device supports from 2 to 4096 in powers of 2 samples for avg mode.
Decided to reserve 0 and 1 to disable the feature (return to sample mode)
494d89f
to
03cfbc9
Compare
Change log v1 -> v2 Review changes:
Changes:
Extra force push to resolve merge conflict |
03cfbc9
to
a7eca14
Compare
eb23140
to
0506d4c
Compare
Change log v2 -> v3
|
0506d4c
to
b6ab861
Compare
This is not forgotten... I'll try to check it Monday |
Add dt-bindings for AD4052 family, devices AD4050/AD4052/AD4056/AD4058, low-power with monitor capabilities SAR ADCs. Contain selectable oversampling and sample rate, the latter for both oversampling and monitor mode. The monitor capability is exposed as an IIO threshold either direction event. Signed-off-by: Jorge Marques <[email protected]>
The AD4052 CNV pin is driven by a GPIO for single shot readings and by a PWM for buffer readings. The functional-mode entry allows to set Sample Mode (0) or Burst Averaging Mode (1). During runtime, it is possible to enter Trigger Mode through IIO Events. Signed-off-by: Jorge Marques <[email protected]>
The AD4052/AD4058/AD4050/AD4056 are versatile, 16-bit/12-bit, successive approximation register (SAR) analog-to-digital converter (ADC) that enables low-power, high-density data acquisition solutions without sacrificing precision. This ADC offers a unique balance of performance and power efficiency, plus innovative features for seamlessly switching between high-resolution and low-power modes tailored to the immediate needs of the system. The AD4052/AD4058/AD4050/AD4056 are ideal for battery-powered, compact data acquisition and edge sensing applications. Signed-off-by: Jorge Marques <[email protected]>
Add entry for the AD4052 ADC family driver. Signed-off-by: Jorge Marques <[email protected]>
b6ab861
to
4b0f9d7
Compare
Force pushed to resolve merge conflicts due to main rebase. |
PR Description
Add:
Optional:
Features:
Overall, the highlight of this device is the monitor capability, leveraged by the autonomous trigger mode and exposed as IIO Event.
Linux driver doc:
HDL: analogdevicesinc/hdl#1504
Datasheet: www.analog.com/ad4052
Tested on Coraz7s
PR Type
PR Checklist