Skip to content

Add support for ADA4355 #2806

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

Draft
wants to merge 3 commits into
base: main
Choose a base branch
from
Draft

Add support for ADA4355 #2806

wants to merge 3 commits into from

Conversation

PIoandan
Copy link
Collaborator

@PIoandan PIoandan commented May 29, 2025

PR Description

The ADA4355 is a complete, high performance, current input µModule. The 14-bit ADC converts the amplified voltage signal at a rate of up to 125 MSPS and outputs the digitized signals through two serial, low voltage differential signaling (LVDS) data lanes. The data clock output (DCO) operates at frequencies of up to 500 MHz and supports double data rate (DDR) operation.

This driver is also in the process of upstreaming.

PR Type

  • Bug fix (a change that fixes an issue)
  • New feature (a change that adds new functionality)
  • Breaking change (a change that affects other repos or cause CIs to fail)

PR Checklist

  • I have conducted a self-review of my own code changes
  • I have tested the changes on the relevant hardware
  • I have updated the documentation outside this repo accordingly (if there is the case)

@PIoandan PIoandan marked this pull request as draft May 29, 2025 10:42
@PIoandan PIoandan force-pushed the dev_ada4355 branch 2 times, most recently from 3e5593e to dd3c40b Compare May 30, 2025 06:46
PIoandan added 2 commits May 30, 2025 10:14
Signed-off-by: Pop Ioan Daniel <pop.ioan-daniel@analog.com>
Signed-off-by: Pop Ioan Daniel <pop.ioan-daniel@analog.com>

config ADA4355
tristate "Analog Devices ADA4355 uModule Data Acquisition Module"
depends on SPI
Copy link
Contributor

@gastmaier gastmaier May 30, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

edit: my comment looks into why it was lacking symbols, nuno suggestion is the correct solution.

Suggested change
depends on SPI
depends on SPI
depends on CF_AXI_ADC

The driver uses axiadc_write and axiadc_read, exported from cf_axi_adc_core.c, enabled with CF_AXI_ADC.
So the driver depends on this symbol as well.
Without this change, it cannot be compiled as a module without blindly enabling symbols.
This is an issue in other drivers.

For curiosity, we have now a script that resolves the tree of depends in the KConfig based on a target:

$ python3 ci/symbols_depend.py drivers/iio/adc/ada4355.o
Symbols of touched files:
{'ADA4355'}
Resolved symbols:
{'PCI', 'IIO_BUFFER', 'HAS_IOMEM', 'HAVE_PCI', 'ADA4355', 'SPI', 'IIO'}

as committed, it lacks the CF_AXI_ADC symbol.

Add driver for ADA4355.

Signed-off-by: Pop Ioan Daniel <pop.ioan-daniel@analog.com>
#include <linux/iio/iio.h>
#include <linux/iio/sysfs.h>

#include "cf_axi_adc.h"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why using the above and not the new IIO backend framework? That's what we want to use for all new drivers interfacing with the AXI ADC IP. This also makes it possible to upstream the driver.

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.

3 participants