AnsweredAssumed Answered

Master AD9361 DDS device not detected during probe

Question asked by rchowdhury on Sep 27, 2017
Latest reply on Sep 29, 2017 by kalden
Branched to a new discussion

I have a system with two AD9361 chips and an Arria10 processor running Linux.  With the 4.0 Linux branch from Analog Devices, everything is working fine. On Linux 4.9 however, I am running into an issue where the master AD9361 DDS device is not detected.

 

Here is dmesg output when using the 4.0 kernel:

  1. # dmesg | grep 9361
  2. [    1.181804] platform ff210000.cf-ad9361-A: Driver cf_axi_adc requests probe deferral
  3. [    1.189602] platform ff220000.cf-ad9361-B: Driver cf_axi_adc requests probe deferral
  4. [    1.197590] ad9361 spi32766.0: ad9361_probe : enter
  5. [    1.205462] spi spi32766.0: Driver ad9361 requests probe deferral
  6. [    1.211648] ad9361 spi32766.1: ad9361_probe : enter
  7. [    1.219680] spi spi32766.1: Driver ad9361 requests probe deferral
  8. [    1.238175] platform ff214000.cf-ad9361-dds-core-lpc: Driver cf_axi_dds requests probe deferral
  9. [    1.281479] platform ff224000.cf-ad9361-dds-core-B: Driver cf_axi_dds requests probe deferral
  10. [    1.480878] platform ff210000.cf-ad9361-A: Driver cf_axi_adc requests probe deferral
  11. [    1.488787] platform ff220000.cf-ad9361-B: Driver cf_axi_adc requests probe deferral
  12. [    1.496594] ad9361 spi32766.0: ad9361_probe : enter
  13. [    1.779923] ad9361 spi32766.0: ad9361_probe : AD9361 Rev 2 successfully initialized
  14. [    1.787673] ad9361 spi32766.1: ad9361_probe : enter
  15. [    2.065751] ad9361 spi32766.1: ad9361_probe : AD9361 Rev 2 successfully initialized
  16. [    2.085210] cf_axi_dds ff214000.cf-ad9361-dds-core-lpc: Analog Devices CF_AXI_DDS_DDS MASTER (8.00.b) at 0xFF214000 mapped to 0xf0244000, probed DDS AD9361
  17. [    2.110466] cf_axi_dds ff224000.cf-ad9361-dds-core-B: Analog Devices CF_AXI_DDS_DDS SLAVE (8.00.b) at 0xFF224000 mapped to 0xf0248000, probed DDS AD9361
  18. [    2.127449] cf_axi_adc ff210000.cf-ad9361-A: ADI AIM (8.00.b) at 0xFF210000 mapped to 0xf0260000, probed ADC AD9361-2 as MASTER
  19. [    2.141927] cf_axi_adc ff220000.cf-ad9361-B: ADI AIM (8.00.b) at 0xFF220000 mapped to 0xf02a0000, probed ADC AD9361 as SLAVE

Here is the 4.9 kernel output:

  1. # dmesg | grep 9361
  2. [    1.536321] ad9361 spi32766.0: ad9361_probe : enter (ad9361-2x)
  3. [    1.545748] ad9361 spi32766.1: ad9361_probe : enter (ad9361)
  4. [    1.732269] ad9361 spi32766.0: ad9361_probe : enter (ad9361-2x)
  5. [    2.017311] ad9361 spi32766.0: ad9361_probe : AD936x Rev 2 successfully initialized
  6. [    2.025039] ad9361 spi32766.1: ad9361_probe : enter (ad9361)
  7. [    2.308907] ad9361 spi32766.1: ad9361_probe : AD936x Rev 2 successfully initialized
  8. [    2.339035] cf_axi_dds ff224000.cf-ad9361-dds-core-B: Analog Devices CF_AXI_DDS_DDS SLAVE (8.00.b) at 0xFF224000 mapped to 0xf0942000, probed DDS AD9361
  9. [    2.399578] cf_axi_adc ff220000.cf-ad9361-B: ADI AIM (8.00.b) at 0xFF220000 mapped to 0xf0990000, probed ADC AD9361 as SLAVE

Here is the relevant parts of the device tree:

  1. /* Master HDL core with DMA */
  2. cf_ad9361_adc_core_0: cf-ad9361-A@0x100010000 {
  3.      compatible = "adi,axi-ad9361-6.00.a";
  4.      reg = <0x00000001 0x00010000 0x00010000>;
  5.      dmas = <&rx_dma 0>;
  6.      dma-names = "rx";
  7.      spibus-connected = <&adc0_ad9361>;
  8.      slavecore-reg = <0xFF220000 0x00010000>;
  9. };
  10. cf_ad9361_dac_core_0: cf-ad9361-dds-core-lpc@0x100014000 {
  11.      compatible = "adi,axi-ad9361x2-dds-6.00.a";
  12.      reg = <0x00000001 0x00014000 0x00001000>;
  13.      dmas = <&tx_dma 0>;
  14.      dma-names = "tx";
  15.      clocks = <&adc0_ad9361 13>;
  16.      clock-names = "sampl_clk";
  17.      slavecore-reg = <0xFF224000 0x00001000>;
  18. };
  19. /* Slave HDL core without DMA */
  20. cf_ad9361_adc_core_1: cf-ad9361-B@0x100020000 {
  21.      compatible = "adi,axi-ad9361-6.00.a";
  22.      reg = <0x00000001 0x00020000 0x00010000>;
  23.      spibus-connected = <&adc1_ad9361>;
  24. };
  25. cf_ad9361_dac_core_1: cf-ad9361-dds-core-B@0x100024000 {
  26.      compatible = "adi,axi-ad9361x2-dds-6.00.a";
  27.      reg = <0x00000001 0x00024000 0x00001000>;
  28.      clocks = <&adc1_ad9361 13>;
  29.      clock-names = "sampl_clk";
  30.      mastercore-reg = <0xFF214000 0x00001000>;
  31. };

Outcomes