spi: cadence: Add driver for xSPI
authorBoon Khai Ng <boon.khai.ng@altera.com>
Mon, 27 Oct 2025 06:36:54 +0000 (14:36 +0800)
committerTien Fong Chee <tien.fong.chee@intel.com>
Mon, 1 Dec 2025 05:57:32 +0000 (13:57 +0800)
commit5eb14e1ea26c22c8994ef6a5013e26eef825c23a
tree337543399e44d2a409f3897d5b15355443ffb91d
parentec4b7710f87f02e94d5418713da8c1930a5c6528
spi: cadence: Add driver for xSPI

This patch ports the Cadence xSPI controller driver from
the Linux kernel. The controller supports three operating modes:

1. ACMD (Auto Command) mode
   - Includes PIO and CDMA submodes.
   - CDMA mode uses linked descriptors for high-performance,
     low-overhead operation.
   - PIO mode is suitable for simple, single-command transactions.

2. STIG (Software Triggered Instruction Generator) mode
   - Issues low-level 128-bit instructions to memory.
   - Uses the Slave DMA interface for data transfers.

3. Direct mode
   - Enables direct data access through the slave interface
     without commands.

Currently, only the STIG work mode is enabled. Additional modes will be
supported in future updates.

At the same time, also enabling the kconfig option for xSPI driver.

This driver has been ported and functionally verified on the Intel Simics
platform. It is intended for evaluation and experimental use at this stage.

Link: https://lore.kernel.org/all/1632038734-23999-1-git-send-email-pthombar@cadence.com/
Signed-off-by: Boon Khai Ng <boon.khai.ng@altera.com>
Reviewed-by: Tien Fong Chee <tien.fong.chee@altera.com>
drivers/spi/Kconfig
drivers/spi/Makefile
drivers/spi/cadence_xspi.c [new file with mode: 0644]
drivers/spi/cadence_xspi.h [new file with mode: 0644]