Skip to content

ad4080: add AD4880/AD4883/AD4884 dual-channel support - #790

Open
amiclaus wants to merge 2 commits into
mainfrom
staging/ad4883-support
Open

ad4080: add AD4880/AD4883/AD4884 dual-channel support#790
amiclaus wants to merge 2 commits into
mainfrom
staging/ad4883-support

Conversation

@amiclaus

Copy link
Copy Markdown
Contributor

Description

The ad4080 kernel driver gained support for the dual-channel AD4880,
AD4883 and AD4884 parts. Add them to compatible_parts so they can be
instantiated through the adi.ad4080 class.

Unlike the single-channel AD4080-AD4088 parts, where filter_type,
oversampling_ratio and sampling_frequency are device-level attributes,
these dual-channel parts expose those attributes per channel (voltage0
and voltage1). Add the corresponding per-channel properties to the
ad4080_channel class so each channel can be configured independently,
while leaving the existing device-level properties in place for the
single-channel parts.

Add an ad4883 example demonstrating the dual-channel configuration and
capture readout.

Type of change

  • Bug fix
  • New device class interface
  • New feature on an existing class
  • Breaking change
  • Documentation only
  • Test or CI only

How has this been tested?

real hardware

  • Hardware / emulation: EVAL-AD4083 + ZedBoard
  • Commands run (e.g. python3 -m pytest -k ad4080 --adi-hw-map):
  • Result:

Test configuration

  • Kernel / libiio version:
  • OS:
  • FPGA carrier (if applicable):

Documentation

  • No documentation change needed
  • Updated existing docs under doc/source/
  • Added a new device page and linked it from the relevant toctree

New device class interfaces

Skip this section if the PR does not add a new device class.

  • Class extends one of the common base classes in adi.device_base (rx_chan_comp, tx_chan_comp, or a _no_buff variant). If not, explain why in the description. See the Device Base Classes developer doc page.
  • compatible_parts lists every part number this class supports
  • Part numbers added to supported_parts.md (verify with invoke checkparts)
  • Emulation context (xml_gen, not iio_genxml) added under test/emu/ and referenced from a test
  • Tests added that run against the emulation context in CI

Checklist

  • invoke precommit passes locally
  • All commits are signed off (Signed-off-by: Name <email>)
  • No new warnings from the build or doc generation
  • Dependent changes in libiio, kernel, or HDL are merged and referenced

amiclaus added 2 commits July 29, 2026 13:35
ad4080_channel.scale read a hardcoded "voltage0" and therefore returned
channel 0's scale for every channel. Use the actual channel name so each
channel reports its own scale.

Fixes: 4791340 ("ad4080: add pyadi-iio support")
Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
The ad4080 kernel driver gained support for the dual-channel AD4880,
AD4883 and AD4884 parts. Add them to compatible_parts so they can be
instantiated through the adi.ad4080 class.

Unlike the single-channel AD4080-AD4088 parts, where filter_type,
oversampling_ratio and sampling_frequency are device-level attributes,
these dual-channel parts expose those attributes per channel (voltage0
and voltage1). Add the corresponding per-channel properties to the
ad4080_channel class so each channel can be configured independently,
while leaving the existing device-level properties in place for the
single-channel parts.

Add an ad4883 example demonstrating the dual-channel configuration and
capture readout.

Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
@amiclaus
amiclaus requested a review from tfcollins July 29, 2026 10:37
@amiclaus amiclaus self-assigned this Jul 29, 2026
@github-actions

github-actions Bot commented Jul 29, 2026

Copy link
Copy Markdown

Test Results

2 244 tests  ±0     943 ✅  - 1   4m 44s ⏱️ -1s
    1 suites ±0   1 300 💤 ±0 
    1 files   ±0       1 ❌ +1 

For more details on these failures, see this check.

Results for commit b4dbd84. ± Comparison against base commit 1e50f3a.

♻️ This comment has been updated with latest results.

@github-actions

Copy link
Copy Markdown

Generated documentation for this PR is available at Link

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant