This version (13 Jan 2021 11:19) was approved by Michael Hennerich.

AD9517 12-Output Clock Generator with Integrated VCO Linux Driver

Supported Devices


The AD9517 provides a multi-output clock distribution function with sub-picosecond jitter performance, along with an on-chip PLL and VCO. The AD9517 emphasizes low jitter and phase noise to maximize data converter performance, and it can benefit other applications with demanding phase noise and jitter requirements. The AD9517 features four LVPECL outputs (in two pairs) and four LVDS outputs (in two pairs). Each LVDS output can be reconfigured as two CMOS outputs. The LVPECL outputs operate to 1.6 GHz, the LVDS outputs operate to 800 MHz, and the CMOS outputs operate to 250 MHz.


This Linux device driver uses the .stp file generated by the Device Evaluation Software to configure the device. This file is then loaded via the Linux firmware subsystem.

Source Code


Source Mainlined?
drivers/iio/frequency/ad9517.c No


Function File
driver drivers/iio/frequency/ad9517.c

Enabling the driver

Configure kernel with “make menuconfig” (alternatively use “make xconfig” or “make qconfig”)

The ad9517 Driver depends on CONFIG_SPI

Linux Kernel Configuration
    Device Drivers  --->
    <*>  Industrial I/O support --->
             Frequency Synthesizers DDS/PLL  ---> 
                 Clock Generator/Distribution  --->
                 <*>  Analog Devices AD9517 12-Output Clock Generator

Adding a device tree entry

Device tree example

The following example instantiates the ad9517 driver for a ad9517-3 device connected on the SPI bus to the chip-select line 1.

&spi0 {
        clk_ad9517: ad9517@1 {
                #address-cells = <1>;
                #size-cells = <0>;
                #clock-cells = <1>;
                compatible = "adi,ad9517-3";
                reg = <1>;
                spi-max-frequency = <10000000>;
		clocks = <&ad9517_ref_clk>, <&ad9517_ref_clk>;
                clock-names = "refclk", "clkin";
                clock-output-names = "out0", "out1", "out2", "out3", "out4", "out5", "out6", "out7";
		firmware = "pzsdr-fmc-ad9517.stp";
resources/tools-software/linux-drivers/iio-pll/ad9517.txt · Last modified: 13 Jan 2021 11:18 by Michael Hennerich