spi: DUAL and QUAD support
authorwangyuhang <wangyuhang2014@gmail.com>
Sun, 11 Aug 2013 10:15:17 +0000 (18:15 +0800)
committerMark Brown <broonie@linaro.org>
Thu, 22 Aug 2013 12:47:29 +0000 (13:47 +0100)
commitf477b7fb13df2b843997559ff34e87d054ba6538
tree137825623bdd941ebd91a22f985c0352ee83a211
parent56ede94a000bb9635b326db38baf66da6dfc174e
spi: DUAL and QUAD support

fix the previous patch some mistake below:
1. DT in slave node, use "spi-tx-nbits = <1/2/4>" in place of using
   "spi-tx-dual, spi-tx-quad" directly, same to rx. So correct the
   previous way to get the property in @of_register_spi_devices().
2. Change the value of transfer bit macro(SPI_NBITS_SINGLE, SPI_NBITS_DUAL
   SPI_NBITS_QUAD) to 0x01, 0x02 and 0x04 to match the actual wires.
3. Add the following check
   (1)keep the tx_nbits and rx_nbits in spi_transfer is not beyond the
      single, dual and quad.
   (2)keep tx_nbits and rx_nbits are contained by @spi_device->mode
      example: if @spi_device->mode = DUAL, then tx/rx_nbits can not be set
               to QUAD(SPI_NBITS_QUAD)
   (3)if "@spi_device->mode & SPI_3WIRE", then tx/rx_nbits should be in
      single(SPI_NBITS_SINGLE)

Signed-off-by: wangyuhang <wangyuhang2014@gmail.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
drivers/spi/spi.c
include/linux/spi/spi.h