* [PATCH v2 0/3] dt-bindings: mtd: microchip-nand: convert txt to yaml
@ 2025-03-11 12:28 Balamanikandan Gunasundar
2025-03-11 12:28 ` [PATCH v2 1/3] " Balamanikandan Gunasundar
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Balamanikandan Gunasundar @ 2025-03-11 12:28 UTC (permalink / raw)
To: miquel.raynal, richard, vigneshr, robh, krzk+dt, conor+dt,
nicolas.ferre, alexandre.belloni, claudiu.beznea,
krzysztof.kozlowski+dt
Cc: balamanikandan.gunasundar, linux-mtd, devicetree,
linux-arm-kernel, linux-kernel
Convert microchip nand controllers from text to yaml
This patch is a respin of
https://lore.kernel.org/all/20240320-linux-next-nand-yaml-v1-0-2d2495363e88@microchip.com/
Summary of changes:
[PATCH v2 1/3] dt-bindings: mtd: microchip-nand: convert txt to yaml
- Change the filename to match the compatible string
- Drop items and oneOf in the compatible property as it is just an enum
- Remove the if in the #address-cells and #size-cells
- Remove the unwanted comments that refers to .txt files
- Fix reg property description
- Define the properties in a list and add constraints
- Fix DT coding style and droped unused labels
[PATCH v2 2/3] dt-bindings: mtd: microchip-nand: add atmel pmecc
- Rename filename to match compatible string
- Add constraints for sam9x7
- Droped unused dt labels
[PATCH v2 3/3] dt-bindings: mtd: atmel-nand: add legacy nand
- Filename matching the compatibles
- Remove "bindings" from the subject
- Remove "deprecated" as these are the only bindings available for the devices
- Add missing constraints.
- Add default for nand-ecc-mode
- Add 32 in pmecc-cap for sama5d2
- Add default for sector-size, pmecc-lookup-table-offset, nand-bus-width
Balamanikandan Gunasundar (3):
dt-bindings: mtd: microchip-nand: convert txt to yaml
dt-bindings: mtd: microchip-nand: add atmel pmecc
dt-bindings: mtd: atmel-nand: add legacy nand controllers
.../devicetree/bindings/mtd/atmel-nand.txt | 227 ------------------
.../devicetree/bindings/mtd/atmel-nand.yaml | 163 +++++++++++++
.../mtd/microchip,nand-controller.yaml | 175 ++++++++++++++
.../bindings/mtd/microchip,pmecc.yaml | 67 ++++++
4 files changed, 405 insertions(+), 227 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/mtd/atmel-nand.txt
create mode 100644 Documentation/devicetree/bindings/mtd/atmel-nand.yaml
create mode 100644 Documentation/devicetree/bindings/mtd/microchip,nand-controller.yaml
create mode 100644 Documentation/devicetree/bindings/mtd/microchip,pmecc.yaml
--
2.34.1
^ permalink raw reply [flat|nested] 9+ messages in thread* [PATCH v2 1/3] dt-bindings: mtd: microchip-nand: convert txt to yaml 2025-03-11 12:28 [PATCH v2 0/3] dt-bindings: mtd: microchip-nand: convert txt to yaml Balamanikandan Gunasundar @ 2025-03-11 12:28 ` Balamanikandan Gunasundar 2025-03-11 14:52 ` Rob Herring (Arm) 2025-03-11 12:28 ` [PATCH v2 2/3] dt-bindings: mtd: microchip-nand: add atmel pmecc Balamanikandan Gunasundar 2025-03-11 12:28 ` [PATCH v2 3/3] dt-bindings: mtd: atmel-nand: add legacy nand controllers Balamanikandan Gunasundar 2 siblings, 1 reply; 9+ messages in thread From: Balamanikandan Gunasundar @ 2025-03-11 12:28 UTC (permalink / raw) To: miquel.raynal, richard, vigneshr, robh, krzk+dt, conor+dt, nicolas.ferre, alexandre.belloni, claudiu.beznea, krzysztof.kozlowski+dt Cc: balamanikandan.gunasundar, linux-mtd, devicetree, linux-arm-kernel, linux-kernel Convert text to yaml for microchip nand controller Signed-off-by: Balamanikandan Gunasundar <balamanikandan.gunasundar@microchip.com> --- Changes in v2: - Change the filename to match the compatible string - Drop items and oneOf in the compatible property as it is just an enum - Remove the if in the #address-cells and #size-cells - Remove the unwanted comments that refers to .txt files - Fix reg property description - Define the properties in a list and add constraints - Fix DT coding style and droped unused labels .../devicetree/bindings/mtd/atmel-nand.txt | 50 ----- .../mtd/microchip,nand-controller.yaml | 175 ++++++++++++++++++ 2 files changed, 175 insertions(+), 50 deletions(-) create mode 100644 Documentation/devicetree/bindings/mtd/microchip,nand-controller.yaml diff --git a/Documentation/devicetree/bindings/mtd/atmel-nand.txt b/Documentation/devicetree/bindings/mtd/atmel-nand.txt index e36c35b17873..dbbc17a866f2 100644 --- a/Documentation/devicetree/bindings/mtd/atmel-nand.txt +++ b/Documentation/devicetree/bindings/mtd/atmel-nand.txt @@ -1,53 +1,3 @@ -Atmel NAND flash controller bindings - -The NAND flash controller node should be defined under the EBI bus (see -Documentation/devicetree/bindings/memory-controllers/atmel,ebi.txt). -One or several NAND devices can be defined under this NAND controller. -The NAND controller might be connected to an ECC engine. - -* NAND controller bindings: - -Required properties: -- compatible: should be one of the following - "atmel,at91rm9200-nand-controller" - "atmel,at91sam9260-nand-controller" - "atmel,at91sam9261-nand-controller" - "atmel,at91sam9g45-nand-controller" - "atmel,sama5d3-nand-controller" - "microchip,sam9x60-nand-controller" -- ranges: empty ranges property to forward EBI ranges definitions. -- #address-cells: should be set to 2. -- #size-cells: should be set to 1. -- atmel,nfc-io: phandle to the NFC IO block. Only required for sama5d3 - controllers. -- atmel,nfc-sram: phandle to the NFC SRAM block. Only required for sama5d3 - controllers. - -Optional properties: -- ecc-engine: phandle to the PMECC block. Only meaningful if the SoC embeds - a PMECC engine. - -* NAND device/chip bindings: - -Required properties: -- reg: describes the CS lines assigned to the NAND device. If the NAND device - exposes multiple CS lines (multi-dies chips), your reg property will - contain X tuples of 3 entries. - 1st entry: the CS line this NAND chip is connected to - 2nd entry: the base offset of the memory region assigned to this - device (always 0) - 3rd entry: the memory region size (always 0x800000) - -Optional properties: -- rb-gpios: the GPIO(s) used to check the Ready/Busy status of the NAND. -- cs-gpios: the GPIO(s) used to control the CS line. -- det-gpios: the GPIO used to detect if a Smartmedia Card is present. -- atmel,rb: an integer identifying the native Ready/Busy pin. Only meaningful - on sama5 SoCs. - -All generic properties are described in the generic yaml files under -Documentation/devicetree/bindings/mtd/. - * ECC engine (PMECC) bindings: Required properties: diff --git a/Documentation/devicetree/bindings/mtd/microchip,nand-controller.yaml b/Documentation/devicetree/bindings/mtd/microchip,nand-controller.yaml new file mode 100644 index 000000000000..bf644ab0cf27 --- /dev/null +++ b/Documentation/devicetree/bindings/mtd/microchip,nand-controller.yaml @@ -0,0 +1,175 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/mtd/microchip,nand-controller.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Microchip NAND flash controller + +maintainers: + - Balamanikandan Gunasundar <balamanikandan.gunasundar@microchip.com> + +description: | + The NAND flash controller node should be defined under the EBI bus (see + Documentation/devicetree/bindings/memory-controllers/atmel,ebi.txt). + One or several NAND devices can be defined under this NAND controller. + The NAND controller might be connected to an ECC engine. + +properties: + compatible: + enum: + - atmel,at91rm9200-nand-controller + - atmel,at91sam9260-nand-controller + - atmel,at91sam9261-nand-controller + - atmel,at91sam9g45-nand-controller + - atmel,sama5d3-nand-controller + - microchip,sam9x60-nand-controller + + ranges: + description: empty ranges property to forward EBI ranges definitions. + + ecc-engine: + description: + phandle to the PMECC block. Only meaningful if the SoC embeds a PMECC + engine. + + "#address-cells": + const: 2 + + "#size-cells": + const: 1 + + atmel,nfc-io: + $ref: /schemas/types.yaml#/definitions/phandle + description: phandle to the NFC IO block. Only applicable for atmel,sama5d3-nand-controller + + atmel,nfc-sram: + $ref: /schemas/types.yaml#/definitions/phandle + description: phandle to the NFC SRAM block. Only applicable for atmel,sama5d3-nand-controller + +required: + - compatible + - ranges + - "#address-cells" + - "#size-cells" + +patternProperties: + "^nand@[a-f0-9]$": + type: object + $ref: raw-nand-chip.yaml# + description: + NAND chip bindings. + + additionalProperties: false + + properties: + reg: + items: + - items: + - description: describes the CS lines assigned to the NAND device. + - description: the base offset of the memory region assigned to this device (always 0) + - description: the memory region size (always 0x800000) + rb-gpios: + description: + the GPIO(s) used to check the Ready/Busy status of the NAND. + + cs-gpios: + description: + the GPIO(s) used to control the CS line. + + det-gpios: + description: + the GPIO used to detect if a Smartmedia Card is present. + + atmel,rb: + description: | + an integer identifying the native Ready/Busy pin. + $ref: /schemas/types.yaml#/definitions/uint32 + + nand-ecc-step-size: + const: 512 + + nand-ecc-strength: + enum: [2, 4, 8] + + nand-ecc-mode: + enum: [soft, hw] + + nand-bus-width: + const: 8 + + nand-on-flash-bbt: true + + partitions: + $ref: /schemas/mtd/partitions/partitions.yaml + + label: + description: Name or Label of the device + + allOf: + - if: + properties: + compatible: + contains: + const: atmel,sama5d3-nand-controller + then: + properties: + "atmel,rb": + description: an integer identifying the native Ready/Busy pin. + +unevaluatedProperties: false + +examples: + - | + nfc_io: nfc-io@70000000 { + compatible = "atmel,sama5d3-nfc-io", "syscon"; + reg = <0x70000000 0x8000000>; + }; + + nfc_sram: sram@200000 { + compatible = "mmio-sram"; + no-memory-wc; + reg = <0x200000 0x2400>; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0x200000 0x2400>; + }; + + pmecc: ecc-engine@ffffc070 { + compatible = "atmel,at91sam9g45-pmecc"; + reg = <0xffffc070 0x490>, + <0xffffc500 0x100>; + }; + + ebi@10000000 { + compatible = "atmel,sama5d3-ebi"; + #address-cells = <2>; + #size-cells = <1>; + atmel,smc = <&hsmc>; + reg = <0x10000000 0x10000000 + 0x40000000 0x30000000>; + ranges = <0x0 0x0 0x10000000 0x10000000 + 0x1 0x0 0x40000000 0x10000000 + 0x2 0x0 0x50000000 0x10000000 + 0x3 0x0 0x60000000 0x10000000>; + clocks = <&mck>; + + nand_controller: nand-controller { + compatible = "atmel,sama5d3-nand-controller"; + atmel,nfc-sram = <&nfc_sram>; + atmel,nfc-io = <&nfc_io>; + ecc-engine = <&pmecc>; + #address-cells = <2>; + #size-cells = <1>; + ranges; + + nand@3 { + reg = <0x3 0x0 0x800000>; + atmel,rb = <0>; + /* + * Put generic NAND/MTD properties and + * subnodes here. + */ + }; + }; + }; -- 2.34.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/3] dt-bindings: mtd: microchip-nand: convert txt to yaml 2025-03-11 12:28 ` [PATCH v2 1/3] " Balamanikandan Gunasundar @ 2025-03-11 14:52 ` Rob Herring (Arm) 2025-03-12 2:46 ` Balamanikandan.Gunasundar 0 siblings, 1 reply; 9+ messages in thread From: Rob Herring (Arm) @ 2025-03-11 14:52 UTC (permalink / raw) To: Balamanikandan Gunasundar Cc: linux-mtd, krzysztof.kozlowski+dt, linux-arm-kernel, devicetree, richard, miquel.raynal, krzk+dt, claudiu.beznea, vigneshr, linux-kernel, nicolas.ferre, conor+dt, alexandre.belloni On Tue, 11 Mar 2025 17:58:45 +0530, Balamanikandan Gunasundar wrote: > Convert text to yaml for microchip nand controller > > Signed-off-by: Balamanikandan Gunasundar <balamanikandan.gunasundar@microchip.com> > --- > > Changes in v2: > > - Change the filename to match the compatible string > - Drop items and oneOf in the compatible property as it is just an enum > - Remove the if in the #address-cells and #size-cells > - Remove the unwanted comments that refers to .txt files > - Fix reg property description > - Define the properties in a list and add constraints > - Fix DT coding style and droped unused labels > > .../devicetree/bindings/mtd/atmel-nand.txt | 50 ----- > .../mtd/microchip,nand-controller.yaml | 175 ++++++++++++++++++ > 2 files changed, 175 insertions(+), 50 deletions(-) > create mode 100644 Documentation/devicetree/bindings/mtd/microchip,nand-controller.yaml > My bot found errors running 'make dt_binding_check' on your patch: yamllint warnings/errors: dtschema/dtc warnings/errors: Documentation/devicetree/bindings/mtd/microchip,nand-controller.example.dtb: /example-0/ecc-engine@ffffc070: failed to match any schema with compatible: ['atmel,at91sam9g45-pmecc'] Documentation/devicetree/bindings/mtd/microchip,nand-controller.example.dtb: /example-0/ebi@10000000: failed to match any schema with compatible: ['atmel,sama5d3-ebi'] /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/mtd/microchip,nand-controller.example.dtb: nand-controller: #address-cells: 1 was expected from schema $id: http://devicetree.org/schemas/mtd/nand-controller.yaml# /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/mtd/microchip,nand-controller.example.dtb: nand-controller: #size-cells: 0 was expected from schema $id: http://devicetree.org/schemas/mtd/nand-controller.yaml# doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20250311122847.90081-2-balamanikandan.gunasundar@microchip.com The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema. ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/3] dt-bindings: mtd: microchip-nand: convert txt to yaml 2025-03-11 14:52 ` Rob Herring (Arm) @ 2025-03-12 2:46 ` Balamanikandan.Gunasundar 0 siblings, 0 replies; 9+ messages in thread From: Balamanikandan.Gunasundar @ 2025-03-12 2:46 UTC (permalink / raw) To: robh Cc: linux-mtd, krzysztof.kozlowski+dt, linux-arm-kernel, devicetree, richard, miquel.raynal, krzk+dt, claudiu.beznea, vigneshr, linux-kernel, Nicolas.Ferre, conor+dt, alexandre.belloni Hi Rob, On 11/03/25 8:22 pm, Rob Herring (Arm) wrote: > EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe > > On Tue, 11 Mar 2025 17:58:45 +0530, Balamanikandan Gunasundar wrote: >> Convert text to yaml for microchip nand controller >> >> Signed-off-by: Balamanikandan Gunasundar <balamanikandan.gunasundar@microchip.com> >> --- >> >> Changes in v2: >> >> - Change the filename to match the compatible string >> - Drop items and oneOf in the compatible property as it is just an enum >> - Remove the if in the #address-cells and #size-cells >> - Remove the unwanted comments that refers to .txt files >> - Fix reg property description >> - Define the properties in a list and add constraints >> - Fix DT coding style and droped unused labels >> >> .../devicetree/bindings/mtd/atmel-nand.txt | 50 ----- >> .../mtd/microchip,nand-controller.yaml | 175 ++++++++++++++++++ >> 2 files changed, 175 insertions(+), 50 deletions(-) >> create mode 100644 Documentation/devicetree/bindings/mtd/microchip,nand-controller.yaml >> > > My bot found errors running 'make dt_binding_check' on your patch: > > yamllint warnings/errors: > > dtschema/dtc warnings/errors: > Documentation/devicetree/bindings/mtd/microchip,nand-controller.example.dtb: /example-0/ecc-engine@ffffc070: failed to match any schema with compatible: ['atmel,at91sam9g45-pmecc'] > Documentation/devicetree/bindings/mtd/microchip,nand-controller.example.dtb: /example-0/ebi@10000000: failed to match any schema with compatible: ['atmel,sama5d3-ebi'] > /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/mtd/microchip,nand-controller.example.dtb: nand-controller: #address-cells: 1 was expected > from schema $id: http://devicetree.org/schemas/mtd/nand-controller.yaml# > /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/mtd/microchip,nand-controller.example.dtb: nand-controller: #size-cells: 0 was expected > from schema $id: http://devicetree.org/schemas/mtd/nand-controller.yaml# > > doc reference errors (make refcheckdocs): > > See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20250311122847.90081-2-balamanikandan.gunasundar@microchip.com > > The base for the series is generally the latest rc1. A different dependency > should be noted in *this* patch. > > If you already ran 'make dt_binding_check' and didn't see the above > error(s), then make sure 'yamllint' is installed and dt-schema is up to > date: Yes I made sure I ran dt_binding_check and dtbs_check before sending and didn't see the errors. As you said I will update the dt-schema and check again. Will address the other comments for this series and send a v3. Thanks, Bala > > pip3 install dtschema --upgrade > > Please check and re-submit after running the above command yourself. Note > that DT_SCHEMA_FILES can be set to your schema file to speed up checking > your schema. However, it must be unset to test all examples with your schema. > ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 2/3] dt-bindings: mtd: microchip-nand: add atmel pmecc 2025-03-11 12:28 [PATCH v2 0/3] dt-bindings: mtd: microchip-nand: convert txt to yaml Balamanikandan Gunasundar 2025-03-11 12:28 ` [PATCH v2 1/3] " Balamanikandan Gunasundar @ 2025-03-11 12:28 ` Balamanikandan Gunasundar 2025-03-11 15:27 ` Rob Herring 2025-03-11 12:28 ` [PATCH v2 3/3] dt-bindings: mtd: atmel-nand: add legacy nand controllers Balamanikandan Gunasundar 2 siblings, 1 reply; 9+ messages in thread From: Balamanikandan Gunasundar @ 2025-03-11 12:28 UTC (permalink / raw) To: miquel.raynal, richard, vigneshr, robh, krzk+dt, conor+dt, nicolas.ferre, alexandre.belloni, claudiu.beznea, krzysztof.kozlowski+dt Cc: balamanikandan.gunasundar, linux-mtd, devicetree, linux-arm-kernel, linux-kernel Add bindings for programmable multibit error correction code controller (PMECC). Signed-off-by: Balamanikandan Gunasundar <balamanikandan.gunasundar@microchip.com> --- Changes in v2: - Rename filename to match compatible string - Add constraints for sam9x7 - Droped unused dt labels .../devicetree/bindings/mtd/atmel-nand.txt | 61 ----------------- .../bindings/mtd/microchip,pmecc.yaml | 67 +++++++++++++++++++ 2 files changed, 67 insertions(+), 61 deletions(-) create mode 100644 Documentation/devicetree/bindings/mtd/microchip,pmecc.yaml diff --git a/Documentation/devicetree/bindings/mtd/atmel-nand.txt b/Documentation/devicetree/bindings/mtd/atmel-nand.txt index dbbc17a866f2..1934614a9298 100644 --- a/Documentation/devicetree/bindings/mtd/atmel-nand.txt +++ b/Documentation/devicetree/bindings/mtd/atmel-nand.txt @@ -1,64 +1,3 @@ -* ECC engine (PMECC) bindings: - -Required properties: -- compatible: should be one of the following - "atmel,at91sam9g45-pmecc" - "atmel,sama5d4-pmecc" - "atmel,sama5d2-pmecc" - "microchip,sam9x60-pmecc" - "microchip,sam9x7-pmecc", "atmel,at91sam9g45-pmecc" -- reg: should contain 2 register ranges. The first one is pointing to the PMECC - block, and the second one to the PMECC_ERRLOC block. - -Example: - - nfc_io: nfc-io@70000000 { - compatible = "atmel,sama5d3-nfc-io", "syscon"; - reg = <0x70000000 0x8000000>; - }; - - pmecc: ecc-engine@ffffc070 { - compatible = "atmel,at91sam9g45-pmecc"; - reg = <0xffffc070 0x490>, - <0xffffc500 0x100>; - }; - - ebi: ebi@10000000 { - compatible = "atmel,sama5d3-ebi"; - #address-cells = <2>; - #size-cells = <1>; - atmel,smc = <&hsmc>; - reg = <0x10000000 0x10000000 - 0x40000000 0x30000000>; - ranges = <0x0 0x0 0x10000000 0x10000000 - 0x1 0x0 0x40000000 0x10000000 - 0x2 0x0 0x50000000 0x10000000 - 0x3 0x0 0x60000000 0x10000000>; - clocks = <&mck>; - - nand_controller: nand-controller { - compatible = "atmel,sama5d3-nand-controller"; - atmel,nfc-sram = <&nfc_sram>; - atmel,nfc-io = <&nfc_io>; - ecc-engine = <&pmecc>; - #address-cells = <2>; - #size-cells = <1>; - ranges; - - nand@3 { - reg = <0x3 0x0 0x800000>; - atmel,rb = <0>; - - /* - * Put generic NAND/MTD properties and - * subnodes here. - */ - }; - }; - }; - ------------------------------------------------------------------------ - Deprecated bindings (should not be used in new device trees): Required properties: diff --git a/Documentation/devicetree/bindings/mtd/microchip,pmecc.yaml b/Documentation/devicetree/bindings/mtd/microchip,pmecc.yaml new file mode 100644 index 000000000000..98260a691a2e --- /dev/null +++ b/Documentation/devicetree/bindings/mtd/microchip,pmecc.yaml @@ -0,0 +1,67 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/mtd/microchip,pmecc.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Microchip pmecc controller + +maintainers: + - Balamanikandan Gunasundar <balamanikandan.gunasundar@microchip.com> + +description: | + Bindings for microchip Programmable Multibit Error Correction Code + Controller (PMECC). pmecc is a programmable BCH encoder/decoder. This + block is passed as the value to the "ecc-engine" property of microchip + nand flash controller node. + +properties: + compatible: + oneOf: + - enum: + - atmel,at91sam9g45-pmecc + - atmel,sama5d2-pmecc + - atmel,sama5d4-pmecc + - microchip,sam9x60-pmecc + - microchip,sam9x7-pmecc + - items: + - const: microchip,sam9x7-pmecc + - const: atmel,at91sam9g45-pmecc + - items: + - const: microchip,sam9x60-pmecc + - const: atmel,at91sam9g45-pmecc + + reg: + items: + - description: Base address and size of PMECC controller registers + - description: Base address and size of PMECC_ERRLOC controller + + clocks: + description: The clock source for pmecc controller + maxItems: 1 + +required: + - compatible + - reg + +allOf: + - if: + properties: + compatible: + contains: + const: microchip,sam9x7-pmecc + then: + properties: + clocks: + description: The clock source for pmecc controller + +unevaluatedProperties: false + +examples: + - | + ecc-engine@ffffc070 { + compatible = "microchip,sam9x7-pmecc"; + reg = <0xffffe000 0x300>, + <0xffffe600 0x100>; + clocks = <&pmc 2 48>; + }; -- 2.34.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v2 2/3] dt-bindings: mtd: microchip-nand: add atmel pmecc 2025-03-11 12:28 ` [PATCH v2 2/3] dt-bindings: mtd: microchip-nand: add atmel pmecc Balamanikandan Gunasundar @ 2025-03-11 15:27 ` Rob Herring 0 siblings, 0 replies; 9+ messages in thread From: Rob Herring @ 2025-03-11 15:27 UTC (permalink / raw) To: Balamanikandan Gunasundar Cc: miquel.raynal, richard, vigneshr, krzk+dt, conor+dt, nicolas.ferre, alexandre.belloni, claudiu.beznea, krzysztof.kozlowski+dt, linux-mtd, devicetree, linux-arm-kernel, linux-kernel On Tue, Mar 11, 2025 at 05:58:46PM +0530, Balamanikandan Gunasundar wrote: > Add bindings for programmable multibit error correction code controller > (PMECC). > > Signed-off-by: Balamanikandan Gunasundar <balamanikandan.gunasundar@microchip.com> > --- > > Changes in v2: > - Rename filename to match compatible string > - Add constraints for sam9x7 > - Droped unused dt labels > > .../devicetree/bindings/mtd/atmel-nand.txt | 61 ----------------- > .../bindings/mtd/microchip,pmecc.yaml | 67 +++++++++++++++++++ > 2 files changed, 67 insertions(+), 61 deletions(-) > create mode 100644 Documentation/devicetree/bindings/mtd/microchip,pmecc.yaml > > diff --git a/Documentation/devicetree/bindings/mtd/atmel-nand.txt b/Documentation/devicetree/bindings/mtd/atmel-nand.txt > index dbbc17a866f2..1934614a9298 100644 > --- a/Documentation/devicetree/bindings/mtd/atmel-nand.txt > +++ b/Documentation/devicetree/bindings/mtd/atmel-nand.txt > @@ -1,64 +1,3 @@ > -* ECC engine (PMECC) bindings: > - > -Required properties: > -- compatible: should be one of the following > - "atmel,at91sam9g45-pmecc" > - "atmel,sama5d4-pmecc" > - "atmel,sama5d2-pmecc" > - "microchip,sam9x60-pmecc" > - "microchip,sam9x7-pmecc", "atmel,at91sam9g45-pmecc" > -- reg: should contain 2 register ranges. The first one is pointing to the PMECC > - block, and the second one to the PMECC_ERRLOC block. > - > -Example: > - > - nfc_io: nfc-io@70000000 { > - compatible = "atmel,sama5d3-nfc-io", "syscon"; > - reg = <0x70000000 0x8000000>; > - }; > - > - pmecc: ecc-engine@ffffc070 { > - compatible = "atmel,at91sam9g45-pmecc"; > - reg = <0xffffc070 0x490>, > - <0xffffc500 0x100>; > - }; > - > - ebi: ebi@10000000 { > - compatible = "atmel,sama5d3-ebi"; > - #address-cells = <2>; > - #size-cells = <1>; > - atmel,smc = <&hsmc>; > - reg = <0x10000000 0x10000000 > - 0x40000000 0x30000000>; > - ranges = <0x0 0x0 0x10000000 0x10000000 > - 0x1 0x0 0x40000000 0x10000000 > - 0x2 0x0 0x50000000 0x10000000 > - 0x3 0x0 0x60000000 0x10000000>; > - clocks = <&mck>; > - > - nand_controller: nand-controller { > - compatible = "atmel,sama5d3-nand-controller"; > - atmel,nfc-sram = <&nfc_sram>; > - atmel,nfc-io = <&nfc_io>; > - ecc-engine = <&pmecc>; > - #address-cells = <2>; > - #size-cells = <1>; > - ranges; > - > - nand@3 { > - reg = <0x3 0x0 0x800000>; > - atmel,rb = <0>; > - > - /* > - * Put generic NAND/MTD properties and > - * subnodes here. > - */ > - }; > - }; > - }; > - > ------------------------------------------------------------------------ > - > Deprecated bindings (should not be used in new device trees): > > Required properties: > diff --git a/Documentation/devicetree/bindings/mtd/microchip,pmecc.yaml b/Documentation/devicetree/bindings/mtd/microchip,pmecc.yaml > new file mode 100644 > index 000000000000..98260a691a2e > --- /dev/null > +++ b/Documentation/devicetree/bindings/mtd/microchip,pmecc.yaml > @@ -0,0 +1,67 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/mtd/microchip,pmecc.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Microchip pmecc controller > + > +maintainers: > + - Balamanikandan Gunasundar <balamanikandan.gunasundar@microchip.com> > + > +description: | Don't need '|' if no formatting to preserve. > + Bindings for microchip Programmable Multibit Error Correction Code > + Controller (PMECC). pmecc is a programmable BCH encoder/decoder. This > + block is passed as the value to the "ecc-engine" property of microchip > + nand flash controller node. > + > +properties: > + compatible: > + oneOf: > + - enum: > + - atmel,at91sam9g45-pmecc > + - atmel,sama5d2-pmecc > + - atmel,sama5d4-pmecc > + - microchip,sam9x60-pmecc > + - microchip,sam9x7-pmecc Both alone and with a fallback should not be allowed. Pick one. A fallback is only useful if there's a driver/client that only understands the fallback and would work with the new implementation. IOW, if 'they are the same'. > + - items: > + - const: microchip,sam9x7-pmecc > + - const: atmel,at91sam9g45-pmecc > + - items: > + - const: microchip,sam9x60-pmecc > + - const: atmel,at91sam9g45-pmecc Combine the last 2 'items' to 1 as the fallback is the same for both. > + > + reg: > + items: > + - description: Base address and size of PMECC controller registers > + - description: Base address and size of PMECC_ERRLOC controller Drop 'Base address and size of '. > + > + clocks: > + description: The clock source for pmecc controller For a single clock, what else would it be? Drop. > + maxItems: 1 > + > +required: > + - compatible > + - reg > + > +allOf: > + - if: > + properties: > + compatible: > + contains: > + const: microchip,sam9x7-pmecc > + then: > + properties: > + clocks: > + description: The clock source for pmecc controller What's the purpose of this if/then? It doesn't do anything. > + > +unevaluatedProperties: false > + > +examples: > + - | > + ecc-engine@ffffc070 { > + compatible = "microchip,sam9x7-pmecc"; > + reg = <0xffffe000 0x300>, > + <0xffffe600 0x100>; > + clocks = <&pmc 2 48>; > + }; > -- > 2.34.1 > ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 3/3] dt-bindings: mtd: atmel-nand: add legacy nand controllers 2025-03-11 12:28 [PATCH v2 0/3] dt-bindings: mtd: microchip-nand: convert txt to yaml Balamanikandan Gunasundar 2025-03-11 12:28 ` [PATCH v2 1/3] " Balamanikandan Gunasundar 2025-03-11 12:28 ` [PATCH v2 2/3] dt-bindings: mtd: microchip-nand: add atmel pmecc Balamanikandan Gunasundar @ 2025-03-11 12:28 ` Balamanikandan Gunasundar 2025-03-11 15:42 ` Rob Herring 2025-03-12 9:18 ` kernel test robot 2 siblings, 2 replies; 9+ messages in thread From: Balamanikandan Gunasundar @ 2025-03-11 12:28 UTC (permalink / raw) To: miquel.raynal, richard, vigneshr, robh, krzk+dt, conor+dt, nicolas.ferre, alexandre.belloni, claudiu.beznea, krzysztof.kozlowski+dt Cc: balamanikandan.gunasundar, linux-mtd, devicetree, linux-arm-kernel, linux-kernel Add support for atmel legacy nand controllers. These bindings should not be used with the new device trees. Signed-off-by: Balamanikandan Gunasundar <balamanikandan.gunasundar@microchip.com> --- Changes in v2: - Filename matching the compatibles - Remove "bindings" from the subject - Remove "deprecated" as these are the only bindings available for the devices - Add missing constraints. - Add default for nand-ecc-mode - Add 32 in pmecc-cap for sama5d2 - Add default for sector-size, pmecc-lookup-table-offset, nand-bus-width .../devicetree/bindings/mtd/atmel-nand.txt | 116 ------------- .../devicetree/bindings/mtd/atmel-nand.yaml | 163 ++++++++++++++++++ 2 files changed, 163 insertions(+), 116 deletions(-) delete mode 100644 Documentation/devicetree/bindings/mtd/atmel-nand.txt create mode 100644 Documentation/devicetree/bindings/mtd/atmel-nand.yaml diff --git a/Documentation/devicetree/bindings/mtd/atmel-nand.txt b/Documentation/devicetree/bindings/mtd/atmel-nand.txt deleted file mode 100644 index 1934614a9298..000000000000 --- a/Documentation/devicetree/bindings/mtd/atmel-nand.txt +++ /dev/null @@ -1,116 +0,0 @@ -Deprecated bindings (should not be used in new device trees): - -Required properties: -- compatible: The possible values are: - "atmel,at91rm9200-nand" - "atmel,sama5d2-nand" - "atmel,sama5d4-nand" -- reg : should specify localbus address and size used for the chip, - and hardware ECC controller if available. - If the hardware ECC is PMECC, it should contain address and size for - PMECC and PMECC Error Location controller. - The PMECC lookup table address and size in ROM is optional. If not - specified, driver will build it in runtime. -- atmel,nand-addr-offset : offset for the address latch. -- atmel,nand-cmd-offset : offset for the command latch. -- #address-cells, #size-cells : Must be present if the device has sub-nodes - representing partitions. - -- gpios : specifies the gpio pins to control the NAND device. detect is an - optional gpio and may be set to 0 if not present. - -Optional properties: -- atmel,nand-has-dma : boolean to support dma transfer for nand read/write. -- nand-ecc-mode : String, operation mode of the NAND ecc mode, soft by default. - Supported values are: "none", "soft", "hw", "hw_syndrome", "hw_oob_first", - "soft_bch". -- atmel,has-pmecc : boolean to enable Programmable Multibit ECC hardware, - capable of BCH encoding and decoding, on devices where it is present. -- atmel,pmecc-cap : error correct capability for Programmable Multibit ECC - Controller. Supported values are: 2, 4, 8, 12, 24. If the compatible string - is "atmel,sama5d2-nand", 32 is also valid. -- atmel,pmecc-sector-size : sector size for ECC computation. Supported values - are: 512, 1024. -- atmel,pmecc-lookup-table-offset : includes two offsets of lookup table in ROM - for different sector size. First one is for sector size 512, the next is for - sector size 1024. If not specified, driver will build the table in runtime. -- nand-bus-width : 8 or 16 bus width if not present 8 -- nand-on-flash-bbt: boolean to enable on flash bbt option if not present false - -Nand Flash Controller(NFC) is an optional sub-node -Required properties: -- compatible : "atmel,sama5d3-nfc". -- reg : should specify the address and size used for NFC command registers, - NFC registers and NFC SRAM. NFC SRAM address and size can be absent - if don't want to use it. -- clocks: phandle to the peripheral clock -Optional properties: -- atmel,write-by-sram: boolean to enable NFC write by SRAM. - -Examples: -nand0: nand@40000000,0 { - compatible = "atmel,at91rm9200-nand"; - #address-cells = <1>; - #size-cells = <1>; - reg = <0x40000000 0x10000000 - 0xffffe800 0x200 - >; - atmel,nand-addr-offset = <21>; /* ale */ - atmel,nand-cmd-offset = <22>; /* cle */ - nand-on-flash-bbt; - nand-ecc-mode = "soft"; - gpios = <&pioC 13 0 /* rdy */ - &pioC 14 0 /* nce */ - 0 /* cd */ - >; - partition@0 { - ... - }; -}; - -/* for PMECC supported chips */ -nand0: nand@40000000 { - compatible = "atmel,at91rm9200-nand"; - #address-cells = <1>; - #size-cells = <1>; - reg = < 0x40000000 0x10000000 /* bus addr & size */ - 0xffffe000 0x00000600 /* PMECC addr & size */ - 0xffffe600 0x00000200 /* PMECC ERRLOC addr & size */ - 0x00100000 0x00100000 /* ROM addr & size */ - >; - atmel,nand-addr-offset = <21>; /* ale */ - atmel,nand-cmd-offset = <22>; /* cle */ - nand-on-flash-bbt; - nand-ecc-mode = "hw"; - atmel,has-pmecc; /* enable PMECC */ - atmel,pmecc-cap = <2>; - atmel,pmecc-sector-size = <512>; - atmel,pmecc-lookup-table-offset = <0x8000 0x10000>; - gpios = <&pioD 5 0 /* rdy */ - &pioD 4 0 /* nce */ - 0 /* cd */ - >; - partition@0 { - ... - }; -}; - -/* for NFC supported chips */ -nand0: nand@40000000 { - compatible = "atmel,at91rm9200-nand"; - #address-cells = <1>; - #size-cells = <1>; - ranges; - ... - nfc@70000000 { - compatible = "atmel,sama5d3-nfc"; - #address-cells = <1>; - #size-cells = <1>; - clocks = <&hsmc_clk> - reg = < - 0x70000000 0x10000000 /* NFC Command Registers */ - 0xffffc000 0x00000070 /* NFC HSMC regs */ - 0x00200000 0x00100000 /* NFC SRAM banks */ - >; - }; -}; diff --git a/Documentation/devicetree/bindings/mtd/atmel-nand.yaml b/Documentation/devicetree/bindings/mtd/atmel-nand.yaml new file mode 100644 index 000000000000..8afc4a144caf --- /dev/null +++ b/Documentation/devicetree/bindings/mtd/atmel-nand.yaml @@ -0,0 +1,163 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/mtd/atmel-nand.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Atmel NAND flash controller + +maintainers: + - Balamanikandan Gunasundar <balamanikandan.gunasundar@microchip.com> + +description: | + Atmel nand flash controller. This should not be used for new device + trees. For the latest controllers refer microchip,nand-controller.yaml + +properties: + compatible: + enum: + - atmel,at91rm9200-nand + - atmel,sama5d2-nand + - atmel,sama5d4-nand + + reg: + description: + The localbus address and size used for the chip, and hardware ECC + controller if available. If the hardware ECC is PMECC, it should + contain address and size for PMECC and PMECC Error Location + controller. The PMECC lookup table address and size in ROM is + optional. If not specified, driver will build it in runtime. + + atmel,nand-addr-offset: + description: + offset for the address latch. + $ref: /schemas/types.yaml#/definitions/uint32 + minimum: 0 + maximum: 31 + + atmel,nand-cmd-offset: + description: + offset for the command latch. + $ref: /schemas/types.yaml#/definitions/uint32 + minimum: 0 + maximum: 31 + + '#address-cells': true + + '#size-cells': true + + gpios: + description: + specifies the gpio pins to control the NAND device. detect is an + optional gpio and may be set to 0 if not present. + minItems: 1 + maxItems: 3 + + atmel,nand-has-dma: + description: + support dma transfer for nand read/write. + $ref: /schemas/types.yaml#/definitions/flag + + atmel,has-pmecc: + description: + enable Programmable Multibit ECC hardware, capable of BCH encoding + and decoding, on devices where it is present. + $ref: /schemas/types.yaml#/definitions/flag + + nand-on-flash-bbt: + description: + enable on flash bbt option if not present false + $ref: /schemas/types.yaml#/definitions/flag + + nand-ecc-mode: + description: + operation mode of the NAND ecc + enum: + [none, soft, hw, hw_syndrome, hw_oob_first, soft_bch] + default: soft + $ref: /schemas/types.yaml#/definitions/string + + + atmel,pmecc-cap: + description: + error correct capability for Programmable Multibit ECC Controller. + enum: + [2, 4, 8, 12, 24, 32] + $ref: /schemas/types.yaml#/definitions/uint32 + + atmel,pmecc-sector-size: + description: + sector size for ECC computation. + enum: + [512, 1024] + default: 512 + $ref: /schemas/types.yaml#/definitions/uint32 + + + atmel,pmecc-lookup-table-offset: + description: + Two offsets of lookup table in ROM for different sector size. First + one is for sector size 512, the next is for sector size 1024. If not + specified, driver will build the table in runtime. + $ref: /schemas/types.yaml#/definitions/uint32-array + default: 512 + + nand-bus-width: + description: + nand bus width + enum: + [8, 16] + default: 8 + $ref: /schemas/types.yaml#/definitions/uint32 + +required: + - compatible + - reg + - atmel,nand-addr-offset + - atmel,nand-cmd-offset + - "#address-cells" + - "#size-cells" + +unevaluatedProperties: false + +examples: + - | + nand@40000000,0 { + compatible = "atmel,at91rm9200-nand"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0x40000000 0x10000000 + 0xffffe800 0x200>; + atmel,nand-addr-offset = <21>; /* ale */ + atmel,nand-cmd-offset = <22>; /* cle */ + nand-on-flash-bbt; + nand-ecc-mode = "soft"; + gpios = <&pioC 13 0 /* rdy */ + &pioC 14 0 /* nce */ + 0 /* cd */ + >; + }; + - | + /* for PMECC supported chips */ + nand1@40000000 { + compatible = "atmel,at91rm9200-nand"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0x40000000 0x10000000 /* bus addr & size */ + 0xffffe000 0x00000600 /* PMECC addr & size */ + 0xffffe600 0x00000200 /* PMECC ERRLOC addr & size */ + 0x00100000 0x00100000>; /* ROM addr & size */ + + atmel,nand-addr-offset = <21>; /* ale */ + atmel,nand-cmd-offset = <22>; /* cle */ + nand-on-flash-bbt; + nand-ecc-mode = "hw"; + atmel,has-pmecc; /* enable PMECC */ + atmel,pmecc-cap = <2>; + atmel,pmecc-sector-size = <512>; + atmel,pmecc-lookup-table-offset = <0x8000 0x10000>; + gpios = <&pioD 5 0 /* rdy */ + &pioD 4 0 /* nce */ + 0 /* cd */ + >; + }; -- 2.34.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v2 3/3] dt-bindings: mtd: atmel-nand: add legacy nand controllers 2025-03-11 12:28 ` [PATCH v2 3/3] dt-bindings: mtd: atmel-nand: add legacy nand controllers Balamanikandan Gunasundar @ 2025-03-11 15:42 ` Rob Herring 2025-03-12 9:18 ` kernel test robot 1 sibling, 0 replies; 9+ messages in thread From: Rob Herring @ 2025-03-11 15:42 UTC (permalink / raw) To: Balamanikandan Gunasundar Cc: miquel.raynal, richard, vigneshr, krzk+dt, conor+dt, nicolas.ferre, alexandre.belloni, claudiu.beznea, krzysztof.kozlowski+dt, linux-mtd, devicetree, linux-arm-kernel, linux-kernel On Tue, Mar 11, 2025 at 05:58:47PM +0530, Balamanikandan Gunasundar wrote: > Add support for atmel legacy nand controllers. These bindings should not be > used with the new device trees. > > Signed-off-by: Balamanikandan Gunasundar <balamanikandan.gunasundar@microchip.com> > --- > > Changes in v2: > > - Filename matching the compatibles > - Remove "bindings" from the subject > - Remove "deprecated" as these are the only bindings available for the devices > - Add missing constraints. > - Add default for nand-ecc-mode > - Add 32 in pmecc-cap for sama5d2 > - Add default for sector-size, pmecc-lookup-table-offset, nand-bus-width > > .../devicetree/bindings/mtd/atmel-nand.txt | 116 ------------- > .../devicetree/bindings/mtd/atmel-nand.yaml | 163 ++++++++++++++++++ > 2 files changed, 163 insertions(+), 116 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/mtd/atmel-nand.txt > create mode 100644 Documentation/devicetree/bindings/mtd/atmel-nand.yaml > > diff --git a/Documentation/devicetree/bindings/mtd/atmel-nand.txt b/Documentation/devicetree/bindings/mtd/atmel-nand.txt > deleted file mode 100644 > index 1934614a9298..000000000000 > --- a/Documentation/devicetree/bindings/mtd/atmel-nand.txt > +++ /dev/null > @@ -1,116 +0,0 @@ > -Deprecated bindings (should not be used in new device trees): > - > -Required properties: > -- compatible: The possible values are: > - "atmel,at91rm9200-nand" > - "atmel,sama5d2-nand" > - "atmel,sama5d4-nand" > -- reg : should specify localbus address and size used for the chip, > - and hardware ECC controller if available. > - If the hardware ECC is PMECC, it should contain address and size for > - PMECC and PMECC Error Location controller. > - The PMECC lookup table address and size in ROM is optional. If not > - specified, driver will build it in runtime. > -- atmel,nand-addr-offset : offset for the address latch. > -- atmel,nand-cmd-offset : offset for the command latch. > -- #address-cells, #size-cells : Must be present if the device has sub-nodes > - representing partitions. > - > -- gpios : specifies the gpio pins to control the NAND device. detect is an > - optional gpio and may be set to 0 if not present. > - > -Optional properties: > -- atmel,nand-has-dma : boolean to support dma transfer for nand read/write. > -- nand-ecc-mode : String, operation mode of the NAND ecc mode, soft by default. > - Supported values are: "none", "soft", "hw", "hw_syndrome", "hw_oob_first", > - "soft_bch". > -- atmel,has-pmecc : boolean to enable Programmable Multibit ECC hardware, > - capable of BCH encoding and decoding, on devices where it is present. > -- atmel,pmecc-cap : error correct capability for Programmable Multibit ECC > - Controller. Supported values are: 2, 4, 8, 12, 24. If the compatible string > - is "atmel,sama5d2-nand", 32 is also valid. > -- atmel,pmecc-sector-size : sector size for ECC computation. Supported values > - are: 512, 1024. > -- atmel,pmecc-lookup-table-offset : includes two offsets of lookup table in ROM > - for different sector size. First one is for sector size 512, the next is for > - sector size 1024. If not specified, driver will build the table in runtime. > -- nand-bus-width : 8 or 16 bus width if not present 8 > -- nand-on-flash-bbt: boolean to enable on flash bbt option if not present false > - > -Nand Flash Controller(NFC) is an optional sub-node > -Required properties: > -- compatible : "atmel,sama5d3-nfc". > -- reg : should specify the address and size used for NFC command registers, > - NFC registers and NFC SRAM. NFC SRAM address and size can be absent > - if don't want to use it. > -- clocks: phandle to the peripheral clock > -Optional properties: > -- atmel,write-by-sram: boolean to enable NFC write by SRAM. > - > -Examples: > -nand0: nand@40000000,0 { > - compatible = "atmel,at91rm9200-nand"; > - #address-cells = <1>; > - #size-cells = <1>; > - reg = <0x40000000 0x10000000 > - 0xffffe800 0x200 > - >; > - atmel,nand-addr-offset = <21>; /* ale */ > - atmel,nand-cmd-offset = <22>; /* cle */ > - nand-on-flash-bbt; > - nand-ecc-mode = "soft"; > - gpios = <&pioC 13 0 /* rdy */ > - &pioC 14 0 /* nce */ > - 0 /* cd */ > - >; > - partition@0 { > - ... > - }; > -}; > - > -/* for PMECC supported chips */ > -nand0: nand@40000000 { > - compatible = "atmel,at91rm9200-nand"; > - #address-cells = <1>; > - #size-cells = <1>; > - reg = < 0x40000000 0x10000000 /* bus addr & size */ > - 0xffffe000 0x00000600 /* PMECC addr & size */ > - 0xffffe600 0x00000200 /* PMECC ERRLOC addr & size */ > - 0x00100000 0x00100000 /* ROM addr & size */ > - >; > - atmel,nand-addr-offset = <21>; /* ale */ > - atmel,nand-cmd-offset = <22>; /* cle */ > - nand-on-flash-bbt; > - nand-ecc-mode = "hw"; > - atmel,has-pmecc; /* enable PMECC */ > - atmel,pmecc-cap = <2>; > - atmel,pmecc-sector-size = <512>; > - atmel,pmecc-lookup-table-offset = <0x8000 0x10000>; > - gpios = <&pioD 5 0 /* rdy */ > - &pioD 4 0 /* nce */ > - 0 /* cd */ > - >; > - partition@0 { > - ... > - }; > -}; > - > -/* for NFC supported chips */ > -nand0: nand@40000000 { > - compatible = "atmel,at91rm9200-nand"; > - #address-cells = <1>; > - #size-cells = <1>; > - ranges; > - ... > - nfc@70000000 { > - compatible = "atmel,sama5d3-nfc"; > - #address-cells = <1>; > - #size-cells = <1>; > - clocks = <&hsmc_clk> > - reg = < > - 0x70000000 0x10000000 /* NFC Command Registers */ > - 0xffffc000 0x00000070 /* NFC HSMC regs */ > - 0x00200000 0x00100000 /* NFC SRAM banks */ > - >; > - }; > -}; > diff --git a/Documentation/devicetree/bindings/mtd/atmel-nand.yaml b/Documentation/devicetree/bindings/mtd/atmel-nand.yaml > new file mode 100644 > index 000000000000..8afc4a144caf > --- /dev/null > +++ b/Documentation/devicetree/bindings/mtd/atmel-nand.yaml > @@ -0,0 +1,163 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/mtd/atmel-nand.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Atmel NAND flash controller > + > +maintainers: > + - Balamanikandan Gunasundar <balamanikandan.gunasundar@microchip.com> > + > +description: | Don't need '|'. > + Atmel nand flash controller. This should not be used for new device > + trees. For the latest controllers refer microchip,nand-controller.yaml This reads more like the h/w changed in newer controllers. Make it clear this is deprecated. You can also put at the top-level: deprecated: true But you should only put that if you plan to update all in tree .dts files to the non-deprecated binding. > + > +properties: > + compatible: > + enum: > + - atmel,at91rm9200-nand > + - atmel,sama5d2-nand > + - atmel,sama5d4-nand > + > + reg: > + description: > + The localbus address and size used for the chip, and hardware ECC > + controller if available. If the hardware ECC is PMECC, it should > + contain address and size for PMECC and PMECC Error Location > + controller. The PMECC lookup table address and size in ROM is > + optional. If not specified, driver will build it in runtime. > + > + atmel,nand-addr-offset: > + description: > + offset for the address latch. > + $ref: /schemas/types.yaml#/definitions/uint32 > + minimum: 0 > + maximum: 31 > + > + atmel,nand-cmd-offset: > + description: > + offset for the command latch. > + $ref: /schemas/types.yaml#/definitions/uint32 > + minimum: 0 > + maximum: 31 > + > + '#address-cells': true 0-3 is okay? > + > + '#size-cells': true 0-2 is okay? > + > + gpios: > + description: > + specifies the gpio pins to control the NAND device. detect is an > + optional gpio and may be set to 0 if not present. Which entry is detect? Need to define what each entry is. > + minItems: 1 > + maxItems: 3 > + > + atmel,nand-has-dma: > + description: > + support dma transfer for nand read/write. > + $ref: /schemas/types.yaml#/definitions/flag > + > + atmel,has-pmecc: > + description: > + enable Programmable Multibit ECC hardware, capable of BCH encoding > + and decoding, on devices where it is present. > + $ref: /schemas/types.yaml#/definitions/flag All vendor specific properties go last. > + > + nand-on-flash-bbt: > + description: > + enable on flash bbt option if not present false > + $ref: /schemas/types.yaml#/definitions/flag > + > + nand-ecc-mode: > + description: > + operation mode of the NAND ecc > + enum: > + [none, soft, hw, hw_syndrome, hw_oob_first, soft_bch] > + default: soft > + $ref: /schemas/types.yaml#/definitions/string You should be referencing mtd/raw-nand-chip.yaml either directly or indirectly. And then drop the type. Same on the others. > + > + > + atmel,pmecc-cap: > + description: > + error correct capability for Programmable Multibit ECC Controller. > + enum: > + [2, 4, 8, 12, 24, 32] > + $ref: /schemas/types.yaml#/definitions/uint32 > + > + atmel,pmecc-sector-size: > + description: > + sector size for ECC computation. > + enum: > + [512, 1024] > + default: 512 > + $ref: /schemas/types.yaml#/definitions/uint32 > + > + > + atmel,pmecc-lookup-table-offset: > + description: > + Two offsets of lookup table in ROM for different sector size. First > + one is for sector size 512, the next is for sector size 1024. If not > + specified, driver will build the table in runtime. > + $ref: /schemas/types.yaml#/definitions/uint32-array > + default: 512 > + > + nand-bus-width: Before vendor specific properties. > + description: > + nand bus width > + enum: > + [8, 16] > + default: 8 > + $ref: /schemas/types.yaml#/definitions/uint32 > + > +required: > + - compatible > + - reg > + - atmel,nand-addr-offset > + - atmel,nand-cmd-offset > + - "#address-cells" > + - "#size-cells" > + > +unevaluatedProperties: false > + > +examples: > + - | > + nand@40000000,0 { Not a correct unit-address. nand-controller is preferred node name. > + compatible = "atmel,at91rm9200-nand"; > + #address-cells = <1>; > + #size-cells = <1>; > + reg = <0x40000000 0x10000000 > + 0xffffe800 0x200>; > + atmel,nand-addr-offset = <21>; /* ale */ > + atmel,nand-cmd-offset = <22>; /* cle */ > + nand-on-flash-bbt; > + nand-ecc-mode = "soft"; > + gpios = <&pioC 13 0 /* rdy */ > + &pioC 14 0 /* nce */ > + 0 /* cd */ > + >; > + }; > + - | > + /* for PMECC supported chips */ > + nand1@40000000 { > + compatible = "atmel,at91rm9200-nand"; > + #address-cells = <1>; > + #size-cells = <1>; > + reg = <0x40000000 0x10000000 /* bus addr & size */ > + 0xffffe000 0x00000600 /* PMECC addr & size */ > + 0xffffe600 0x00000200 /* PMECC ERRLOC addr & size */ > + 0x00100000 0x00100000>; /* ROM addr & size */ > + > + atmel,nand-addr-offset = <21>; /* ale */ > + atmel,nand-cmd-offset = <22>; /* cle */ > + nand-on-flash-bbt; > + nand-ecc-mode = "hw"; > + atmel,has-pmecc; /* enable PMECC */ > + atmel,pmecc-cap = <2>; > + atmel,pmecc-sector-size = <512>; > + atmel,pmecc-lookup-table-offset = <0x8000 0x10000>; > + gpios = <&pioD 5 0 /* rdy */ > + &pioD 4 0 /* nce */ > + 0 /* cd */ > + >; > + }; > -- > 2.34.1 > ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 3/3] dt-bindings: mtd: atmel-nand: add legacy nand controllers 2025-03-11 12:28 ` [PATCH v2 3/3] dt-bindings: mtd: atmel-nand: add legacy nand controllers Balamanikandan Gunasundar 2025-03-11 15:42 ` Rob Herring @ 2025-03-12 9:18 ` kernel test robot 1 sibling, 0 replies; 9+ messages in thread From: kernel test robot @ 2025-03-12 9:18 UTC (permalink / raw) To: Balamanikandan Gunasundar, miquel.raynal, richard, vigneshr, robh, krzk+dt, conor+dt, nicolas.ferre, alexandre.belloni, claudiu.beznea, krzysztof.kozlowski+dt Cc: oe-kbuild-all, balamanikandan.gunasundar, linux-mtd, devicetree, linux-arm-kernel, linux-kernel Hi Balamanikandan, kernel test robot noticed the following build warnings: [auto build test WARNING on mtd/mtd/next] [also build test WARNING on mtd/mtd/fixes robh/for-next linus/master v6.14-rc6 next-20250311] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Balamanikandan-Gunasundar/dt-bindings-mtd-microchip-nand-convert-txt-to-yaml/20250311-203706 base: https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git mtd/next patch link: https://lore.kernel.org/r/20250311122847.90081-4-balamanikandan.gunasundar%40microchip.com patch subject: [PATCH v2 3/3] dt-bindings: mtd: atmel-nand: add legacy nand controllers reproduce: (https://download.01.org/0day-ci/archive/20250312/202503121629.f5Hsa5Zy-lkp@intel.com/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202503121629.f5Hsa5Zy-lkp@intel.com/ All warnings (new ones prefixed by >>): Warning: Documentation/translations/ja_JP/SubmittingPatches references a file that doesn't exist: linux-2.6.12-vanilla/Documentation/dontdiff Warning: Documentation/translations/zh_CN/admin-guide/README.rst references a file that doesn't exist: Documentation/dev-tools/kgdb.rst Warning: Documentation/translations/zh_CN/dev-tools/gdb-kernel-debugging.rst references a file that doesn't exist: Documentation/dev-tools/gdb-kernel-debugging.rst Warning: Documentation/translations/zh_TW/admin-guide/README.rst references a file that doesn't exist: Documentation/dev-tools/kgdb.rst Warning: Documentation/translations/zh_TW/dev-tools/gdb-kernel-debugging.rst references a file that doesn't exist: Documentation/dev-tools/gdb-kernel-debugging.rst >> Warning: MAINTAINERS references a file that doesn't exist: Documentation/devicetree/bindings/mtd/atmel-nand.txt Warning: MAINTAINERS references a file that doesn't exist: Documentation/devicetree/bindings/misc/fsl,qoriq-mc.txt Warning: MAINTAINERS references a file that doesn't exist: Documentation/devicetree/bindings/leds/backlight/ti,lp8864.yaml Warning: lib/Kconfig.debug references a file that doesn't exist: Documentation/dev-tools/fault-injection/fault-injection.rst Using alabaster theme -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2025-03-12 9:18 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-03-11 12:28 [PATCH v2 0/3] dt-bindings: mtd: microchip-nand: convert txt to yaml Balamanikandan Gunasundar 2025-03-11 12:28 ` [PATCH v2 1/3] " Balamanikandan Gunasundar 2025-03-11 14:52 ` Rob Herring (Arm) 2025-03-12 2:46 ` Balamanikandan.Gunasundar 2025-03-11 12:28 ` [PATCH v2 2/3] dt-bindings: mtd: microchip-nand: add atmel pmecc Balamanikandan Gunasundar 2025-03-11 15:27 ` Rob Herring 2025-03-11 12:28 ` [PATCH v2 3/3] dt-bindings: mtd: atmel-nand: add legacy nand controllers Balamanikandan Gunasundar 2025-03-11 15:42 ` Rob Herring 2025-03-12 9:18 ` kernel test robot
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).