This driver supports the
The ADF4377 is a high performance, utlralow jitter, dual output integer-N phased locked loop (PLL) with integrated voltage controlled oscillator (VCO) ideally suited for data converter and mixed signal front end (MxFE) clock applications. The high performance PLL has a figure of merit of -239 dBc/Hz, ultralow 1/f Noise and a high phase frequency detector (PFD) frequency that can achieve ultra-low in-band noise and integrated jitter. The ADF4377's fundamental VCO and output divider generate frequencies from 800 MHz to 12.8 GHz. The ADF4377 integrates all necessary power supply bypass capacitors, saving board space on compact boards.
For multiple data converter and MXFE clock applications, the ADF4377 simplifies clock alignment and calibration routines required with other clock solutions, by implementing:
These features allow for predictable and precise multi-chip clock and SYSREF alignment. JESD204B and JESD204C subclass 1 solutions are supported by pairing the ADF4377 with an integrated circuit (IC) that distributes pairs of reference and SYSREF signals.
Source | Mainlined? |
---|---|
drivers/iio/frequency/adf4377.c | YES |
Function | File |
---|---|
driver | drivers/iio/frequency/adf4377.c |
Documentation | adi,adf4377.yaml |
ABI documentation | sysfs-bus-iio-frequency-adf4377 |
The ADF4377 driver is a SPI bus driver and can be instantiated via device tree.
Required properties:
Optional properties:
Example: spi { #address-cells = <1>; #size-cells = <0>; frequency@0 { compatible = "adi,adf4377"; reg = <0>; spi-max-frequency = <10000000>; clocks = <&adf4377_ref_in>; clock-names = "ref_in"; }; };
Configure kernel with “make menuconfig” (alternatively use “make xconfig” or “make qconfig”)
The ADF4377 driver depends on SPI and selects REGMAP_SPI
Configure kernel with “make menuconfig” (alternatively use “make xconfig” or “make qconfig”)
Linux Kernel Configuration Device Drivers ---> <*> Industrial I/O support ---> --- Industrial I/O support Frequency Synthesizers DDS/PLL ---> *** Phase-Locked Loop (PLL) frequency synthesizers *** <*> Analog Devices ADF4377 Microwave Wideband Synthesizer
Each and every IIO device, typically a hardware chip, has a device folder under /sys/bus/iio/devices/iio:deviceX. Where X is the IIO index of the device. Under every of these directory folders reside a set of files, depending on the characteristics and features of the hardware device in question. These files are consistently generalized and documented in the IIO ABI documentation. In order to determine which IIO deviceX corresponds to which hardware device, the user can read the name file /sys/bus/iio/devices/iio:deviceX/name. In case the sequence in which the iio device drivers are loaded/registered is constant, the numbering is constant and may be known in advance.
This specifies any shell prompt running on the target
analog:/sys/bus/iio/devices/iio:device0# cd /sys/bus/iio/devices/ root@analog:/sys/bus/iio/devices# ls iio:device0 root@analog:/sys/bus/iio/devices# root@analog:/sys/bus/iio/devices# cd iio\:device0 root@analog:/sys/bus/iio/devices/iio:device0# ls -l total 0 -r--r--r-- 1 root root 4096 sep 4 14:05 dev -rw-r--r-- 1 root root 4096 sep 4 14:05 frequency -rw-r--r-- 1 root root 4096 sep 4 14:05 muxout_select -rw-r--r-- 1 root root 4096 sep 4 14:05 muxout_select_available -r--r--r-- 1 root root 4096 sep 4 14:05 name lrwxrwxrwx 1 root root 0 sep 4 14:05 of_node -> ../../../../../../../../firmware/devicetree/base/soc/spi@7e204000/adf4377@0 drwxr-xr-x 2 root root 0 sep 4 14:05 power lrwxrwxrwx 1 root root 0 sep 2 17:46 subsystem -> ../../../../../../../../bus/iio -rw-r--r-- 1 root root 4096 sep 2 17:46 uevent root@analog:/sys/bus/iio/devices/iio:device0#
This specifies any shell prompt running on the target
root@analog:/sys/bus/iio/devices/iio:device0# cat name adf4377
This specifies any shell prompt running on the target
root@analog:/sys/bus/iio/devices/iio:device0# cat frequency 1000000000
This specifies any shell prompt running on the target
root@analog:/sys/bus/iio/devices/iio:device0# echo 1000000000 > frequency root@analog:/sys/bus/iio/devices/iio:device0# cat frequency 1000000000
The mux output allows the user to access various internal points on the chip. Valid values that can be written:
This specifies any shell prompt running on the target
root@analog:/sys/bus/iio/devices/iio:device0# cat muxout_select_available high_z lock_detect muxout_low f_div_rclk_2 f_div_nclk_2 muxout_high root@analog:/sys/bus/iio/devices/iio:device0# cat muxout_select digital_lock root@analog:/sys/bus/iio/devices/iio:device0# echo lock_detect > muxout_select root@analog:/sys/bus/iio/devices/iio:device0# cat muxout_select lock_detect