Wiki

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
resources:tools-software:linux-drivers:iio-adc:axi-adc-hdl [28 May 2019 12:19] – [Files] Michael Hennerichresources:tools-software:linux-drivers:iio-adc:axi-adc-hdl [13 Jun 2022 13:11] (current) – [Driver testing] Michael Hennerich
Line 31: Line 31:
   * [[resources/eval/user-guides/ad-fmcomms5-ebz |AD-FMCOMMS5-EBZ FMC Card]]   * [[resources/eval/user-guides/ad-fmcomms5-ebz |AD-FMCOMMS5-EBZ FMC Card]]
   * [[resources/eval/user-guides/ad-fmcomms6-ebz|AD-FMCOMMS6-EBZ FMC Card]]   * [[resources/eval/user-guides/ad-fmcomms6-ebz|AD-FMCOMMS6-EBZ FMC Card]]
-  * [[resources/fpga/xilinx/fmc/ad-fmcjesdadc1-ebz| AD-FMCJESDADC1-EBZ FMC Card]] see also [[/resources/tools-software/linux-drivers/iio-adc/axi-jesd204b-hdl|AXI JESD204B Driver]]+  * [[resources/fpga/xilinx/fmc/ad-fmcjesdadc1-ebz| AD-FMCJESDADC1-EBZ FMC Card]] 
   * [[resources/eval/user-guides/ad-fmcadc2-ebz|AD-FMCADC2-EBZ FMC Card]]   * [[resources/eval/user-guides/ad-fmcadc2-ebz|AD-FMCADC2-EBZ FMC Card]]
   * [[resources/eval/user-guides/ad-fmcdaq2-ebz|AD-FMCDAQ2-EBZ FMC Card]]   * [[resources/eval/user-guides/ad-fmcdaq2-ebz|AD-FMCDAQ2-EBZ FMC Card]]
   * [[resources/fpga/xilinx/fmc/ad9467 |AD9467 Native FMC Card]]   * [[resources/fpga/xilinx/fmc/ad9467 |AD9467 Native FMC Card]]
   * [[resources/fpga/xilinx/interposer/ad9467 |AD9467 Evaluation Board, ADC-FMC Interposer]]   * [[resources/fpga/xilinx/interposer/ad9467 |AD9467 Evaluation Board, ADC-FMC Interposer]]
-  * [[resources/fpga/xilinx/interposer/ad9250 |AD9250 Evaluation Board, ADC-FMC Interposer]] see also [[/resources/tools-software/linux-drivers/iio-adc/axi-jesd204b-hdl|AXI JESD204B Driver]]+  * [[resources/fpga/xilinx/interposer/ad9250 |AD9250 Evaluation Board, ADC-FMC Interposer]]
   * [[resources/fpga/xilinx/fmc/ad9265|AD9265 Native FMC Card]]   * [[resources/fpga/xilinx/fmc/ad9265|AD9265 Native FMC Card]]
   * [[resources/eval/user-guides/mykonos | ADRV9371 FMC Card]]   * [[resources/eval/user-guides/mykonos | ADRV9371 FMC Card]]
  
 +===== Sub device Documentation (linked mode) =====
 +
 +  * [[resources:tools-software:linux-drivers:iio-adc:ad9208|AD9208 ADC Linux Driver]]
  
  
Line 74: Line 77:
 | driver  | [[linux.github>master?drivers/iio/adc/ad9361_conv.c | drivers/iio/adc/ad9371_conv.c]] | | driver  | [[linux.github>master?drivers/iio/adc/ad9361_conv.c | drivers/iio/adc/ad9371_conv.c]] |
 | driver  | [[linux.github>master?drivers/iio/adc/adrv9009_conv.c | drivers/iio/adc/adrv9009_conv.c]] | | driver  | [[linux.github>master?drivers/iio/adc/adrv9009_conv.c | drivers/iio/adc/adrv9009_conv.c]] |
-| driver  | [[linux.github>master?drivers/iio/adc/cf_axi_adc_core.c | drivers/iio/adc/cf_axi_adc_core.c]] | +core driver  | [[linux.github>master?drivers/iio/adc/cf_axi_adc_core.c | drivers/iio/adc/cf_axi_adc_core.c]] | 
-| driver  | [[linux.github>master?drivers/iio/adc/cf_axi_adc_ring_stream.c | drivers/iio/adc/cf_axi_adc_ring_stream.c]] | +core driver  | [[linux.github>master?drivers/iio/adc/cf_axi_adc_ring_stream.c | drivers/iio/adc/cf_axi_adc_ring_stream.c]] | 
-| include | [[linux.github>master?drivers/iio/adc/cf_axi_adc.h | drivers/iio/adc/cf_axi_adc.h]] |+core include | [[linux.github>master?drivers/iio/adc/cf_axi_adc.h | drivers/iio/adc/cf_axi_adc.h]] |
  
  
Line 97: Line 100:
     * "adi,axi-ad6676-1.0"     * "adi,axi-ad6676-1.0"
     * "adi,axi-ad9684-1.0"     * "adi,axi-ad9684-1.0"
 +    * "adi,axi-ad9371-rx-1.0"
 +    * "adi,axi-ad9684-1.0"
 +    * "adi,axi-adrv9009-rx-1.0"
 +    * "adi,axi-ad9208-1.0"
     * For a complete list see driver source: static const struct of_device_id axiadc_of_match[]      * For a complete list see driver source: static const struct of_device_id axiadc_of_match[] 
  
Line 122: Line 129:
  
 &fpga_axi { &fpga_axi {
- rx_dma: rx-dmac@44A30000 {+ rx_dma: rx-dmac@44a30000 {
  compatible = "adi,axi-dmac-1.00.a";  compatible = "adi,axi-dmac-1.00.a";
  reg = <0x44A30000 0x10000>;  reg = <0x44A30000 0x10000>;
Line 129: Line 136:
  clocks = <&clkc 16>;  clocks = <&clkc 16>;
  
- dma-channel { + adi,channels { 
- adi,type = <0>;+ #size-cells = <0>; 
 + #address-cells = <1>; 
 + 
 + dma-channel@0 
 + reg = <0>; 
 + adi,source-bus-width = <16>; 
 + adi,source-bus-type = <2>; 
 + adi,destination-bus-width = <64>; 
 + adi,destination-bus-type = <0>
 + };
  };  };
  };  };
  
- cf_ad9467_core_0: cf-ad9467-core-lpc@44A00000 {+ cf_ad9467_core_0: cf-ad9467-core-lpc@44a00000 {
  compatible = "xlnx,cf-ad9467-core-1.00.a";  compatible = "xlnx,cf-ad9467-core-1.00.a";
  reg = <0x44A00000 0x10000>;  reg = <0x44A00000 0x10000>;
  dmas = <&rx_dma 0>;  dmas = <&rx_dma 0>;
  dma-names = "rx";  dma-names = "rx";
 +
  spibus-connected = <&adc_ad9467>;  spibus-connected = <&adc_ad9467>;
- } ; + }; 
-};+}; 
 </code> </code>
 ====== Enabling Linux driver support ====== ====== Enabling Linux driver support ======
Line 157: Line 174:
 "make qconfig") "make qconfig")
  
-<code>+ <code>
 Linux Kernel Configuration Linux Kernel Configuration
  Device Drivers  --->  Device Drivers  --->
Line 168: Line 185:
            *** Analog to digital converters ***            *** Analog to digital converters ***
      [--snip--]      [--snip--]
- +         -*Analog Devices High-Speed AXI ADC driver core              
- <*>   Analog Devices AD9467 AD9643 High-Speed AXI ADC driver +                <*> Analog Devices AD9208 and similar high speed ADCs          
 +                <*> Analog Devices AD9371 RF Transceiver driver                
 +                <*> Analog Devices ADRV9009/ADRV9008 RF Transceiver driver     
 +                <*> Analog Devices AD6676 Wideband IF Receiver driver          
 +                <*> Analog Devices AD9467 etc. high speed ADCs                 
 +                <*> Analog Devices AD9680 and similar high speed ADCs 
      [--snip--]      [--snip--]
 </code> </code>
Line 300: Line 321:
 </xterm></WRAP> </xterm></WRAP>
  
 +=== External Synchronization ===
  
-in_voltage0_test_mode:off+The [[resources:fpga:peripherals:jesd204:jesd204_tpl_adc|ADC TPL HDL]] core supports the [[resources:fpga:peripherals:jesd204:jesd204_tpl_adc#External_synchronization|EXT_SYNC]] feature, allowing to synchronize multiple channels within a ADC or across multiple instances. 
 +This feature can also synchronize between the [[resources:fpga:peripherals:jesd204:jesd204_tpl_adc|ADC TPL HDL]] and [[resources:fpga:peripherals:jesd204:jesd204_tpl_dac|DAC TPL HDL]] core.  
 + 
 +There are two device attributes which allows controlling this feature: 
 +''sync_start_enable'' and ''sync_start_enable_available'' reading the 
 +later returns the available modes which depend on HDL core synthesis 
 +parameters. The options are explained below. Reading 'sync_start_enable' 
 +returns either 'arm' while waiting for the external synchronization 
 +signal or 'disarm' otherwise. 
 + 
 +  * ''arm'': Setting this key will arm the trigger mechanism sensitive to an external sync signal. Once the external sync signal goes high it synchronizes channels within a ADC, and across multiple instances. This key has an effect only the EXT_SYNC synthesis parameter is set.  
 + 
 +  * ''disarm'': Setting this key will disarm the trigger mechanism sensitive to an external sync signal. This key has an effect only the EXT_SYNC synthesis parameter is set. 
 + 
 +  * ''trigger_manual'': Setting this key will issue an external sync event if it is hooked up inside the fabric. This key has an effect only the EXT_SYNC synthesis parameter is set. 
 +         
 +== Example: == 
 + 
 +<WRAP box bggreen><wrap info>This specifies any shell prompt running on the target</wrap> 
 +<xterm> 
 +root@analog:/sys/bus/iio/devices/iio:device3# **cat sync_start_enable_available**                                                                                                                        
 +**arm disarm trigger_manual** 
 +root@analog:/sys/bus/iio/devices/iio:device3# **cat sync_start_enable** 
 +**disarm** 
 +root@analog:/sys/bus/iio/devices/iio:device3# **echo arm > sync_start_enable**                                                                                                                                  
 +root@analog:/sys/bus/iio/devices/iio:device3# **cat sync_start_enable** 
 +**arm** 
 +root@analog:/sys/bus/iio/devices/iio:device3# **echo trigger_manual > sync_start_enable**                                                                                                                       
 +root@analog:/sys/bus/iio/devices/iio:device3# **cat sync_start_enable** 
 +**disarm** 
 +</xterm></WRAP>
 ===== Buffer management ===== ===== Buffer management =====
  
resources/tools-software/linux-drivers/iio-adc/axi-adc-hdl.1559038796.txt.gz · Last modified: 28 May 2019 12:19 by Michael Hennerich