[PATCH 3/3] libertas: if_spi, driver for libertas GSPI devices
colin at cozybit.com
Tue Dec 23 15:25:40 EST 2008
If you look in include/linux/spi/spi.h, there is a comment that says:
* likely need more hooks for more protocol options affecting how
* the controller talks to each chip, like:
* - memory packing (12 bit samples into low bits, others zeroed)
* - priority
* - drop chipselect after each word
* - chipselect delays
* - ...
So the chip select features that our hardware needs (don't drop
chipselect after each word, busy-waits during the transaction) are not
yet part of the generic SPI layer. But they are "TBD."
I agree that we should move them into the generic SPI layer. Maybe
I'll come up with a patch to the SPI layer itself to do exactly that,
once I get back from vacation.
On Fri, Dec 19, 2008 at 8:57 AM, Peter Wippich <pewi at gw-instruments.de> wrote:
> Hi Andrey,
>> The '8686 requires us to assert CS# and then hold it asserted for the
>> entire transaction. The transaction is an arbitrary number of SPI
>> transfers. Most host controllers cannot do this (they'll toggle CS#
>> between individual transactions) and therefore we chose to not use the
>> controller CS# line and use a GPIO. Can you suggest a different way
>> to do this given the current SPI framework?
> This can be handled by the SPI driver. See pxa2xx_spi.c as an example.
> Look for cs_control() to get the picture.....
> Perhaps this should go to the general driver and not be handled by the
> chip specific code. Seems a problem general enough.
More information about the libertas-dev