spi: lantiq-ssc: add support for Lantiq SSC SPI controller
authorHauke Mehrtens <hauke@hauke-m.de>
Mon, 13 Feb 2017 23:31:11 +0000 (00:31 +0100)
committerMark Brown <broonie@kernel.org>
Tue, 14 Feb 2017 17:10:40 +0000 (17:10 +0000)
commit17f84b793c01452e8802ef80324863b8da7d900b
treebf02d8cf4c86ed2831bd3104048191c1809eea05
parentfafd67940774733fa97f4b09412aea6981b82e0a
spi: lantiq-ssc: add support for Lantiq SSC SPI controller

This driver supports the Lantiq SSC SPI controller in master
mode. This controller is found on Intel (former Lantiq) SoCs like
the Danube, Falcon, xRX200, xRX300.

The hardware uses two hardware FIFOs one for received and one for
transferred bytes. When the driver writes data into the transmit FIFO
the complete word is taken from the FIFO into a shift register. The
data from this shift register is then written to the wire. This driver
uses the interrupts signaling the status of the FIFOs and not the shift
register. It is also possible to use the interrupts for the shift
register, but they will send a signal after every word. When using the
interrupts for the shift register we get a signal when the last word is
written into the shift register and not when it is written to the wire.
After all FIFOs are empty the driver busy waits till the hardware is
not busy any more and returns the transfer status.

Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck@gmail.com>
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
Documentation/devicetree/bindings/spi/spi-lantiq-ssc.txt [new file with mode: 0644]
drivers/spi/Kconfig
drivers/spi/Makefile
drivers/spi/spi-lantiq-ssc.c [new file with mode: 0644]