This is question how to read multiple words in when OMAP is in Slave mode on SPI channel 0.
A master SPI device (i.e peripheral device) is connected to OMAP 3503's SPI channel 0,
OMAP is configured to act as the slave device in receive only mode, with below given configuration for Channel 0
MCSPI_CH0CONF :
POL = 0 , PHA = 1, CLKD = 0000, EPOL = 0, WL = 01111, TRM= 01, DMAW=0, DMAR=0, DPE0=1, DPE1=1 , IS=1 , TURBO=0 and bits 20 to 31 are all zeros.
MCSPI_MODULCTRL:
SYSTEM_TEST=0, MS = 1 , RESERVED= 0, SINGLe=0
MCSPI_IRQENABLE = 0x4
MCSPI_SYSCONFIG = 0x2
MCSPI_SYST= 0x700
The peripheral device acting as Master SPI device, is MSB first, falling edge. The data frame is sync'd with falling edge of the 1Mhz SPI clock.
The peripheral device's Chip select line is connected to spim_cs0, is used as data frame sync.This line goes high for the duration of each 16-bit word and then it goes low.
The issue is that for each event/burst from the peripheral device, the peripheral device sends 10 16-bit words to OMAP, but OMAP is able to read only 2 16-bit words.
Need to know if there any incorrect setting in the above shown configuration ?
On Linux how do can we make OMAP (in slave mode) read multiple words (for example all the 10 16-bit words) from peripheral device (in Master mode) ?
Thanks,
Pad