Enabling Full-Stack Software for Analog Devices Precision Converters

Context & Challenges

Analog Devices (ADI), a global leader in precision analog semiconductors, partnered with BayLibre to accelerate software development and upgrades for its precision A/D and D/A converter families. The engagement supported ADI’s Software Enabled Analog (SEA) initiative, with BayLibre providing strategic guidance on software architecture spanning embedded and system-level solutions. This collaboration helped shape the Analog Devices Software Development Kit (SDK), ensuring a scalable and cohesive approach to its software offerings.

Delivering production-grade software across a broad portfolio of converters and multiple software stacks presented several technical challenges:

  • Making SPI Engine/offload robust and high-performance across multiple ADC/DAC families, requiring core SPI improvements and device-specific tuning
  • Bringing up and maintaining mainline Linux drivers for numerous new devices while keeping ADI internal trees aligned with upstream behavior
  • Supporting high-speed parallel and AXI-based interfaces with correct IP-level integration, calibration, and device-specific data formats
  • Delivering automated, consistent boot images and system artifacts to downstream teams
  • Producing comprehensive documentation and wiki materials for each newly supported device
  • Strengthening test infrastructure, clocking/timing support, and integration with evaluation tools (pyadi-iio, MATLAB Precision Toolbox)
  • Maintaining consistency and quality across the no-OS codebase

ADI partnered with BayLibre to deliver these capabilities end-to-end while maintaining upstream alignment and long-term maintainability.

Achievements

BayLibre successfully developed and delivered a wide range of embedded software deliverables to Analog Devices, spanning Zephyr driver development, Linux driver development, no-OS driver development, libIIO ecosystem development, HDL implementation and collaboration, PyADI-IIO / Python tooling, and MATLAB Precision Toolbox support.

Key achievements included:

  • SPI Engine and offload enablement: Core SPI improvements, device-specific offload support, and extensive bug fixing and performance tuning — collectively making offload a practical, high-throughput path for multiple ADC/DAC families
  • Mainline Linux driver bring-up and enhancements: New baseline mainline drivers, feature-complete extensions for full-spec operation, specific feature additions, and behavioral alignment and cleanup — significantly expanding mainline Linux support for ADI converters
  • AXI / AXI-ADC / parallel interface and timing work: Ensuring the Linux stack and IIO layer correctly handle parallel/AXI data paths, calibration channels, and device-specific formats
  • Platform, packaging, and artifacts: Automated boot image packaging and delivery, providing downstream users (e.g., ACE team) with consistent, automated boot images and manifests
  • Documentation and user-facing materials: Device-specific wikis and general project documentation, giving users the written guidance needed to configure and use newly supported devices
  • Tools, test infrastructure, and ecosystem support: PWM and timing infrastructure improvements, pyadi-iio tests, and MATLAB / Precision Toolbox integration — strengthening the testing story and integrating ADI devices more tightly with common evaluation tools
  • no-OS cleanup: Improving maintainability and consistency across the no-OS codebase

This enabled Analog Devices to deliver a cohesive, well-documented SDK across its converter portfolio without accumulating technical debt or fragmenting its software offerings.

Open-Source Story

The project followed an upstream-first methodology, aligned with BayLibre’s open-source DNA and ADI’s commitment to mainline Linux support.

BayLibre worked closely with Analog Devices‘ software team to:

  • Structure new Linux drivers according to IIO subsystem expectations and mainline coding standards
  • Keep ADI internal trees and mainline behavior aligned and capable of full-spec operation
  • Submit incremental, review-friendly patches for mainline inclusion
  • Develop and contribute improvements to the libIIO ecosystem, pyadi-iio, and related open-source tooling
  • Avoid out-of-tree hacks and ensure long-term maintainability

As a result, Analog Devices gained:

  • Broad mainline Linux support for its precision converter portfolio
  • Reduced long-term maintenance cost through upstream alignment
  • A scalable SDK architecture serving multiple chipsets and software stacks
  • Easier adoption by customers already using IIO-based workflows
  • Stronger credibility within the Linux IIO and open-source ecosystems

BayLibre acted as a technical interface between ADI’s proprietary silicon and application expertise and the open-source Linux and Zephyr communities.

Tech Stack

OS / RTOS
Linux (mainline), Zephyr, no-OS
SoC / Devices
Analog Devices precision A/D and D/A converter families
Subsystem
Linux IIO (Industrial I/O)
Interfaces
SPI (with SPI Engine/offload), AXI, AXI-ADC, parallel interfaces
Ecosystem
libIIO, PyADI-IIO (Python), MATLAB Precision Toolbox
HDL
FPGA HDL collaboration for converter IP integration
Infrastructure
Automated boot image packaging, manifest-driven delivery
Timing / Clocking
PWM and timing infrastructure
Testing
pyadi-iio test suites, SIMD and functional validation
Documentation
Device-specific wikis, project-level documentation
Upstream
Linux mainline contributions, IIO subsystem patches

Customer Testimonial

"BayLibre has been instrumental in shaping our Software Enabled Analog strategy. Their team delivered end-to-end software support — from mainline Linux drivers and SPI Engine enablement to libIIO ecosystem tooling and automated platform delivery — across our precision converter portfolio. Their deep expertise in upstream Linux development, IIO subsystem integration, and cross-stack software architecture helped us build a scalable, maintainable SDK that serves our customers and partners for the long term."

Analog Devices