summary refs log tree commit diff
path: root/kernel
diff options
context:
space:
mode:
authorMiquel Raynal <miquel.raynal@free-electrons.com>2017-09-13 18:21:38 +0200
committerMark Brown <broonie@kernel.org>2017-09-13 09:37:26 -0700
commit747e1f60470b975363cbbfcde0c41a3166391be5 (patch)
treeda72b6a88c3f84b6bbbffddaeb987fdf14e88062 /kernel
parentecb478bf866b8450c724958815e8d46b97c1b113 (diff)
downloadlinux-747e1f60470b975363cbbfcde0c41a3166391be5.tar.gz
spi: armada-3700: Fix failing commands with quad-SPI
A3700 SPI controller datasheet states that only the first line (IO0) is
used to receive and send instructions, addresses and dummy bytes,
unless for addresses during an RX operation in a quad SPI configuration
(see p.821 of the Armada-3720-DB datasheet). Otherwise, some commands
such as SPI NOR commands like READ_FROM_CACHE_DUAL_IO(0xeb) and
READ_FROM_CACHE_DUAL_IO(0xbb) will fail because these commands must send
address bytes through the four pins. Data transfer always use the four
bytes with this setup.

Thus, in quad SPI configuration, the A3700_SPI_ADDR_PIN bit must be set
only in this case to inform the controller that it must use the number
of pins indicated in the {A3700_SPI_DATA_PIN1,A3700_SPI_DATA_PIN0} field
during the address cycles of an RX operation.

Suggested-by: Ken Ma <make@marvell.com>
Signed-off-by: Miquel Raynal <miquel.raynal@free-electrons.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Cc: stable@vger.kernel.org
Diffstat (limited to 'kernel')
0 files changed, 0 insertions, 0 deletions