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

  • Declarative device API — Compose designs out of typed Python devices whose fields map 1:1 to DT properties; render straight to DTS with no Jinja2 templates. See Declarative Devices.

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

  • Unified BoardModel — Both the declarative API and the XSA pipeline converge on the same BoardModel, which is a single small renderer away from DTS.

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

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

Supported hardware (declarative device layer)

Device class

Part

Role

HMC7044

HMC7044

14-channel JESD204B/C clock distributor

AD9523_1

AD9523-1

Clock generator / divider

AD9528 / AD9528_1

AD9528 / AD9528-1

Clock + SYSREF provider

ADF4382

ADF4382

Microwave wideband synthesizer

AD9081 / AD9084

AD9081, AD9084

MxFE quad-ADC + quad-DAC

AD9172

AD9172

Wideband RF DAC

AD9680

AD9680

14-bit dual-channel ADC

AD9144 / AD9152

AD9144, AD9152

Quad / dual DAC

ADRV9009

ADRV9009/9025/9026/9029, AD9371/9375

Wideband RF transceiver — Talise (ADRV9009/25/26/29 single + FMComms8 dual-chip) and Mykonos (AD9371/9375 via the ADRV9371/9375-N/P eval FMCs; see XSA to Device Tree for the adrv937x_zc706 pipeline profile)

XSA pipeline support covers the same families plus FMCDAQ2/FMCDAQ3 composites (see XSA to Device Tree).

Where to start

  • New to pyadi-dt? See the Quick Start for installation, first commands, and a declarative-API example.

  • Declarative device API? See Declarative Devices for the full device catalog and composition pattern.

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

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

  • Adding a new device class? See Authoring a new device class for the end-to-end walkthrough — class design, rendering pipeline, and cookbook recipes for clocks, converters, and eval / FPGA boards.

  • Adding a new XSA board builder? See XSA Pipeline — Developer Guide.

Table of contents