Atmel SPI Driver
The Atmel SPI driver, supporting the on-chip SPI controllers on AT32AP7000, AT91RM9200 and AT91SAM926x, has been submitted and merged in version 2.6.21 of the Linux kernel. The driver as submitted can be found attached to this page. Older version of the driver can be found at the LinuxPatches page.
The driver has been tested using a jffs2 filesystem stored in DataFlash?. It is also capable of turning the LCD panel on ATSTK1000 on and off.
Known issues
- Depends on the arch-independent GPIO API, an implementation of which was merged into mainline along with the AVR32 update for 2.6.21. Implementations for other architectures can be found in the latest -mm, but they will probably get merged before 2.6.21-rc1 as well.
- Depends on a cache invalidation fix for AVR32 which was also included in the 2.6.21 update. Without this, the driver may cause memory corruption.
- When CONFIG_DEBUG_SLAB or CONFIG_SLOB is enabled, the DMA buffer for received data may get corrupted. This is a problem with the respective allocators as they don't provide sufficient alignment for DMA buffers, and is not a problem with the driver itself.