Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

spi: fsl-qspi: support the SpacemiT K1 SoC

Allow the SPI_FSL_QUADSPI Kconfig option to be selected if ARCH_SPACEMIT
enabled.

Add support for the SpacemiT K1 SoC in the Freescale QSPI driver by
defining the device type data for its QSPI implementation.

Signed-off-by: Alex Elder <elder@riscstar.com>
Link: https://patch.msgid.link/20251027133008.360237-8-elder@riscstar.com
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

Alex Elder and committed by
Mark Brown
abc9a349 56931105

+13 -1
+2 -1
drivers/spi/Kconfig
··· 435 435 436 436 config SPI_FSL_QUADSPI 437 437 tristate "Freescale QSPI controller" 438 - depends on ARCH_MXC || SOC_LS1021A || ARCH_LAYERSCAPE || COMPILE_TEST 438 + depends on ARCH_MXC || SOC_LS1021A || ARCH_LAYERSCAPE || \ 439 + ARCH_SPACEMIT || COMPILE_TEST 439 440 depends on HAS_IOMEM 440 441 help 441 442 This enables support for the Quad SPI controller in master mode.
+11
drivers/spi/spi-fsl-qspi.c
··· 268 268 .little_endian = true, 269 269 }; 270 270 271 + static const struct fsl_qspi_devtype_data spacemit_k1_data = { 272 + .rxfifo = SZ_128, 273 + .txfifo = SZ_256, 274 + .ahb_buf_size = SZ_512, 275 + .sfa_size = SZ_1K, 276 + .invalid_mstrid = QUADSPI_BUFXCR_INVALID_MSTRID, 277 + .quirks = QUADSPI_QUIRK_TKT253890 | QUADSPI_QUIRK_SKIP_CLK_DISABLE, 278 + .little_endian = true, 279 + }; 280 + 271 281 struct fsl_qspi { 272 282 void __iomem *iobase; 273 283 void __iomem *ahb_addr; ··· 1013 1003 { .compatible = "fsl,imx6ul-qspi", .data = &imx6ul_data, }, 1014 1004 { .compatible = "fsl,ls1021a-qspi", .data = &ls1021a_data, }, 1015 1005 { .compatible = "fsl,ls2080a-qspi", .data = &ls2080a_data, }, 1006 + { .compatible = "spacemit,k1-qspi", .data = &spacemit_k1_data, }, 1016 1007 { /* sentinel */ } 1017 1008 }; 1018 1009 MODULE_DEVICE_TABLE(of, fsl_qspi_dt_ids);