diff options
author | Yao Yuan <yao.yuan@freescale.com> | 2016-01-26 02:23:56 -0500 |
---|---|---|
committer | Brian Norris <computersforpeace@gmail.com> | 2016-03-07 14:46:44 -0500 |
commit | e8c034b2fbe57f56c3902187f844f41d295b5159 (patch) | |
tree | 5949486a8eddaf71dd0082753772b2968143db3e | |
parent | 2012850be8e3324bf3420ea08e1d0ee75c8d134c (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/Kconfig | 2 | ||||
-rw-r--r-- | drivers/mtd/spi-nor/fsl-quadspi.c | 10 |
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 | ||
32 | config SPI_FSL_QUADSPI | 32 | config 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 | ||
218 | struct fsl_qspi_devtype_data { | 219 | struct 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 | ||
262 | static 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 |
262 | struct fsl_qspi { | 271 | struct 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 | }; |
817 | MODULE_DEVICE_TABLE(of, fsl_qspi_dt_ids); | 827 | MODULE_DEVICE_TABLE(of, fsl_qspi_dt_ids); |