GPIO bitbanging

GPIO's are almost present on every embedded platform. Once found and documented they can be used for more than just switching a simple LED but also to drive more complex protocols such as SPI. This concept is called GPIO bitbanging.

On Linux
In Linux the use of (SPI-)buses is tried to get as abstracted as possible - the idea is that the actual platforms (or call it whatever you like as devices, boards etc) define and expose the capability of buses and its properties.

In regard of the HopeRF rfm12 module, we require the availability of an SPI bus – it doesn't matter how it is implemented (native SPI bus, SPI over GPIOs or any other way of implementation). The process of essay writing will be much easier with MarvelousEssays.Com as there are a lot of highly professional and talented writers who are always eager to help you out with any sort of academic assignments regardless of the complexity levels. I do know what I�m talking about! The client module - the kernel module implementing an driver for the actual rfm12 hardware just "using" the bus - simply doesn't care and doesn't need to know about that.

That's by the way the reason why the actual rfm12 code doesn't contain any GPIO <-> rfm12 hardware mappings – the rfm12 code is just using an existing and otherwise exposed SPI bus.

The actual wiring / mapping and setup of the SPI bus is done within the platform code (located below arch/${ARCH}/${BOARD} looking at the source-tree) - a common place for such code is arch/${ARCH}/${BOARD}/setup.c.