[PATCH v6 0/8] Add QPIC SPI NAND driver

From: Md Sadre Alam
Date: Tue May 21 2024 - 06:56:19 EST


v6:
* Added FIELD_PREP() and GENMASK() macro
* Added qpic_spi_nand{..} structure for
spi nand realted variables
* Made qpic_common.c slectable based on
either CONFIG_MTD_NAND_QCOM or CONFIG_SPI_QPIC_SNAND
* Removed rawnand.h from qpic-common.h
* Removed partitions.h and rawnand.h form spi-qpic-snand.c
* Added qcom_nand_unalloc() in remove()

v5:
* Fixes nandbiterr issue
* Added raw_read() and raw_write() API
* Added qcom_ prefix to all the common API
* Removed register indirection
* Following tests for SPI-NAND devices passed

- mtd_oobtest
- mtd_pagetest
- mtd_readtest
- mtd_speedtest
- mtd_stresstest
- mtd_subpagetest
- mtd_nandbiterrs
- nandtest
- nanddump
- nandwrite
- nandbiterr -i
- mtd erase
- mtd write
- dd
- hexddump

v4:
* In this patch series fixes kernel doc for all the cmmon api
* Also fixes dm-binding commit message
* Fix qpic_common.c compilation based on config

v3:
* In this patch series fixes multiple things like
added clock-name, added _alloc_controller api instead
of alloc_master, made common apis more generic etc.

* Addressed all the comment from v2 patch series

v2:
* https://lore.kernel.org/linux-arm-msm/20240215134856.1313239-1-quic_mdalam@xxxxxxxxxxx/
* In this series of patchs we have added basic working QPIC SPI NAND
driver with READ, WRITE, ERASE etc functionality

* Addressed all the comments given in RFC [v1] patch

v1:
* https://lore.kernel.org/linux-arm-msm/20231031120307.1600689-1-quic_mdalam@xxxxxxxxxxx/
* Initial set of patches for handling QPIC SPI NAND.


Md Sadre Alam (8):
spi: dt-bindings: Introduce qcom,spi-qpic-snand
mtd: rawnand: qcom: cleanup qcom_nandc driver
mtd: rawnand: qcom: Add qcom prefix to common api
drivers: mtd: nand: Add qpic_common API file
drivers: mtd: nand: use FIELD_PREP and GENMASK
spi: spi-qpic: add driver for QCOM SPI NAND flash Interface
arm64: dts: qcom: ipq9574: Add SPI nand support
arm64: dts: qcom: ipq9574: Disable eMMC node

.../bindings/spi/qcom,spi-qpic-snand.yaml | 83 +
.../boot/dts/qcom/ipq9574-rdp-common.dtsi | 43 +
arch/arm64/boot/dts/qcom/ipq9574-rdp433.dts | 2 +-
arch/arm64/boot/dts/qcom/ipq9574.dtsi | 27 +
drivers/mtd/nand/Makefile | 8 +-
drivers/mtd/nand/qpic_common.c | 740 +++++++
drivers/mtd/nand/raw/qcom_nandc.c | 1708 +++--------------
drivers/spi/Kconfig | 8 +
drivers/spi/Makefile | 1 +
drivers/spi/spi-qpic-snand.c | 1499 +++++++++++++++
include/linux/mtd/nand-qpic-common.h | 480 +++++
11 files changed, 3180 insertions(+), 1419 deletions(-)
create mode 100644 Documentation/devicetree/bindings/spi/qcom,spi-qpic-snand.yaml
create mode 100644 drivers/mtd/nand/qpic_common.c
create mode 100644 drivers/spi/spi-qpic-snand.c
create mode 100644 include/linux/mtd/nand-qpic-common.h

--
2.34.1