XM spidev but no output

I am a hardware guy who is having some trouble getting any kind of
output from McSPI3 using the spidev_test.c code. I have successfully
built Angstrom (2.6.37) and Sakoman's u-boot for my Beagleboard xM A2
using the OE/bitbake tools. I have previously attempted to handle the
pin muxing in u-boot by modifying board/ti/beagle/beagle.h and then
in the kernel with arch/arm/mach-omap2/board-omap3beagle.c. I also
registered the devices in the board file as well. Spidev3.0, 3.1, and
4.0 appear in /dev and the relevant /sys directories once I boot up,
but running spidev_test shows absolutely nothing on my scope (I
compiled spidev_test.c natively). I don't even get the clock pulse.

I figured there was most likely something wrong my pin mux
configuration, so I applied existing patches to enable McSPI 3 and 4
for the 2.6.37 kernel and replaced my config file from [1]. However,
after I rebuilt everything, I still don't get any output on my pins.

In another discussion aLamkin appears to reference a similar issue
which was the result of an older x-loader pulling a default u-boot
configuration from NAND [2]. Since the xM doesn't have NAND I am
assuming that x-loader is not my problem. Clement also posted a
similar issue but if it was resolved, the solution never made it to
the forum [3].

Is there a fundamental issue like additional permissions to execute
spidev_test that I am overlooking? I would appreciate any help that
would point me in the right direction or to a more appropriate mailing

-Andrew Marsh

1. http://elinux.org/BeagleBoard/SPI
3. http://groups.google.com/group/beagleboard/browse_thread/thread/d6a4e0703033cada/8bc20f808fafc371?lnk=gst&q=SPI+testing#8bc20f808fafc371

I'm having the exact same problem on a BeagleBoard C4. Had spidev4.0
but not 3.0 or 3.1 working on 2.6.32, upgraded to 2.6.37 and the
latest narcissus build of Angstrom, and now this. I've run the patch,
compiled a new kernel, and even tried compiling a new u-boot, with no
avail. 2.6.37 also seems to break my serial console :-/

I followed the same path on 2.6.32, and spidev_test worked great... I
didn't need special permissions. Only problem was, 3.0 and 3.1 output
nothing on the scope, only 4.0 worked. I tried upgrading to fix
this :-/

Jon Evans

Did you change the pin mux in uboot or kernel?

Sorry for the slow response. I did the pin mux in u-boot. I am not
sure what went wrong with my initial attempts to use spidev. Since
then I have managed to get it working. I started over and rebuilt
everything from scratch. I then went back and manually set the pin mux
in u-boot. I didn't use the patches this time. I am not really sure
what was wrong with what I did before, but I currently have spidev
3.0, 3.1, and 4.0 working nicely. I guess I made somewhere in the
process I made a noobish mistake.