This version (31 Aug 2020 15:07) was approved by mhennerich.The Previously approved version (03 Jun 2019 14:27) is available.Diff

ADI JESD204B Receive Peripheral Linux Driver

Supported Devices


The AXI JESD204B RX peripheral driver is a simple driver that supports the ADI JESD204B Receive Peripheral. The driver reads JESD204B link configuration data from the devicetree and configures the peripheral accordingly. After configuration has completed the JESD204B link is enabled. Link state can be monitored through sysfs files.

This driver also work in conjunction with the JESD204 (FSM) Interface Linux Kernel Framework, in this case JESD204B link configuration is provided by the JESD204-FSM framework.

Source Code



Example platform device initialization

The AXI JESD204B driver is a platform driver and can currently only be instantiated via device tree.

Required devicetree properties:

  • compatible: Must always be “adi,axi-jesd204-rx-1.00.a”
  • reg: Base address and register area size. This parameter expects a register range.
  • interrupts: Property with a value describing the interrupt number.
  • clock-names: List of input clock names - “s_axi_aclk”, “device_clk”
  • clocks: Clock phandles and specifiers (See clock bindings for details on clock-names and clocks).
  • adi,frames-per-multiframe: Number of frames per multi-frame (K)
  • adi,octets-per-frame: Number of octets per frame (F)

Optional devicetree properties:

  • adi,high-density: If specified the JESD204B link is configured for high density (HD) operation.
  • adi,subclass: The JESD204B subclass.


		jesd204b-rx@77b00000 {
			compatible = "adi,axi-jesd204-rx-1.00.a";
			reg = <0x77b00000 0x10000>;
			interrupts = <0 56 4>;

			clock-names = "s_axi_aclk", "device_clk";
			clocks = <&clkc 14>, <&ad9528 13>;

			adi,octets-per-frame = <32>;
			adi,frames-per-multiframe = <4>;

Enabling Linux driver support

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
	    -*-   Enable ring buffer support within IIO
	    -*-     Industrial I/O lock free software ring
	    -*-   Enable triggered sampling support

            <*>   JESD204 High-Speed Serial Interface Support  --->
		<*>   Analog Devices AXI JESD204B RX Support

More Information

resources/tools-software/linux-drivers/jesd204/axi_jesd204_rx.txt · Last modified: 31 Aug 2020 15:05 by mhennerich