xc7z045 chip (ZC706 broad) use spi-candence.c as spi master driver and spidev.c as device driver.
I set spi driver 16 bits per word with the following command in application.
bits = 16;
ret = ioctl(fd, SPI_IOC_WR_BITS_PER_WORD, &bits);
ret = ioctl(fd, SPI_IOC_RD_BITS_PER_WORD, &bits);
Then send data with ioctl command. "ret = ioctl(fd, SPI_IOC_MESSAGE(1), &tr);".
it reports error "can't send spi message: Invalid argument"!!!!
It will be ok if set bits = 8. So I think the spi master doesn't support 16 bits per word.
Could you tell me if the spi master support 16 bits per word?
Yes, the SPI controller only supports 8 bit transfers.