spi_mpc83xx: much improved driver
The current driver may cause glitches on SPI CLK line since one must disable the SPI controller before changing any HW settings. Fix this by implementing a local spi_transfer function that won't change speed and/or word size while CS is active. While doing that heavy lifting a few other issues were addressed too: - Make word size 16 and 32 work too. - Honor bits_per_word and speed_hz in spi transaction. - Optimize the common path. This also stops using the "bitbang" framework (except for a few constants). [Roel Kluin <12o3l@tiscali.nl>: "irq" needs to be signed] Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
f4ed0deae8
commit
c9bfcb3151
2 changed files with 288 additions and 136 deletions
|
@ -126,7 +126,6 @@ config SPI_MPC52xx_PSC
|
|||
config SPI_MPC83xx
|
||||
tristate "Freescale MPC83xx/QUICC Engine SPI controller"
|
||||
depends on SPI_MASTER && (PPC_83xx || QUICC_ENGINE) && EXPERIMENTAL
|
||||
select SPI_BITBANG
|
||||
help
|
||||
This enables using the Freescale MPC83xx and QUICC Engine SPI
|
||||
controllers in master mode.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue