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
Next revisionBoth sides next revision
resources:tools-software:linux-drivers:iio-adc:ad400x [02 Nov 2018 09:47] – [Driver testing] Mircea Caprioruresources:tools-software:linux-drivers:iio-adc:ad400x [14 Nov 2018 11:26] – [Status] Mircea Caprioru
Line 1: Line 1:
-====== AD4003/AD4007/AD4011/AD4020 Linux Driver ======+====== AD4003/AD4007/AD4011/AD4020/ADAQ40XX Linux Driver ======
  
 ===== Supported Devices ===== ===== Supported Devices =====
Line 8: Line 8:
   * [[adi>AD4011]]   * [[adi>AD4011]]
   * [[adi>AD4020]]   * [[adi>AD4020]]
 +  * [[adi>ADAQ4003]]
  
 ===== Evaluation Boards ===== ===== Evaluation Boards =====
Line 20: Line 21:
  
 ^ Source ^ Mainlined? ^ ^ Source ^ Mainlined? ^
-| [[linux.github>master/drivers/iio/adc/ad7124.c|git]] | [In progress...] |+| [[linux.github>master/drivers/iio/adc/ad400x.c|git]] | [No] |
  
 ===== Files ===== ===== Files =====
  
 ^ Function ^ File ^ ^ Function ^ File ^
-| driver  | [[linux.github>master/drivers/iio/adc/ad7124.c]] | +| driver  | [[linux.github>master/drivers/iio/adc/ad400x.c]] | 
-| devicetree bindings | [[linux.github>master?Documentation/devicetree/bindings/iio/adc/adi,ad7124.txt | Documentation/devicetree/bindings/iio/adc/adi,ad7124.txt]] |+| devicetree bindings | [[linux.github>master?Documentation/devicetree/bindings/iio/adc/adi,ad7124.txt | Documentation/devicetree/bindings/iio/adc/ad400x.txt]] | 
 + 
 +====== Driver setup ====== 
 +Since AD4003/4007/4011/4020 are high speed analog-to-digital converters with speeds up to 2 Msps additional components are required in order to achieve high performance. In this scenario the following hdl components are required: 
 +  * [[resources:fpga:peripherals:spi_engine|SPI Engine]] 
 +  * [[resources:fpga:docs:axi_dmac|High-Speed DMA Controller Peripheral]] 
 + 
 +The device will interface with these components and follow the device tree bindings.  
 + 
 +<WRAP box bggreen><wrap info>This specifies any shell prompt running on the target</wrap> 
 +<xterm> 
 +&fpga_axi {                                                                       
 +         rx_dma: rx-dmac@44a30000 {                                                
 +                 compatible = "adi,axi-dmac-1.00.a";                               
 +                 reg = <0x44a30000 0x1000>;                                        
 +                 #dma-cells = <1>;                                                 
 +                 interrupts = <0 57 0>;                                            
 +                 clocks = <&clkc 16>;                                              
 +                                                                                   
 +                 adi,channels {                                                    
 +                         #size-cells = <0>;                                        
 +                         #address-cells = <1>;                                     
 +                                                                                   
 +                         dma-channel@0 {                                           
 +                                 reg = <0>;                                        
 +                                 adi,source-bus-width = <32>;                      
 +                                 adi,source-bus-type = <1>;                        
 +                                 adi,destination-bus-width = <64>;                 
 +                                 adi,destination-bus-type = <0>;                   
 +                         };                                                        
 +                 };                                                                
 +         };                                                                        
 +                                                                                   
 +         axi_spi_engine_0: axi-spi-engine@44a00000 {                               
 +                 compatible = "adi,axi-spi-engine-1.00.a";                         
 +                 reg = <0x44a00000 0x1000>;                                        
 +                 interrupt-parent = <&intc>;                                       
 +                 interrupts = <0 56 4>;                                            
 +                 clocks = <&clkc 15 &clkc 15>;                                     
 +                 clock-names = "s_axi_aclk", "spi_clk";                            
 +                 num-cs = <1>;                                                     
 +                                                                                  
 +                 #address-cells = <0x1>;                                           
 +                 #size-cells = <0x0>;                                              
 +                                                                                   
 +                 ad4020: adc@0 {                                                   
 +                         compatible = "ad4020";                                    
 +                         reg = <0>;                                                
 +                         spi-max-frequency = <71000000>;                           
 +                                                                                   
 +                         dmas = <&rx_dma 0>;                                       
 +                         dma-names = "rx";                                         
 +                                                                                   
 +                         vref-supply = <&vref>;                                    
 +                         #io-channel-cells = <1>;                                  
 +                 };                                                                
 +         };                                                                        
 + };     
 +</xterm></WRAP>
  
 ====== Driver testing ====== ====== Driver testing ======
Line 63: Line 122:
 </xterm></WRAP> </xterm></WRAP>
  
 +=== Show device name ===
 +
 +<WRAP box bggreen><wrap info>This specifies any shell prompt running on the target</wrap>
 +<xterm>
 +root@analog:/sys/bus/iio/devices/iio:device0# cat name
 +ad4020
 +</xterm></WRAP>
 +
 +=== Show channel scale ===
 +
 +**Description:**\\
 +Scale to be applied to in_voltagex_raw in order to obdatin the measured voltage in millivolts
 +
 +<WRAP box bggreen><wrap info>This specifies any shell prompt running on the target</wrap>
 +<xterm>
 +root@analog:/sys/bus/iio/devices/iio:device0# cat in_voltage0_scale 
 +0.002384185
 +</xterm></WRAP>
 +
 +====== More Information ======
  
 +{{page>software:linux:docs:iio:iio_snippets#iio pointers&noheader&firstseconly&noeditbtn}}
resources/tools-software/linux-drivers/iio-adc/ad400x.txt · Last modified: 01 Feb 2024 21:48 by Marcelo Schmitt