Hello there.
I've encountered the same problem on my AT91SAM7X256 SSC working as SPI Slave via SSC. The output data is 3 bits delayed. But here's a kind of a workaround if you wish. The main idea is to add a 5-bit delay (using SSC STTDLY) and to ignore that unnecessary byte on the SPI Master side. Maybe my information will be useful.
And here is the code to configure SSC Transmit Clock Mode Register (SSC_TCMR):
Code:
//Configure Transmitter
AT91C_BASE_SSC->SSC_TCMR =
AT91C_SSC_CKS_TK | //TK <= RK Pin
AT91C_SSC_CKO_NONE | //Clock Output Mode: None RK pin: Input-only
(AT91C_SSC_CKI & (0x0 << 5)) | //TD/TF Shifted out on Falling(0)/Rising(1) edge
AT91C_SSC_CKG_NONE | //No Clock Gating
AT91C_SSC_START_CONTINOUS | //Continuous
//AT91C_SSC_START_TX | //Sync with RX
SSC_STTDLY(5) |//adding 5-Bit Delay to eliminate internal 3-Bit delay
(AT91C_SSC_PERIOD & (0x00 << 24)) ; //No Period