spi: add driver for BCM2835

This driver is taken from: git://github.com/bootc/linux.git branch
rpi-linear as of commit 6de2905 "spi-bcm2708: fix printf with spurious
%s".

Changes made during upstreaming:
* Renamed bcm2708 to bcm2835 as per upstream naming for this SoC.
* Removed linux,realtime from DT binding.
* Request unnamed clock rather than "sys_pclk"; the DT will provide the
  correct clock.
* Assume that tfr->speed_hz and tfr->bits_per_word are always set in
  bcm2835_spi_start_transfer(), bcm2835_spi_transfer_one(), so no need
  to check spi->speed_hz or tft->bits_per_word.
* Re-ordered probe() to remove the need for temporary variables.
* Don't use devm_request_irq(), to ensure that the IRQ doesn't fire after
  we've torn down the device, but not unhooked the IRQ.
* Removed empty prepare/unprepare implementations.
* Removed use of devinit/devexit.
* Added BCM2835_ prefix to defines.

Signed-off-by: Chris Boot <bootc@bootc.net>
Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
spi driver fixup

FIXME: Check whether irq_of_parse_and_map() returns an error; should the
check be <= 0 or just == 0?

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
ARM: bcm2835: add SPI device to DT

FIXME: describe more, check actual rate of dummy clock.

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>
LOCAL HACK: ARM: bcm2835: enable enc28j60 SPI device

FIXME: describe more, split into 2 patches.

Signed-off-by: Stephen Warren <swarren@wwwdotorg.org>