AnsweredAssumed Answered

Custom AD9361 device tree is failing

Question asked by CodeWarrior on Aug 5, 2015
Latest reply on Aug 11, 2015 by mhennerich

Hi all,

 

I'm having some problems with my "minimalist" AD9361 design. The complete "official" design builds and works, Michael and Lars helped me out in this post here: ad9361 isn't seen by Zedboard, module loads though.

 

I started with the working AD9361 FMCOMMS2 design and began cutting it down to what I actually need to use. There's no HDMI, audio, or DMA, RX I/Q goes into PL fabric, gets processed, comes out as TX I/Q. The PL hardware pins match the official design, and I am able to communicate with the AD9361 over SPI. Entire PL design is a VHDL instantiation/wrapper of the attached PDF. I added some debug printing to the ad9361.c driver, which shows that after probing in ad9361_setup() I go into the ad9361_txrx_synth_cp_calib() , and I timeout in ad9361_check_cal_done(). Things are completely fine before that, identical to what's printed with the official working version. Additionally, when the kernel starts up all the devices seen are the following, confirming that i2c is indeed working but nothing on spi:

 

root@MYDEMO:~# cat /sys/bus/iio/devices/iio\:device*/name

ad7291

xadc

 

My dmesg is:

 

root@MYDEMO:~# dmesg | grep 9361

platform 79020000.axi_ad9361: Driver cf_axi_adc requests probe deferral

ad9361 spi32766.0: ad9361_probe : enter

ad9361 spi32766.0: Calibration TIMEOUT (0x244, 0x80)

ad9361: probe of spi32766.0 failed with error -110

platform 79024000.cf-ad9361-dds-core-lpc: Driver cf_axi_dds requests probe deferral

platform 79020000.axi_ad9361: Driver cf_axi_adc requests probe deferral

platform 79024000.cf-ad9361-dds-core-lpc: Driver cf_axi_dds requests probe deferral

 

If SPI wasn't pinned out correctly I wouldn't get this far. My DTS files are also attached. spi0 is a PS peripheral, i2c0 is also a PS peripheral. What am I missing that causes the AD9361 to timeout?

 

Thanks!

Outcomes