mbox series

[v10,0/2] Add support for nuvoton ma35 nand controller

Message ID 20241204025129.150525-1-hpchen0nvt@gmail.com (mailing list archive)
Headers show
Series Add support for nuvoton ma35 nand controller | expand

Message

Hui-Ping Chen Dec. 4, 2024, 2:51 a.m. UTC
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.

v10:
  - Update ma35d1 mtd nand driver
    - Add unsupported write page handling.

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 | 1032 +++++++++++++++++
 4 files changed, 1136 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/mtd/nuvoton,ma35d1-nand.yaml
 create mode 100644 drivers/mtd/nand/raw/nuvoton-ma35d1-nand-controller.c

Comments

Miquel Raynal Dec. 5, 2024, 10:26 a.m. UTC | #1
Hi,

On 04/12/2024 at 02:51:27 GMT, Hui-Ping Chen <hpchen0nvt@gmail.com> wrote:

> 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.
>
> v10:
>   - Update ma35d1 mtd nand driver
>     - Add unsupported write page handling.

I was about to apply it but...

    [31m●[0m checkpatch.pl: 117: WARNING: please write a help paragraph that fully describes the config symbol
    [31m●[0m checkpatch.pl: 141: WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
    [31m●[0m checkpatch.pl: 348: CHECK: spaces preferred around that '+' (ctx:VxV)
    [31m●[0m checkpatch.pl: 352: CHECK: spaces preferred around that '+' (ctx:VxV)
    [31m●[0m checkpatch.pl: 352: CHECK: spaces preferred around that '+' (ctx:VxV)
    [31m●[0m checkpatch.pl: 429: CHECK: Alignment should match open parenthesis
    [31m●[0m checkpatch.pl: 465: CHECK: spaces preferred around that '*' (ctx:VxV)
    [31m●[0m checkpatch.pl: 465: CHECK: spaces preferred around that '+' (ctx:VxV)
    [31m●[0m checkpatch.pl: 466: CHECK: spaces preferred around that '*' (ctx:VxV)
    [31m●[0m checkpatch.pl: 466: CHECK: spaces preferred around that '+' (ctx:VxV)
    [31m●[0m checkpatch.pl: 467: CHECK: spaces preferred around that '*' (ctx:VxV)
    [31m●[0m checkpatch.pl: 467: CHECK: spaces preferred around that '+' (ctx:VxV)
    [31m●[0m checkpatch.pl: 468: CHECK: spaces preferred around that '*' (ctx:VxV)
    [31m●[0m checkpatch.pl: 468: CHECK: spaces preferred around that '+' (ctx:VxV)
    [31m●[0m checkpatch.pl: 479: CHECK: spaces preferred around that '*' (ctx:VxV)
    [31m●[0m checkpatch.pl: 479: CHECK: spaces preferred around that '+' (ctx:VxV)
    [31m●[0m checkpatch.pl: 481: CHECK: spaces preferred around that '*' (ctx:VxV)
    [31m●[0m checkpatch.pl: 481: CHECK: spaces preferred around that '+' (ctx:VxV)
    [31m●[0m checkpatch.pl: 514: CHECK: Unbalanced braces around else statement
    [31m●[0m checkpatch.pl: 611: CHECK: Alignment should match open parenthesis
    [31m●[0m checkpatch.pl: 650: CHECK: Alignment should match open parenthesis
    [31m●[0m checkpatch.pl: 665: CHECK: Alignment should match open parenthesis
    [31m●[0m checkpatch.pl: 675: CHECK: Alignment should match open parenthesis
    [31m●[0m checkpatch.pl: 689: CHECK: Alignment should match open parenthesis
    [31m●[0m checkpatch.pl: 699: CHECK: Alignment should match open parenthesis
    [31m●[0m checkpatch.pl: 715: CHECK: Alignment should match open parenthesis
    [31m●[0m checkpatch.pl: 756: CHECK: Alignment should match open parenthesis
    [31m●[0m checkpatch.pl: 805: CHECK: Alignment should match open parenthesis
    [31m●[0m checkpatch.pl: 935: CHECK: Alignment should match open parenthesis
    [31m●[0m checkpatch.pl: 950: CHECK: Alignment should match open parenthesis
    [31m●[0m checkpatch.pl: 953: CHECK: Alignment should match open parenthesis
    [31m●[0m checkpatch.pl: 975: CHECK: Alignment should match open parenthesis
    [31m●[0m checkpatch.pl: 1001: CHECK: Alignment should match open parenthesis
    [31m●[0m checkpatch.pl: 1018: CHECK: Alignment should match open parenthesis
    [31m●[0m checkpatch.pl: 1131: CHECK: Alignment should match open parenthesis
    [31m●[0m checkpatch.pl: 1159: WARNING: DT compatible string "nuvoton,ma35d1-nand" appears un-documented -- check ./Documentation/devicetree/bindings/

Please fix these warnings and checks.

You might want to use --strict by default.

Thanks,
Miquèl
Hui-Ping Chen Dec. 6, 2024, 1:43 a.m. UTC | #2
Dear Miquel,

Thank you for your reply.


On 2024/12/5 下午 06:26, Miquel Raynal wrote:
> Hi,
>
> On 04/12/2024 at 02:51:27 GMT, Hui-Ping Chen <hpchen0nvt@gmail.com> wrote:
>
>> 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.
>>
>> v10:
>>    - Update ma35d1 mtd nand driver
>>      - Add unsupported write page handling.
> I was about to apply it but...
>
>      [31m●[0m checkpatch.pl: 117: WARNING: please write a help paragraph that fully describes the config symbol
>      [31m●[0m checkpatch.pl: 141: WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
>      [31m●[0m checkpatch.pl: 348: CHECK: spaces preferred around that '+' (ctx:VxV)
>      [31m●[0m checkpatch.pl: 352: CHECK: spaces preferred around that '+' (ctx:VxV)
>      [31m●[0m checkpatch.pl: 352: CHECK: spaces preferred around that '+' (ctx:VxV)
>      [31m●[0m checkpatch.pl: 429: CHECK: Alignment should match open parenthesis
>      [31m●[0m checkpatch.pl: 465: CHECK: spaces preferred around that '*' (ctx:VxV)
>      [31m●[0m checkpatch.pl: 465: CHECK: spaces preferred around that '+' (ctx:VxV)
>      [31m●[0m checkpatch.pl: 466: CHECK: spaces preferred around that '*' (ctx:VxV)
>      [31m●[0m checkpatch.pl: 466: CHECK: spaces preferred around that '+' (ctx:VxV)
>      [31m●[0m checkpatch.pl: 467: CHECK: spaces preferred around that '*' (ctx:VxV)
>      [31m●[0m checkpatch.pl: 467: CHECK: spaces preferred around that '+' (ctx:VxV)
>      [31m●[0m checkpatch.pl: 468: CHECK: spaces preferred around that '*' (ctx:VxV)
>      [31m●[0m checkpatch.pl: 468: CHECK: spaces preferred around that '+' (ctx:VxV)
>      [31m●[0m checkpatch.pl: 479: CHECK: spaces preferred around that '*' (ctx:VxV)
>      [31m●[0m checkpatch.pl: 479: CHECK: spaces preferred around that '+' (ctx:VxV)
>      [31m●[0m checkpatch.pl: 481: CHECK: spaces preferred around that '*' (ctx:VxV)
>      [31m●[0m checkpatch.pl: 481: CHECK: spaces preferred around that '+' (ctx:VxV)
>      [31m●[0m checkpatch.pl: 514: CHECK: Unbalanced braces around else statement
>      [31m●[0m checkpatch.pl: 611: CHECK: Alignment should match open parenthesis
>      [31m●[0m checkpatch.pl: 650: CHECK: Alignment should match open parenthesis
>      [31m●[0m checkpatch.pl: 665: CHECK: Alignment should match open parenthesis
>      [31m●[0m checkpatch.pl: 675: CHECK: Alignment should match open parenthesis
>      [31m●[0m checkpatch.pl: 689: CHECK: Alignment should match open parenthesis
>      [31m●[0m checkpatch.pl: 699: CHECK: Alignment should match open parenthesis
>      [31m●[0m checkpatch.pl: 715: CHECK: Alignment should match open parenthesis
>      [31m●[0m checkpatch.pl: 756: CHECK: Alignment should match open parenthesis
>      [31m●[0m checkpatch.pl: 805: CHECK: Alignment should match open parenthesis
>      [31m●[0m checkpatch.pl: 935: CHECK: Alignment should match open parenthesis
>      [31m●[0m checkpatch.pl: 950: CHECK: Alignment should match open parenthesis
>      [31m●[0m checkpatch.pl: 953: CHECK: Alignment should match open parenthesis
>      [31m●[0m checkpatch.pl: 975: CHECK: Alignment should match open parenthesis
>      [31m●[0m checkpatch.pl: 1001: CHECK: Alignment should match open parenthesis
>      [31m●[0m checkpatch.pl: 1018: CHECK: Alignment should match open parenthesis
>      [31m●[0m checkpatch.pl: 1131: CHECK: Alignment should match open parenthesis
>      [31m●[0m checkpatch.pl: 1159: WARNING: DT compatible string "nuvoton,ma35d1-nand" appears un-documented -- check ./Documentation/devicetree/bindings/
>
> Please fix these warnings and checks.
>
> You might want to use --strict by default.

I will fix it.


>
> Thanks,
> Miquèl


Best regards,

Hui-Ping Chen