we are doing some SPI tests with Linux on the i.MX6UL evaluation board. We found that a SPI transfer takes very long even if the actual communication phase is short.
The image below shows a transfer of 2 bytes at 10MHz SPI clock speed. Green line is the SPI chip select, yellow line is the SPI clock signal. The actual data transfer takes only approx 2...4us while the total chip select active time is almost 100us. Where does this huge overhead come from?
We are using the freescale imx_4.9.11_1.0.0 kernel. The CPU is running at 528MHz. A gpio is used for the SPI chip select.
We measured many transfers. The image shows the shortest transfer cycle time we could find.