On Friday 31 March 2006 11:07 am, Kumar Gala wrote:> My controller is just a shift register that I can set the > characteristics of (bit length for example, reverse data).

I've got a patch somewhere to enable LSB-first transfers in the API,though without an implementation, if you're interested. I'll post itas an RFC at some point.

> > The chipselect() call should only affect the chipselect signal and,> > when you're activating a chip, its initial clock polarity. Though> > if you're not using the latest from the MM tree, that's also your> > hook for ensuring that the SPI mode is set up right.> > Why deal with just clock polarity and not clock phase as well in > chipselect()?

You could, but the point is that you _must_ set the initial polaritybefore setting the chipselect. Most SPI devices support modes 0 and 3,and make the choice based on the clock polarity when chipselect goesactive. Changing polarity later would start a transfer. :)

> It sounds like with the new patch, I'll end up setting txrx_word[] to > the same function for all modes.

Yes, it does sound like that. If that works for you, I'd like to seethat go into 2.6.17 kernels.