I've been struggling with a problem with MCSPI3 and MCSPI4 on the expansion
connector. I've enabled SPI3 and SPI4 and I'm testing with spidev. I've got
the PADCONFs set correctly -- (I've verified this more times than you can
The problem is all SPI RX data is zero. TX Data goes out just fine, appears
out the SIMO line, along with SCLK and CS0. I've verified that the data is
getting to the expansion connector.
I've also configured the SOMI pad to have a pullup, which I verified on the
pin itself, which should produce all ones for RX data, but I still get
I've also configured the SOMI pin as gpio, and verified that the data is
getting through to the cpu using /sys/class/gpio for testing. Both 1's and
0's work fine on the pin when being used as gpio, but not SPI.
I'm beginning to suspect that there is something wrong with the SPI
controller, but I doubt it.
I've also added some debugging code to drivers/spi/omap2_mcspi.c to print
out the data as it goes in an out of the driver. Here too, RX data is all
zeros. One place I did this is inside omap2_mcspi_txrx_pio, which is used
when the number of bytes to transfer is less than 8. It made it easier to
verify each byte going in and out.
I'm using linux-omap_git package for my kernel,
(Angstrom/2.6.27+2.6.28-rc6+r2+git). I know this is a few weeks old, but
I've looked through the commits and I don't see anything that would address
Anyone have any insight on this issue?