aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYao Yuan <yao.yuan@freescale.com>2016-01-26 02:23:56 -0500
committerBrian Norris <computersforpeace@gmail.com>2016-03-07 14:46:44 -0500
commite8c034b2fbe57f56c3902187f844f41d295b5159 (patch)
tree5949486a8eddaf71dd0082753772b2968143db3e
parent2012850be8e3324bf3420ea08e1d0ee75c8d134c (diff)
mtd: spi-nor: fsl-quadspi: add support for ls1021a
LS1021a also support Freescale Quad SPI controller. Add fsl-quadspi support for ls1021a chip and make SPI_FSL_QUADSPI selectable for LS1021A SOC hardwares. Signed-off-by: Yuan Yao <yao.yuan@nxp.com> Acked-by: Han xu <han.xu@freescale.com> Acked-by: Han xu <han.xu@nxp.com> Signed-off-by: Brian Norris <computersforpeace@gmail.com>
-rw-r--r--drivers/mtd/spi-nor/Kconfig2
-rw-r--r--drivers/mtd/spi-nor/fsl-quadspi.c10
2 files changed, 11 insertions, 1 deletions
diff --git a/drivers/mtd/spi-nor/Kconfig b/drivers/mtd/spi-nor/Kconfig
index 83befab4b5b4..3392a97ef55d 100644
--- a/drivers/mtd/spi-nor/Kconfig
+++ b/drivers/mtd/spi-nor/Kconfig
@@ -31,7 +31,7 @@ config MTD_SPI_NOR_USE_4K_SECTORS
31 31
32config SPI_FSL_QUADSPI 32config SPI_FSL_QUADSPI
33 tristate "Freescale Quad SPI controller" 33 tristate "Freescale Quad SPI controller"
34 depends on ARCH_MXC || COMPILE_TEST 34 depends on ARCH_MXC || SOC_LS1021A || COMPILE_TEST
35 depends on HAS_IOMEM 35 depends on HAS_IOMEM
36 help 36 help
37 This enables support for the Quad SPI controller in master mode. 37 This enables support for the Quad SPI controller in master mode.
diff --git a/drivers/mtd/spi-nor/fsl-quadspi.c b/drivers/mtd/spi-nor/fsl-quadspi.c
index 04e8a93e1a3a..9ab2b51d54b8 100644
--- a/drivers/mtd/spi-nor/fsl-quadspi.c
+++ b/drivers/mtd/spi-nor/fsl-quadspi.c
@@ -213,6 +213,7 @@ enum fsl_qspi_devtype {
213 FSL_QUADSPI_IMX6SX, 213 FSL_QUADSPI_IMX6SX,
214 FSL_QUADSPI_IMX7D, 214 FSL_QUADSPI_IMX7D,
215 FSL_QUADSPI_IMX6UL, 215 FSL_QUADSPI_IMX6UL,
216 FSL_QUADSPI_LS1021A,
216}; 217};
217 218
218struct fsl_qspi_devtype_data { 219struct fsl_qspi_devtype_data {
@@ -258,6 +259,14 @@ static struct fsl_qspi_devtype_data imx6ul_data = {
258 | QUADSPI_QUIRK_4X_INT_CLK, 259 | QUADSPI_QUIRK_4X_INT_CLK,
259}; 260};
260 261
262static struct fsl_qspi_devtype_data ls1021a_data = {
263 .devtype = FSL_QUADSPI_LS1021A,
264 .rxfifo = 128,
265 .txfifo = 64,
266 .ahb_buf_size = 1024,
267 .driver_data = 0,
268};
269
261#define FSL_QSPI_MAX_CHIP 4 270#define FSL_QSPI_MAX_CHIP 4
262struct fsl_qspi { 271struct fsl_qspi {
263 struct spi_nor nor[FSL_QSPI_MAX_CHIP]; 272 struct spi_nor nor[FSL_QSPI_MAX_CHIP];
@@ -812,6 +821,7 @@ static const struct of_device_id fsl_qspi_dt_ids[] = {
812 { .compatible = "fsl,imx6sx-qspi", .data = (void *)&imx6sx_data, }, 821 { .compatible = "fsl,imx6sx-qspi", .data = (void *)&imx6sx_data, },
813 { .compatible = "fsl,imx7d-qspi", .data = (void *)&imx7d_data, }, 822 { .compatible = "fsl,imx7d-qspi", .data = (void *)&imx7d_data, },
814 { .compatible = "fsl,imx6ul-qspi", .data = (void *)&imx6ul_data, }, 823 { .compatible = "fsl,imx6ul-qspi", .data = (void *)&imx6ul_data, },
824 { .compatible = "fsl,ls1021a-qspi", .data = (void *)&ls1021a_data, },
815 { /* sentinel */ } 825 { /* sentinel */ }
816}; 826};
817MODULE_DEVICE_TABLE(of, fsl_qspi_dt_ids); 827MODULE_DEVICE_TABLE(of, fsl_qspi_dt_ids);