[PATCH v8 0/3] mtd: spi-nand: Add support for randomizer feature

Cheng Ming Lin posted 3 patches 1 month ago
.../devicetree/bindings/mtd/nand-chip.yaml    | 18 +++++++++
drivers/mtd/nand/spi/core.c                   | 27 +++++++++++++
drivers/mtd/nand/spi/macronix.c               | 38 ++++++++++++++-----
include/linux/mtd/spinand.h                   |  9 +++++
4 files changed, 82 insertions(+), 10 deletions(-)
[PATCH v8 0/3] mtd: spi-nand: Add support for randomizer feature
Posted by Cheng Ming Lin 1 month ago
From: Cheng Ming Lin <chengminglin@mxic.com.tw>

This patch series introduces randomizer support for SPI NAND devices.

- Patch 1: add the nand-randomizer-enable and nand-randomizer-disable
           boolean properties to the generic nand-chip.yaml bindings.
- Patch 2: add the initialization logic and the set_randomizer callback
           to the core framework. The core will now parse the device tree
           properties and enable or disable the randomizer accordingly
           during spinand_init.
- Patch 3: implement the set_randomizer callback specifically for Macronix
           chips (MX35LF/UF series) to handle the vendor-specific register
           operations.

v8:
* dt-bindings: spi-nand: macronix: Remove the chip-specific Application
  Note link from the commit message to keep the binding generic.
* mtd: spi-nand: macronix: Update the broken Application Note link and
  move it here from the dt-binding patch per Miquel's suggestion.

v7:
* Directly return the result in macronix_set_randomizer()

v6:
* Added mutual-exclusive constraints using not with required for
  nand-randomizer-enable and nand-randomizer-disable properties based
  on Krzysztof's feedback.
* Simplified the return path in macronix_set_randomizer() to directly
  return ret; and dropped unrelated formatting changes.

v5:
* Promoted the randomizer configuration to use generic NAND properties
  (nand-randomizer-enable and nand-randomizer-disable) instead of
  vendor-specific bindings.
* Refactored the initialization architecture in core.c. The core framework
  is now responsible for parsing the device tree properties and deciding
  whether to enable or disable the randomizer.

v4:
* Fix a build error in spinand_randomizer_init() where a value was
  returned from a void function. (Reported by kernel test robot)
* Update the return type to int.

v3:
* Revert the device tree property to the vendor-specific
  "mxic,randomizer-enable" to strictly follow vendor-specific bindings.

* Update the 'set_randomizer' callback signature to accept a boolean
  'enable' argument, allowing the feature to be explicitly enabled or
  disabled.

* Switch the implementation to use the standard SET_FEATURE command
  to modify the Configuration Register (0x10), replacing the previous
  special program command method.

v2:
* Create a global NAND DT property

Cheng Ming Lin (3):
  dt-bindings: mtd: spinand: Add randomizer enable/disable properties
  mtd: spi-nand: Add support for randomizer
  mtd: spi-nand: macronix: Enable randomizer support

 .../devicetree/bindings/mtd/nand-chip.yaml    | 18 +++++++++
 drivers/mtd/nand/spi/core.c                   | 27 +++++++++++++
 drivers/mtd/nand/spi/macronix.c               | 38 ++++++++++++++-----
 include/linux/mtd/spinand.h                   |  9 +++++
 4 files changed, 82 insertions(+), 10 deletions(-)

-- 
2.25.1
Re: [PATCH v8 0/3] mtd: spi-nand: Add support for randomizer feature
Posted by Miquel Raynal 3 weeks, 6 days ago
Hello Cheng Ming,

On 05/03/2026 at 15:10:39 +08, Cheng Ming Lin <linchengming884@gmail.com> wrote:

> From: Cheng Ming Lin <chengminglin@mxic.com.tw>
>
> This patch series introduces randomizer support for SPI NAND devices.
>
> - Patch 1: add the nand-randomizer-enable and nand-randomizer-disable
>            boolean properties to the generic nand-chip.yaml bindings.
> - Patch 2: add the initialization logic and the set_randomizer callback
>            to the core framework. The core will now parse the device tree
>            properties and enable or disable the randomizer accordingly
>            during spinand_init.
> - Patch 3: implement the set_randomizer callback specifically for Macronix
>            chips (MX35LF/UF series) to handle the vendor-specific register
>            operations.

MTD part LGTM. Let's see if the dt-binding are ok, they look fine.

Thanks,
Miquèl