Hi,
I'm trying to write a protocol driver that uses the spi infrastructure
of the 2.6.24.4 patched kernel.
I'm trying to support multiple slave devices, which might have
different values for bits/word. In reading the kerneldoc for spi, it
appears that the spi_device is a proxy to the hardware for each slave
driver.
But in the spi_ep93xx.c file, the driver is not looking at the
bits/word for each transfer from the spi_device, only at the bits/word
of the transfer packet.
Furthermore, the bits/word are being set when the slave loads, but if
many slaves require different bits/word, is the correct method to set
the bits/word for each transaction? The current code seems to suggest
that, but it doesn't seem to make sense to me when reading the spi docs.
I guess, what I'm asking is if the driver is handling changing of the
bits/word correctly.
My interpretation seems like the spi_device is a per-slave entity, and
it dictates how to set up the bits/word per transaction, and this is
set at the load of the slave device. But if multiple slaves are
sharing the same hardware, then the bits/word should be set according
to the slaves spi_device for each transaction.
But on top of that, you can change the bits/word per transaction
within a given slave. I guess this would be useful if a slave has
some odd protocol which requires different bits/word in the same
sequence without deasserting the CS line?
In any case, I'm very confused, and hopefully the author of the driver
can help me :)
------------------------------------
Yahoo! Groups Links
<*> To visit your group on the web, go to:
http://groups.yahoo.com/group/ts-7000/
<*> Your email settings:
Individual Email | Traditional
<*> To change settings online go to:
http://groups.yahoo.com/group/ts-7000/join
(Yahoo! ID required)
<*> To change settings via email:
<*> To unsubscribe from this group, send an email to:
<*> Your use of Yahoo! Groups is subject to:
http://docs.yahoo.com/info/terms/
|