]> git.baikalelectronics.ru Git - kernel.git/commit
spi: spi-mtk-nor: make use of full capability of prg mode
authorChuanhong Guo <gch981213@gmail.com>
Thu, 24 Sep 2020 15:27:28 +0000 (23:27 +0800)
committerMark Brown <broonie@kernel.org>
Thu, 1 Oct 2020 22:24:25 +0000 (23:24 +0100)
commit6145a3c3433d4dcaa359e2795fc8afe4b4bdf608
tree87bb67e248f41608275831161ef3243054e41387
parent1b70b88330e5e60e787b71a22455b25c6d6f55c7
spi: spi-mtk-nor: make use of full capability of prg mode

"program" mode on this controller can trigger up to 56 bits of data
shifting. During the operation, data in PRGDATA[0-5] will be
shifted out from MOSI, and data from MISO will be continuously filling
SHREG[0-9].
Currently this mode is used to implement transfer_one_message for 6-byte
full-duplex transfer, but it can execute a transfer for up-to 7 bytes
as long as the last byte is read only.
transfer_one_message is expected to perform full-duplex transfer,
instead of transfer with specific format. mtk_nor_spi_mem_prg is
added here to use this extra byte.

Newer version of this controller can trigger longer data shifting with
shift bytes more than PRGDATA_MAX + SHREG_MAX. This patch is implemented
with that in mind and it checks against both SHREG_MAX and PRG_CNT_MAX
for future support of new controllers.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
Link: https://lore.kernel.org/r/20200924152730.733243-2-gch981213@gmail.com
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-mtk-nor.c