Skip to content
msperl edited this page Feb 27, 2015 · 15 revisions

Welcome to the spi-bcm2835 wiki!

Observations on the situation with the current drivers (as of rpi-linux-690878e2)

Things to do

  • import drivers from rpi-linux-690878e2
  • instrument drivers with debugpins for analysis via a logic-analyzer (d5b7f99)
  • implement LoSSI/9-bit mode in spi-bcm2835 (ab3f074)
    • test with a device
  • improvement of CS down to TX-delay due to interrupt latencies (edc58bd)
  • improvement of TX/RX to the max amount that the device says it can handle (deviate from the documentation for interrupt-driven) - (acfceb0)
  • implement Real Time priorities for spi-cbm2835
  • span the transfer of bytes in different spi_xfers in interrupt without any wake-up of a thread and the corresponding scheduling delays
  • fix inverse polarity issues - this may mean also arbitrary CS support and not only CS0/CS1/CS2!
  • support arbitrary Clock dividers - not only power of 2 as stated in the official documentation
  • implement DMA transfers for longer chunks (maybe >64 bytes)
  • full blown pipelined DMA implementation using dma-fragments
    • note to make this work efficiently we may need the "spi_optimize" in the core...
  • upstream all of those
  • get the official RPI kernel to support/use the spi-bcm2835 as their default SPI driver
Clone this wiki locally