[PATCH v9 0/2] Add support for nuvoton ma35 nand controller

Hui-Ping Chen
2024-11-25T05:26:44Z

This patch series adds the mtd nand driver for the nuvoton ma35 ARMv8 SoC.
It includes DT binding documentation and the ma35 mtd nand driver.

v9:
- Update ma35d1 mtd nand driver
- Remove NAND_NO_SUBPAGE_WRITE flag.
- Remove of_get_property().
- Add ecc.write_subpage and ecc.read_subpage.

v8:
- Update ma35d1 mtd nand driver
- Rename to nuvoton-ma35d1-nand-controller.c.
- Use switch case instead of if else.
- Move some parameters to be set during initialization.
- Fix the ecc.read_page return value issue.
- Add enable/disable ECC engine before and after reading/writing the page.
- Return IRQ_NONE if (isr & INT_DMA) == 0.
- Move the HW ECC related settings to ON_HOST.
- Move hw_init() to probe.

v7:
- Update nuvoton,ma35d1-nand.yaml
- Remove required 'nand-ecc-step-size' and 'nand-ecc-strength'.
- Add 'reg' for chip select.
- Update ma35d1 mtd nand driver
- Update space and comments style.
- Add chip select setting from DT.
- Add switch case which supports various ECC configurations.
- Set reset before NAND controller enable.

v6:
- Update ma35d1 mtd nand driver
- Remove extra blank lines and add comments.

v5:
- Update ma35d1 mtd nand driver
- Remove unnecessary definitions and comments.
- Modified DMA API call sequence.
- Move the ECC check out of the interrupt handler.
Check it after reading a page.

v4:
- Update nuvoton,ma35d1-nand.yaml
- rename 'nuvoton,ma35d1-nand' to 'nuvoton,ma35d1-nand-controller'.
- Update ma35d1 mtd nand driver
- Rewrite the NAND driver using the exec_op API.

v3:
- Update ma35d1 mtd nand driver
- Release IRQ handler.
- Remove unused functions.
- Remove '.owner'.

v2:
- Update nuvoton,ma35d1-nand.yaml
- Adjust the order and remove any unnecessary items.
- Add 'nand-ecc-step-size' and 'nand-ecc-strength' to the required list.
- Update ma35d1 mtd nand driver
- Fix coding style.
- Use 'devm_clk_get' instead of 'of_clk_get'.
- Use 'dev_err_probe' instead of 'dev_err'.
- Remove 'pr_info' and 'of_match_ptr'.
- Remove 'module_init' and 'module_exit'.

Hui-Ping Chen (2):
dt-bindings: mtd: nuvoton,ma35d1-nand: add new bindings
mtd: rawnand: nuvoton: add new driver for the Nuvoton MA35 SoC

.../bindings/mtd/nuvoton,ma35d1-nand.yaml | 95 ++
drivers/mtd/nand/raw/Kconfig | 8 +
drivers/mtd/nand/raw/Makefile | 1 +
.../nand/raw/nuvoton-ma35d1-nand-controller.c | 1024 +++++++++++++++++
4 files changed, 1128 insertions(+)
create mode 100644 Documentation/devicetree/bindings/mtd/nuvoton,ma35d1-nand.yaml
create mode 100644 drivers/mtd/nand/raw/nuvoton-ma35d1-nand-controller.c