ADI Device Tree Utilities

Caution

pyadi-dt is still under development and may not be stable. Feedback is welcome.

pyadi-dt is a Python library and CLI for generating, inspecting, and managing Linux device trees for Analog Devices hardware — data converters, clock distribution ICs, RF transceivers, and FPGA-based JESD204 data paths.

pip install git+https://github.com/analogdevicesinc/pyadi-dt.git

Key capabilities

  • XSA-to-DTS pipeline — Generate complete device trees from Vivado .xsa archives using built-in board profiles. No manual DTS editing.

  • BoardModel API — Construct, inspect, and modify board models programmatically before rendering to DTS. Both the XSA pipeline and manual board classes produce the same editable BoardModel.

  • Device tree inspection — Read properties from live hardware over SSH, browse the tree interactively, or update SD card boot files.

  • Clock and JESD configuration — Apply pyadi-jif-solved parameters directly to the device tree from JSON.

  • Structural linter — Catch unresolved phandle references, SPI chip-select conflicts, and clock-cell mismatches before flashing.

Supported hardware

The Kuiper 2023-R2 release contains 88 board projects across Xilinx/AMD and Intel FPGA platforms. Use adidtc kuiper-boards to list all boards and their support status.

Converter Family

Platforms

HW Validated

AD9081 / AD9082 / AD9083 (MxFE)

ZCU102, ZC706, VPK180

ZCU102 ✓

AD9084

VCU118, VPK180

AD9172 (DAC)

ZCU102

ADRV9009 / ADRV9025 / ADRV9008

ZCU102, ZC706, Arria10, ZU11EG

ZCU102 ✓

ADRV9009-ZU11EG (SOM)

ADRV2CRR-FMC carrier

ADRV937x / ADRV9002

ZCU102, ZC706, Arria10, Zedboard

AD936x / FMComms2-5 (SDR)

Zedboard, ZC702, ZC706, ZCU102

ADRV9361-Z7035 / ADRV9364-Z7020 (SOM)

BOB, FMC carriers

FMCDAQ2 (AD9680 + AD9144)

ZCU102, ZC706, Arria10

ZCU102 ✓

FMCDAQ3 (AD9680 + AD9152)

ZCU102, ZC706

ZCU102 ✓

Precision ADCs (AD7768, AD9467, etc.)

Zedboard

Raspberry Pi sensors

RPi 3/4/5

Where to start

  • New to pyadi-dt? See the Quick Start for installation, first commands, and code examples.

  • XSA workflow? See XSA Flow Tutorials for a step-by-step walkthrough of Vivado XSA-based generation.

  • Non-XSA workflow? See Device Tree Generation for generating device trees without Vivado (Raspberry Pi, Intel FPGA, custom boards).

  • PetaLinux? See PetaLinux Integration for generating system-user.dtsi files from XSA archives.

  • BoardModel API? See Board Model Module for the unified board model, renderer, and context builders.

  • Adding a new board? See XSA Pipeline — Developer Guide for the pipeline architecture and step-by-step guide.

Table of contents