Skip to content

ADRV9001 new devices #2764

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

Open
wants to merge 16 commits into
base: main
Choose a base branch
from
Open

ADRV9001 new devices #2764

wants to merge 16 commits into from

Conversation

nunojsa
Copy link
Collaborator

@nunojsa nunojsa commented Apr 14, 2025

PR Description

This patchseries first fix some issues with ADRV9003 support where DPD is not available. Then, we do some rearrangements (most noticeable, dedicated compatibles for the new chips) and then we proceed to support ADRV9004, ADRV9005 and ADRV9006.

Also to note that these new devices do not have warmboot enabled by default. The only reason for that is because of the associated burden when updating to new APIs (as this coefficients would have to be updated for both CMOS and LVDS). In theory, and for consistency, ADRV9003 should also not have it but now that it has, let's keep them.

Fow now, only DTs for zcu102 but support for ZED and zc706 will come fairly soon after this is merged.

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)

nunojsa added 16 commits April 14, 2025 16:21
ADRV9003 devices do not support digital predistortion. Therefore let's
not allow to enable it.

Fixes: 0b4d96b ("iio: adc: adrv9002: support adrv9003")
Signed-off-by: Nuno Sá <[email protected]>
ADRV9003 does not support Digital predistortion: Hence, fix the DT and
make sure we're not enabling it for TX1.

Fixes: caa39fb ("arch: arm64: dts: add adrv9003 devicetrees")
Signed-off-by: Nuno Sá <[email protected]>
Typically, the preferred way for chip info structures is to have a
variable per device as that is more readable and maintainable over time.
Note that we need to do a similar conversion in the connected axi-adc
converter.

Signed-off-by: Nuno Sa <[email protected]>
Instead of reporting everything as adrv9002, allow have different
struct axiadc_chip_info with the proper chip name. This will be more
important when supporting more chips of the adrv9001 family.

Signed-off-by: Nuno Sá <[email protected]>
Add a dedicated compatible for the ADRV9003 device. After all it's a
different chip from ADRV9002.

Signed-off-by: Nuno Sá <[email protected]>
Add a dedicated compatible for the ADRV9003 device. After all it's a
different chip from ADRV9002.

Signed-off-by: Nuno Sá <[email protected]>
Add a dedicated compatible for the ADRV9003 device. After all it's a
different chip from ADRV9002.

Signed-off-by: Nuno Sá <[email protected]>
…atibles

Use a dedicated compatible for ADRV9003 devices. This will go inline
with new chips being supported in following changes.

Signed-off-by: Nuno Sá <[email protected]>
Add LVDS and CMOS profiles for ADRV9004, ADRV9005 and ADRV9006.

Signed-off-by: Nuno Sá <[email protected]>
There's no need to the IIO parent device as that is already done by the
core when allocating the device.

Signed-off-by: Nuno Sá <[email protected]>
Add support for the ADRV9004, ADRV9005 and ADRV9006 Narrow-Band
and Wideband RF Transceivers.

They are similar to ADRV9002 wirh some key differences:

ADRV9004:
 * No DPD support;

ADRV9005:
 * Only 1R1T and no TX tracking calibrations for FDD profiles.

ADRV9006:
 * No DPD support;
 * No external LO support;
 * No High performance ADCs;
 * Only FH normal mode for PLL locking.

Signed-off-by: Nuno Sá <[email protected]>
Add new compatibles for ADRV9004 and ADRV9006 which also have two RX
ports and thus make use of this driver.

Signed-off-by: Nuno Sá <[email protected]>
Add new compatibles for ADRV9004, ADRV9005 and ADRV9006. These are new
devices being supported in the ADRV9002 family.

Signed-off-by: Nuno Sá <[email protected]>
Add new compatibles for ADRV9004, ADRV9005 and ADRV9006. These are new
devices being supported in the ADRV9002 family.

Note that rx2tx2 variants are also being added for devices that support
it. ADRV9005 does not have since it only has TX port.

Signed-off-by: Nuno Sá <[email protected]>
Add profiles for the new devices supported byu the ADRV9002 driver.

Signed-off-by: Nuno Sá <[email protected]>
Add devicetrees to support ADRV9004, ADRV9005 and ADRV9006 (and the rx2tx2
variants where it makes sense).

Signed-off-by: Nuno Sá <[email protected]>
@nunojsa nunojsa force-pushed the staging/adrv9002-new-devs branch from ae510f2 to c6ce2d4 Compare April 14, 2025 15:22
@nunojsa
Copy link
Collaborator Author

nunojsa commented Apr 14, 2025

v2:

  • Fix adrv9005 chip info not having has_dpd = true;
  • Don't treat having the DPD property (on devices that do not support it) as an error. Mostly for backward compatibility reasons as lot's of adrv9003 users might not care about dpd but still use (or copied) our DTs and so, using newer kernels would mean fail to probe adrv9003. As that is far from ideal, just ignore the property and log a warning;
  • Update adrv9005 CMOS default profile to use 4.5MHz BW.

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