Hi,
I am using a MicroZed 7z010 with Linux kernel 3.9.0 (xilinx-v14.6.02) from:
https://github.com/Xilinx/linux-xlnx/
I am attempting to upgrade the kernel to the latest version (4.4.0) from the same repo but it broke the SPI communication to an Analog Devices PLL that is connected. The spidev module in the kernel is enabled, as well as all the other xilinx/zynq modules. A C program is run, using spidev, to communicate to the PLL.
The two main issues I am seeing are:
- SPI transfer timed out after every byte (either transfering the bytes one-by-one or using the C function 'SPI_IOC_MESSAGE'.
- With an oscilloscope, I see that the chip-select signal starts high when rebooting the board, but then stays low after the first transfer attempt - the old kernel would return it to high.
I admit that I'm a bit new to using this technology, but I have Linux and C experience. Things that I have attempted:
- Modifying the device-tree in dozens of ways
- Modified the SPI C code to send SPI using a number of different parameters
- Modified the Linux kernel module (spi.c and/or spi-cadence.c)
- Too much trial-and-error
The best of the outcomes would still give me those two problems mentioned above.
Is there something I'm doing wrong?
Thanks for any help!