Tool/software: Linux
Hello,
our AM5728 is configured as SPI master and it is communication with an SPI slave device.
The AM5728 is configured to use the spidev driver.
&mcspi1 { spidev1_0: spidev1@0 { compatible = "linux,spidev"; reg = <0>; spi-max-frequency = <48000000>; }; };
The AM5728 should read data from the SPI slave device is a burst way.
On the userspace we are able to send the clock in a burst way
struct spi_ioc_transfer tr = { .tx_buf = (unsigned long)tx, .rx_buf = (unsigned long)rx, .len = 32, .delay_usecs = 0, .speed_hz = 1000000, .bits_per_word = 8, .cs_change = 0, //.cs_change = 1,
.pad = 0, }; ioctl(fd, SPI_IOC_MESSAGE(1), &tr);
The problem is, the slave device need the chip select of the SPI master to toggle(asserted and deasserted) the chip select between byte.
we do not want to read single byte in a loop because it is killing our SPI bandwidth.
therefore how to make the SPI driver toggle the chip select between byte?