]> git.baikalelectronics.ru Git - kernel.git/commit
spi: bcm2835: set up spi-mode before asserting cs-gpio
authorMartin Sperl <kernel@martin.sperl.org>
Tue, 28 Jul 2015 14:03:12 +0000 (14:03 +0000)
committerMark Brown <broonie@kernel.org>
Wed, 29 Jul 2015 17:22:04 +0000 (18:22 +0100)
commit5e8d6c49e3e3221a2d02631c739e57503f8bc120
tree7d104d1dda6ecc317fac583e5491b7360530caca
parent9f982bb1128a7f4215b5eb0c7b858c42c74a38d9
spi: bcm2835: set up spi-mode before asserting cs-gpio

When using reverse polarity for clock (spi-cpol) on a device
the clock line gets altered after chip-select has been asserted
resulting in an additional clock beat, which confuses hardware.

This did not show when using native-CS, as the same register
is used to control cs as well as polarity, so the changes came
into effect at the same time. Unfortunately this is not true
with gpio-cs.

To avoid this situation this patch moves the setup of polarity
(spi-cpol and spi-cpha) outside of the chip-select into
prepare_message, which is run prior to asserting chip-select.

Also fixes resetting 3-wire mode after use of rx-mode, so that
a 3-Wire sequence TX, RX, TX works as well (right now it runs
TX, RX, RX instead)

Reported-by: Noralf Tronnes <noralf@tronnes.org>
Signed-off-by: Martin Sperl <kernel@martin.sperl.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
drivers/spi/spi-bcm2835.c