Jump to content
  • 0

How to use multiple PL SPI interfaces with Linux on Zynq?


amurices

Question

I'm trying to set up two AXI Quad SPI IPCores as Masters to use with Linux on my MicroZed. I've been using a single interface, which works fine, by taking the M_AXI_GP0 interface, connecting it to an AXI Interconnect, and using that to connect to the IPCore. However, with two or more IPCores, I don't know how to get this to work. The block design of my attempt is below.

But it just doesn't work. The device tree nodes for both devices look identical (apart from their addresses and the fact that the second one has a disconnected interrupt pin (which doesn't do anything in my case)), but when I try to open the second device in Linux, it gives me the error spidev: Connection timed out.

How should I do this?

This question was also asked here: https://forums.xilinx.com/t5/Embedded-Linux/How-to-use-multiple-PL-SPI-interfaces-with-Linux-on-Zynq/td-p/870991

 

block_design_2_spis.png

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

I found the issue! It was that the interrupt port from the second device wasn't connected. I had to add a Concat IPCore to enable interrupts from both devices, and now everything is dandy. Seems like the spi-xilinx.c driver counts on that pin to probe the device correctly.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...