mirror of https://github.com/torvalds/linux.git
spi: add driver for NXP XSPI controller
Add driver support for NXP XSPI controller. XSPI is a flexible SPI host controller which supports up to 2 external devices (2 CS). It support Single/Dual/Quad/Octal mode data transfer. The difference between XSPI and Flexspi: 1.the register layout is total different. 2.XSPI support multiple independent execution environments (EENVs) for HW virtualization with some limitations. Each EENV has its own interrupt and its own set of programming registers that exists in a specific offset range in the XSPI memory map. The main environment (EENV0) address space contains all of the registers for controlling EENV0 plus all of the general XSPI control and programming registers. The register mnemonics for the user environments (EENV1 to EENV4) have "_SUB_n" appended to the mnemonic for the corresponding main-environment register. Current driver based on EENV0, which means system already give EENV0 right to linux. This driver use SPI memory interface of the SPI framework to issue flash memory operations. Tested this driver with UBIFS and mtd_debug on NXP i.MX943 EVK board which has one spi nor MT35XU512ABA flash. Now this driver has the following key features: - Support up to OCT DDR mode - Support AHB read - Support IP read and IP write - Support two CS Reviewed-by: Frank Li <Frank.Li@nxp.com> Signed-off-by: Haibo Chen <haibo.chen@nxp.com> Link: https://patch.msgid.link/20251216-xspi-v7-2-282525220979@nxp.com Signed-off-by: Mark Brown <broonie@kernel.org>
This commit is contained in:
parent
64ba616741
commit
29c8c00d9f
|
|
@ -18953,6 +18953,7 @@ L: linux-spi@vger.kernel.org
|
|||
L: imx@lists.linux.dev
|
||||
S: Maintained
|
||||
F: Documentation/devicetree/bindings/spi/nxp,imx94-xspi.yaml
|
||||
F: drivers/spi/spi-nxp-xspi.c
|
||||
|
||||
NXP-NCI NFC DRIVER
|
||||
S: Orphan
|
||||
|
|
|
|||
|
|
@ -481,6 +481,16 @@ config SPI_NXP_FLEXSPI
|
|||
This controller does not support generic SPI messages and only
|
||||
supports the high-level SPI memory interface.
|
||||
|
||||
config SPI_NXP_XSPI
|
||||
tristate "NXP xSPI controller"
|
||||
depends on ARCH_MXC || COMPILE_TEST
|
||||
depends on HAS_IOMEM
|
||||
help
|
||||
This enables support for the xSPI controller. Up to two devices
|
||||
can be connected to one host.
|
||||
This controller does not support generic SPI messages and only
|
||||
supports the high-level SPI memory interface.
|
||||
|
||||
config SPI_GPIO
|
||||
tristate "GPIO-based bitbanging SPI Master"
|
||||
depends on GPIOLIB || COMPILE_TEST
|
||||
|
|
|
|||
|
|
@ -102,6 +102,7 @@ obj-$(CONFIG_SPI_WPCM_FIU) += spi-wpcm-fiu.o
|
|||
obj-$(CONFIG_SPI_NPCM_FIU) += spi-npcm-fiu.o
|
||||
obj-$(CONFIG_SPI_NPCM_PSPI) += spi-npcm-pspi.o
|
||||
obj-$(CONFIG_SPI_NXP_FLEXSPI) += spi-nxp-fspi.o
|
||||
obj-$(CONFIG_SPI_NXP_XSPI) += spi-nxp-xspi.o
|
||||
obj-$(CONFIG_SPI_OC_TINY) += spi-oc-tiny.o
|
||||
spi-octeon-objs := spi-cavium.o spi-cavium-octeon.o
|
||||
obj-$(CONFIG_SPI_OCTEON) += spi-octeon.o
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue