]> git.baikalelectronics.ru Git - kernel.git/commit
spi: dw: Add Baikal-T1 SPI Controller glue driver
authorBaikal Electronics <support@baikalelectronics.ru>
Wed, 7 Oct 2020 23:55:10 +0000 (02:55 +0300)
committerMark Brown <broonie@kernel.org>
Thu, 8 Oct 2020 22:00:22 +0000 (23:00 +0100)
commit2d53cb2497fda663d751db251f3d4d619f8af452
tree573f5473602b4009463f8bad424dbd3d899173ce
parentc9f39b46ed5139927a5ad9299e196331ee09cfa0
spi: dw: Add Baikal-T1 SPI Controller glue driver

Baikal-T1 is equipped with three DW APB SSI-based MMIO SPI controllers.
Two of them are pretty much normal: with IRQ, DMA, FIFOs of 64 words
depth, 4x CSs, but the third one as being a part of the Baikal-T1 System
Boot Controller has got a very limited resources: no IRQ, no DMA, only a
single native chip-select and Tx/Rx FIFO with just 8 words depth
available. In order to provide a transparent initial boot code execution
the Boot SPI controller is also utilized by an vendor-specific IP-block,
which exposes an SPI flash direct mapping interface. Since both direct
mapping and SPI controller normal utilization are mutual exclusive only
one of these interfaces can be used to access an external SPI slave
device. That's why a dedicated mux is embedded into the System Boot
Controller. All of that is taken into account in the Baikal-T1-specific DW
APB SSI glue driver implemented by means of the DW SPI core module.

Co-developed-by: Ramil Zaripov <Ramil.Zaripov@baikalelectronics.ru>
Signed-off-by: Ramil Zaripov <Ramil.Zaripov@baikalelectronics.ru>
Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Link: https://lore.kernel.org/r/20201007235511.4935-22-Sergey.Semin@baikalelectronics.ru
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/Kconfig
drivers/spi/Makefile
drivers/spi/spi-dw-bt1.c [new file with mode: 0644]