Hi Frieder, These patch series also depends on the patches [1][2] for the controller which can't write nor->page_size bytes in single write command step. Thus, have to invoke Write sequence again and before sending WRITE command, need to send WREN command. [1] https://patchwork.ozlabs.org/patch/928677/ [2] https://patchwork.ozlabs.org/patch/928678/ -- Regards Yogesh Gaur. > -----Original Message----- > From: Frieder Schrempf [mailto:frieder.schrempf at exceet.de] > Sent: Thursday, July 5, 2018 4:45 PM > To: linux-mtd at lists.infradead.org; boris.brezillon at bootlin.com; linux- > spi at vger.kernel.org > Cc: dwmw2 at infradead.org; computersforpeace at gmail.com; > marek.vasut at gmail.com; richard at nod.at; miquel.raynal at bootlin.com; > broonie at kernel.org; David Wolfe <david.wolfe at nxp.com>; Fabio Estevam > <fabio.estevam at nxp.com>; Prabhakar Kushwaha > <prabhakar.kushwaha at nxp.com>; Yogesh Narayan Gaur > <yogeshnarayan.gaur at nxp.com>; Han Xu <han.xu at nxp.com>; > shawnguo at kernel.org; Frieder Schrempf <frieder.schrempf at exceet.de> > Subject: [PATCH v2 00/12] Port the FSL QSPI driver to the SPI framework > > Now that the SPI memory interface was introduced by Boris [1], it is possible to > move drivers from mtd/spi-nor to the SPI framework in order to use them for > different type of SPI memory chips. > > Patch 1 adds a function spi_mem_get_name() to the SPI memory interface and a > ->name field to struct spi_mem. > Patch 2 uses it in m25p80.c to make it possible for SPI controller drivers to > provide a custom naming scheme for the flash chip. > This is needed to avoid breaking compatibility of mtdparts when switching from > the old to the new driver. > > Patch 3 adds a driver for the Freescale QSPI controller to the SPI framework. > Together with m25p80.c it can be used to interface SPI NOR flashes just as the > old driver did. For this to work properly a few minor changes to the devicetrees > are necessary (see patches 5 to 7). > > Patch 8 changes the defconfigs to use the new driver and patch 9 removes the > old driver. > > Patch 10 and 11 remove 'fsl,qspi-has-second-chip' from the devicetrees. > Patch 12 adjusts the MAINTAINERS file. > > The new driver was tested with i.MX6UL and a Micron SPI NOR @ 60MHz. > The read performance of the new driver is almost the same or even better than > the old driver, depending on the block size. > The write performance is a bit slower on average (~10-15%). > > The new driver was also tested with the SPI NAND framework [2] and a Winbond > W25M02GV flash. > > If someone has a board that uses both chips selects and/or both busses, it would > be really nice to have the driver be tested on such a setup. > > [1] > https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.ker > nel.org%2Fpub%2Fscm%2Flinux%2Fkernel%2Fgit%2Fbroonie%2Fspi.git%2Fcom > mit%2F%3Fh%3Dfor- > 4.18%26id%3Dc36ff266dc82f4ae797a6f3513c6ffa344f7f1c7&data=02%7C01%7 > Cyogeshnarayan.gaur%40nxp.com%7C77846565197d44d7413008d5e268ccb2% > 7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0%7C0%7C636663862101876439& > sdata=Y8dyVYysfK3Q6vDXUMEBs%2BBygMxh9qM%2ByWdtk9hGyQU%3D&rese > rved=0 > [2] > https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpatch > work.ozlabs.org%2Fcover%2F913728%2F&data=02%7C01%7Cyogeshnarayan.g > aur%40nxp.com%7C77846565197d44d7413008d5e268ccb2%7C686ea1d3bc2b4 > c6fa92cd99c5c301635%7C0%7C0%7C636663862101876439&sdata=VUE5kVY7V > DW0a3PKmQvsUC9TyHZUhhntgM1SJC3EUWU%3D&reserved=0 > > Changes in v2: > ============== > * Rebase on top of nand/next > * Add a name field to struct spi_mem and fill it while probing > * Add Yogesh Gaur and Suresh Gupta as authors > * Use GENMASK() for generating bitmasks > * Use callback functions for read/write of registers > * Attach the seq variable to the selected CS > * Avoid using conditional in read/write loop > * Avoid infinite loop and use a timeout instead > * Return error pointer when allocation in fsl_qspi_get_name() fails > * Remove redundant iounmap() > * Put suspend()/resume() in struct dev_pm_ops instead of struct platform_driver > * Split the moving and editing of the dt-bindings in two patches > > Frieder Schrempf (12): > spi: spi-mem: Extend the SPI mem interface to set a custom memory name > mtd: m25p80: Call spi_mem_get_name() to let controller set a custom > name > spi: Add a driver for the Freescale/NXP QuadSPI controller > dt-bindings: spi: Move the bindings for the FSL QSPI driver > dt-bindings: spi: Adjust the bindings for the FSL QSPI driver > ARM: dts: Reflect change of FSL QSPI driver and remove unused > properties > arm64: dts: Reflect change of FSL QSPI driver and remove unused > properties > ARM: defconfig: Use the new FSL QSPI driver under the SPI framework > mtd: fsl-quadspi: Remove the driver as it was replaced by > spi-fsl-qspi.c > ARM: dts: ls1021a: Remove fsl,qspi-has-second-chip as it is not used > ARM64: dts: ls1046a: Remove fsl,qspi-has-second-chip as it is not used > MAINTAINERS: Move the Freescale QSPI driver to the SPI framework > > .../devicetree/bindings/mtd/fsl-quadspi.txt | 65 - > .../devicetree/bindings/spi/spi-fsl-qspi.txt | 65 + > MAINTAINERS | 4 +- > arch/arm/boot/dts/imx6sx-sdb-reva.dts | 8 +- > arch/arm/boot/dts/imx6sx-sdb.dts | 8 +- > arch/arm/boot/dts/imx6ul-14x14-evk.dtsi | 2 + > arch/arm/boot/dts/ls1021a-moxa-uc-8410a.dts | 6 +- > arch/arm/configs/imx_v6_v7_defconfig | 2 +- > arch/arm/configs/multi_v7_defconfig | 2 +- > .../boot/dts/freescale/fsl-ls1043a-qds.dts | 3 +- > .../boot/dts/freescale/fsl-ls1046a-qds.dts | 4 +- > .../boot/dts/freescale/fsl-ls1046a-rdb.dts | 6 +- > arch/arm64/boot/dts/freescale/fsl-ls1046a.dtsi | 1 - > .../boot/dts/freescale/fsl-ls208xa-qds.dtsi | 4 + > drivers/mtd/devices/m25p80.c | 3 +- > drivers/mtd/spi-nor/Kconfig | 9 - > drivers/mtd/spi-nor/Makefile | 1 - > drivers/mtd/spi-nor/fsl-quadspi.c | 1217 ------------------ > drivers/spi/Kconfig | 11 + > drivers/spi/Makefile | 1 + > drivers/spi/spi-fsl-qspi.c | 954 ++++++++++++++ > drivers/spi/spi-mem.c | 30 + > include/linux/spi/spi-mem.h | 7 +- > 23 files changed, 1100 insertions(+), 1313 deletions(-) delete mode 100644 > Documentation/devicetree/bindings/mtd/fsl-quadspi.txt > create mode 100644 Documentation/devicetree/bindings/spi/spi-fsl-qspi.txt > delete mode 100644 drivers/mtd/spi-nor/fsl-quadspi.c create mode 100644 > drivers/spi/spi-fsl-qspi.c > > -- > 2.7.4