linux-spi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Richard Weinberger <richard@nod.at>,
	Vignesh Raghavendra <vigneshr@ti.com>,
	Tudor Ambarus <Tudor.Ambarus@microchip.com>,
	Pratyush Yadav <p.yadav@ti.com>, Michael Walle <michael@walle.cc>,
	<linux-mtd@lists.infradead.org>
Cc: Rob Herring <robh+dt@kernel.org>, <devicetree@vger.kernel.org>,
	Mark Brown <broonie@kernel.org>, <linux-spi@vger.kernel.org>,
	Xiangsheng Hou <Xiangsheng.Hou@mediatek.com>,
	Julien Su <juliensu@mxic.com.tw>,
	Jaime Liao <jaimeliao@mxic.com.tw>,
	Boris Brezillon <bbrezillon@kernel.org>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	Miquel Raynal <miquel.raynal@bootlin.com>
Subject: [PATCH v2 03/20] dt-bindings: mtd: nand-chip: Create a NAND chip description
Date: Fri, 26 Nov 2021 12:39:07 +0100	[thread overview]
Message-ID: <20211126113924.310459-4-miquel.raynal@bootlin.com> (raw)
In-Reply-To: <20211126113924.310459-1-miquel.raynal@bootlin.com>

Move the NAND chip description out of the NAND controller file. Indeed,
a subsequent part of the properties supported by a raw NAND chip are
also supported by SPI-NAND chips. So let's create a generic NAND chip
description which will be pulled by nand-controller.yaml and later by
spi-nand.yaml as well.

Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
---
 .../devicetree/bindings/mtd/nand-chip.yaml    | 71 +++++++++++++++++++
 .../bindings/mtd/nand-controller.yaml         | 53 ++------------
 2 files changed, 75 insertions(+), 49 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/mtd/nand-chip.yaml

diff --git a/Documentation/devicetree/bindings/mtd/nand-chip.yaml b/Documentation/devicetree/bindings/mtd/nand-chip.yaml
new file mode 100644
index 000000000000..6d13e8cdbb21
--- /dev/null
+++ b/Documentation/devicetree/bindings/mtd/nand-chip.yaml
@@ -0,0 +1,71 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mtd/nand-chip.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: NAND Chip and NAND Controller Generic Binding
+
+maintainers:
+  - Miquel Raynal <miquel.raynal@bootlin.com>
+
+description: |
+  This file covers the generic description of a NAND chip. It implies that the
+  bus interface should not be taken into account: both raw NAND devices and
+  SPI-NAND devices are concerned by this description.
+
+properties:
+  reg:
+    description:
+      Contains the chip-select IDs.
+
+  nand-ecc-engine:
+    allOf:
+      - $ref: /schemas/types.yaml#/definitions/phandle
+    description: |
+      A phandle on the hardware ECC engine if any. There are
+      basically three possibilities:
+      1/ The ECC engine is part of the NAND controller, in this
+      case the phandle should reference the parent node.
+      2/ The ECC engine is part of the NAND part (on-die), in this
+      case the phandle should reference the node itself.
+      3/ The ECC engine is external, in this case the phandle should
+      reference the specific ECC engine node.
+
+  nand-use-soft-ecc-engine:
+    type: boolean
+    description: Use a software ECC engine.
+
+  nand-no-ecc-engine:
+    type: boolean
+    description: Do not use any ECC correction.
+
+  nand-ecc-algo:
+    description:
+      Desired ECC algorithm.
+    $ref: /schemas/types.yaml#/definitions/string
+    enum: [hamming, bch, rs]
+
+  nand-ecc-strength:
+    description:
+      Maximum number of bits that can be corrected per ECC step.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 1
+
+  nand-ecc-step-size:
+    description:
+      Number of data bytes covered by a single ECC step.
+    $ref: /schemas/types.yaml#/definitions/uint32
+    minimum: 1
+
+  secure-regions:
+    $ref: /schemas/types.yaml#/definitions/uint64-matrix
+    description:
+      Regions in the NAND chip which are protected using a secure element
+      like Trustzone. This property contains the start address and size of
+      the secure regions present.
+
+required:
+  - reg
+
+additionalProperties: true
diff --git a/Documentation/devicetree/bindings/mtd/nand-controller.yaml b/Documentation/devicetree/bindings/mtd/nand-controller.yaml
index 5cd144a9ec99..44825dc95412 100644
--- a/Documentation/devicetree/bindings/mtd/nand-controller.yaml
+++ b/Documentation/devicetree/bindings/mtd/nand-controller.yaml
@@ -52,32 +52,15 @@ properties:
 patternProperties:
   "^nand@[a-f0-9]$":
     type: object
+
+    allOf:
+      - $ref: "nand-chip.yaml#"
+
     properties:
       reg:
         description:
           Contains the chip-select IDs.
 
-      nand-ecc-engine:
-        allOf:
-          - $ref: /schemas/types.yaml#/definitions/phandle
-        description: |
-          A phandle on the hardware ECC engine if any. There are
-          basically three possibilities:
-          1/ The ECC engine is part of the NAND controller, in this
-          case the phandle should reference the parent node.
-          2/ The ECC engine is part of the NAND part (on-die), in this
-          case the phandle should reference the node itself.
-          3/ The ECC engine is external, in this case the phandle should
-          reference the specific ECC engine node.
-
-      nand-use-soft-ecc-engine:
-        type: boolean
-        description: Use a software ECC engine.
-
-      nand-no-ecc-engine:
-        type: boolean
-        description: Do not use any ECC correction.
-
       nand-ecc-placement:
         allOf:
           - $ref: /schemas/types.yaml#/definitions/string
@@ -88,12 +71,6 @@ patternProperties:
           known to be stored in the OOB area, or "interleaved" if ECC
           bytes will be interleaved with regular data in the main area.
 
-      nand-ecc-algo:
-        description:
-          Desired ECC algorithm.
-        $ref: /schemas/types.yaml#/definitions/string
-        enum: [hamming, bch, rs]
-
       nand-bus-width:
         description:
           Bus width to the NAND chip
@@ -112,18 +89,6 @@ patternProperties:
           find Bad Block Markers (BBM). These markers will help to
           build a volatile BBT in RAM.
 
-      nand-ecc-strength:
-        description:
-          Maximum number of bits that can be corrected per ECC step.
-        $ref: /schemas/types.yaml#/definitions/uint32
-        minimum: 1
-
-      nand-ecc-step-size:
-        description:
-          Number of data bytes covered by a single ECC step.
-        $ref: /schemas/types.yaml#/definitions/uint32
-        minimum: 1
-
       nand-ecc-maximize:
         $ref: /schemas/types.yaml#/definitions/flag
         description:
@@ -154,13 +119,6 @@ patternProperties:
           Ready/Busy pins. Active state refers to the NAND ready state and
           should be set to GPIOD_ACTIVE_HIGH unless the signal is inverted.
 
-      secure-regions:
-        $ref: /schemas/types.yaml#/definitions/uint64-matrix
-        description:
-          Regions in the NAND chip which are protected using a secure element
-          like Trustzone. This property contains the start address and size of
-          the secure regions present.
-
     required:
       - reg
 
@@ -181,9 +139,6 @@ examples:
 
       nand@0 {
         reg = <0>; /* Native CS */
-        nand-use-soft-ecc-engine;
-        nand-ecc-algo = "bch";
-
         /* NAND chip specific properties */
       };
 
-- 
2.27.0


  parent reply	other threads:[~2021-11-26 11:55 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-26 11:39 [PATCH v2 00/20] External ECC engines & Macronix support Miquel Raynal
2021-11-26 11:39 ` [PATCH v2 01/20] dt-bindings: mtd: nand-controller: Fix the reg property description Miquel Raynal
2021-11-26 11:39 ` [PATCH v2 02/20] dt-bindings: mtd: nand-controller: Fix a comment in the examples Miquel Raynal
2021-11-26 11:39 ` Miquel Raynal [this message]
2021-11-27 23:13   ` [PATCH v2 03/20] dt-bindings: mtd: nand-chip: Create a NAND chip description Rob Herring
2021-12-01 23:20   ` Rob Herring
2021-11-26 11:39 ` [PATCH v2 04/20] dt-bindings: mtd: spi-nand: Convert spi-nand description file to yaml Miquel Raynal
2021-11-26 11:39 ` [PATCH v2 05/20] dt-bindings: vendor-prefixes: Clarify Macronix prefix Miquel Raynal
2021-11-26 11:39 ` [PATCH v2 06/20] dt-bindings: spi: mxic: The interrupt property is not mandatory Miquel Raynal
2021-11-26 11:39 ` [PATCH v2 07/20] dt-bindings: spi: mxic: Convert to yaml Miquel Raynal
2021-11-26 11:39 ` [PATCH v2 08/20] dt-bindings: spi: mxic: Document the nand-ecc-engine property Miquel Raynal
2021-11-26 11:39 ` [PATCH v2 09/20] dt-bindings: mtd: Describe Macronix NAND ECC engine Miquel Raynal
2021-11-26 11:39 ` [PATCH v2 10/20] mtd: spinand: macronix: Use random program load Miquel Raynal
2021-11-26 11:39 ` [PATCH v2 11/20] mtd: nand: ecc: Add infrastructure to support hardware engines Miquel Raynal
2021-11-26 11:39 ` [PATCH v2 12/20] mtd: nand: Add a new helper to retrieve the ECC context Miquel Raynal
2021-11-26 11:39 ` [PATCH v2 13/20] mtd: nand: mxic-ecc: Add Macronix external ECC engine support Miquel Raynal
2021-11-26 11:39 ` [PATCH v2 14/20] mtd: nand: mxic-ecc: Support SPI pipelined mode Miquel Raynal
2021-11-26 11:39 ` [PATCH v2 15/20] mtd: spinand: Create direct mapping descriptors for ECC operations Miquel Raynal
2021-11-26 14:13   ` Boris Brezillon
2021-11-26 14:42     ` Miquel Raynal
2021-11-26 14:47       ` Boris Brezillon
2021-11-26 14:51         ` Miquel Raynal
2021-11-26 11:39 ` [PATCH v2 16/20] spi: mxic: Fix the transmit path Miquel Raynal
2021-11-26 11:39 ` [PATCH v2 17/20] spi: mxic: Create a helper to configure the controller before an operation Miquel Raynal
2021-11-26 11:39 ` [PATCH v2 18/20] spi: mxic: Create a helper to ease the start of " Miquel Raynal
2021-11-26 11:39 ` [PATCH v2 19/20] spi: mxic: Add support for direct mapping Miquel Raynal
2021-11-26 11:39 ` [PATCH v2 20/20] spi: mxic: Add support for pipelined ECC operations Miquel Raynal
2021-11-26 21:15   ` kernel test robot
2021-11-27  7:49   ` kernel test robot
2021-11-26 13:37 ` [PATCH v2 00/20] External ECC engines & Macronix support Mark Brown
2021-11-26 14:10   ` Miquel Raynal
2021-11-26 14:13     ` Mark Brown
2021-11-29  9:50       ` Miquel Raynal

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211126113924.310459-4-miquel.raynal@bootlin.com \
    --to=miquel.raynal@bootlin.com \
    --cc=Tudor.Ambarus@microchip.com \
    --cc=Xiangsheng.Hou@mediatek.com \
    --cc=bbrezillon@kernel.org \
    --cc=broonie@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=jaimeliao@mxic.com.tw \
    --cc=juliensu@mxic.com.tw \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=michael@walle.cc \
    --cc=p.yadav@ti.com \
    --cc=richard@nod.at \
    --cc=robh+dt@kernel.org \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=vigneshr@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).