From: Adam A K. <kumpf@MIT.EDU> - 2006-07-10 16:28:36
|
Hi Tim, Thanks for the link. That seems to be in the right directions, although, t= he driver is specific to a parallel port implementation. (it shifts bits in an= d out of two pins on the parallel port). The pxa2xx used with the GumStix ha= s some built-in functionality for SPI that should allow an entire byte to be placed in memory somewhere and then it will be pushed out, with on-chip dedicated hardware, to the SPI bus in a serial manner. (not a bit-shifting = for loop) as a side note, when I "cat /proc/iomem" I get this: 04000300-040fffff : smc91x-regs 04000300-0400030f : smc91x 40301680-403016a3 : pxa2xx-i2c.0 40400000-40400083 : pxa2xx-i2s 40600000-4060ffff : pxa2xx-udc 41100000-41100fff : pxa2xx-mci 41100000-41100fff : pxa2xx-mci 41400000-4140002c : pxa2xx-spi.2 <------ good? 44000000-4400ffff : pxa2xx-fb a0000000-a3ffffff : System RAM a0017000-a01580b3 : Kernel text a015a000-a0198867 : Kernel data If I knew exactly what to put in the pxa2xx-spi.2 memory locations, I may b= e getting close to an idea... This all feels like such a hack though, and no= t a well supported solution. Has _ANYONE_ gotten SPI up and running yet? All I've been able to find via forums/wiki/google/etc. are people trying SPI on the pxa2xx/GumStix without success. - Adam Kumpf ku...@mi... Quoting Tim Newsom <ce...@ya...>: > > > Adam A Kumpf <kumpf@MIT.EDU> wrote: I'm working on a multi-gumstix > robotics project and getting the SPI > port working > is a very important part so that the gumstixs can talk to daughter-board > dsps/PICs/other specialized hardware. > > I've been trying to figure out the NSSP SPI driver setup for quite a > while now, > but I keep getting stuck. If someone who knows the inner-workings of > the linux > kernel/drivers I would really appreciate some help. > > Here is what I "think" I know so far about the SPI setup... > - 2.6.17gum has the foundation for SPI support > - pxa2xx-spi doesn't come loaded in the kernel, but it can be easily buil= t-in > with menuconfig in the 2.6.17gum directory. > - 2.6.17gum/arch/mach-pxa/gumstix.c can modified to setup the NSSP > SPI port on > startup, along with a listing of slave devices. (maybe more can be done > here?!?) > - now the bindings for pxa2xx-SPI are in place, but the hardware cannot > be used > without a driver. > - A "characer device" driver should fill the gap by allowing a > "/dev/spi" node > for the SPI device. This allows the user to interact with the calls now > embedded in the kernel. > - programs should now be able to read/write/setup(via ioctl) the SPI port= via > its device node. > > I am stuck on how to go about making the character device driver. In > particular, I do not know how to make the driver link to the SPI port. I= 've > looked through some simple character drivers that write kernel messages a= nd > create device nodes and all is well.. but how do I modify that to actuall= y > interact with the NSSP SPI hardware port? > > Ideally, a "/dev/spi" device would be created with default parameters > when the > gumstix boots and then programs could simply read/write to the device. > > I appreciate all of your feedback to help get SPI actually up and running= ! :) > > - Adam Kumpf > ku...@mi... > > > ok, So I was just looking into this and I found a few places which > have examples and might help but I con only find one of them for some > reason. > > This is an SPI driver by someone which at this point may already be > part of the kernel (I have not looked and I think code already exists > there) but the important thing is the code showing how to interface > user land code with the SPI module. > > http://www.paul.de/downloadables/ Look at SPI-DRIVER and if you get > version 2.0 it might work. I have not tested any of this, just been > doing research. > > Its a very simple example so if it works, great. > > --Tim. > > > --------------------------------- > Talk is cheap. Use Yahoo! Messenger to make PC-to-Phone calls. Great > rates starting at 1=A2/min. |