Skip to contentSkip to conversation

mtd: rawnand: omap_elm: convert DT binding to yaml

PATCH Superseded Roger Quadros 2 participants 11 messages Mar 23, 2022 – Mar 25, 2022

Subsystems (3)

v1 of 3 Superseded Latest is v3 →

lore
Share & tools
lore
#0 lore raw

cover mtd: rawnand: omap_elm: convert DT binding to yaml

Hi,

This series converts omap_elm DT bindings to yaml and adds support for ELM on AM64 SoC.

cheers,
-roger

Roger Quadros (3):
dt-bindings: mtd: ti,elm: Convert to yaml
dt-bindings: mtd: ti,elm: Add support for AM64 ELM
mtd: rawnand: omap_elm: Add compatible for AM64 ELM

 Documentation/devicetree/bindings/mtd/elm.txt | 16 ----
 .../devicetree/bindings/mtd/ti,elm.yaml       | 73 +++++++++++++++++++
 drivers/mtd/nand/raw/omap_elm.c               |  1 +
 3 files changed, 74 insertions(+), 16 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/mtd/elm.txt
 create mode 100644 Documentation/devicetree/bindings/mtd/ti,elm.yaml
Signature · 1 line
2.17.1
#1 lore raw

PATCH 1/3 dt-bindings: mtd: ti,elm: Convert to yaml

Convert elm.txt to ti,elm.yaml.

---
 Documentation/devicetree/bindings/mtd/elm.txt | 16 -------
 .../devicetree/bindings/mtd/ti,elm.yaml       | 48 +++++++++++++++++++
 2 files changed, 48 insertions(+), 16 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/mtd/elm.txt
 create mode 100644 Documentation/devicetree/bindings/mtd/ti,elm.yaml
Documentation/devicetree/bindings/mtd/elm.txt deleted +0 -16
deleted file mode 100644
index 59ddc61c1076..000000000000
@@ -1,16 +0,0 @@
-Error location module
-
-Required properties:
-- compatible: Must be "ti,am3352-elm"
-- reg: physical base address and size of the registers map.
-- interrupts: Interrupt number for the elm.
-
-Optional properties:
-- ti,hwmods: Name of the hwmod associated to the elm
-
-Example:
-elm: elm@0 {
-	compatible = "ti,am3352-elm";
-	reg = <0x48080000 0x2000>;
-	interrupts = <4>;
-};
Documentation/devicetree/bindings/mtd/ti,elm.yaml new file +48 -0

48 lines not on this page · raw message

Signature · 1 line
2.17.1
#2 lore raw

Re: [PATCH 1/3] dt-bindings: mtd: ti,elm: Convert to yaml

Quoted 47 lines · Roger Quadros

Convert elm.txt to ti,elm.yaml.

---
 Documentation/devicetree/bindings/mtd/elm.txt | 16 -------
 .../devicetree/bindings/mtd/ti,elm.yaml       | 48 +++++++++++++++++++
 2 files changed, 48 insertions(+), 16 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/mtd/elm.txt
 create mode 100644 Documentation/devicetree/bindings/mtd/ti,elm.yaml
Documentation/devicetree/bindings/mtd/elm.txt deleted +0 -16
deleted file mode 100644
index 59ddc61c1076..000000000000
@@ -1,16 +0,0 @@
-Error location module
-
-Required properties:
-- compatible: Must be "ti,am3352-elm"
-- reg: physical base address and size of the registers map.
-- interrupts: Interrupt number for the elm.
-
-Optional properties:
-- ti,hwmods: Name of the hwmod associated to the elm
-
-Example:
-elm: elm@0 {
-	compatible = "ti,am3352-elm";
-	reg = <0x48080000 0x2000>;
-	interrupts = <4>;
-};
Documentation/devicetree/bindings/mtd/ti,elm.yaml new file +9 -0
new file mode 100644
index 000000000000..24ed0fb84204
@@ -0,0 +1,48 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mtd/ti,elm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments Error Location Module (ELM).
+
+maintainers:

Documentation/devicetree/bindings/mtd/ti,elm.yaml line 19

Quoted 10 lines
Documentation/devicetree/bindings/mtd/ti,elm.yaml new file +10 -0
+  - Roger Quadros <[email protected]>
+
+description:
+  ELM module is used together with GPMC and NAND Flash to detect
+  errors and the location of the error based on BCH algorithms
+  so they can be corrected if possible.
+
+properties:
+  compatible:
+    items:

No items, just const.

Quoted 4 lines
Documentation/devicetree/bindings/mtd/ti,elm.yaml new file +4 -0
+      - const: ti,am3352-elm
+
+  reg:
+    maxItems: 1

Documentation/devicetree/bindings/mtd/ti,elm.yaml line 33

Quoted 10 lines
Documentation/devicetree/bindings/mtd/ti,elm.yaml new file +10 -0
+
+  interrupts:
+    maxItems: 1
+
+  ti,hwmods:
+    description:
+      Name of the HWMOD associated with ELM. This is for legacy
+      platforms only.
+    $ref: /schemas/types.yaml#/definitions/string
+    deprecated: true

It was not deprecated before. Could you explain it in commit msg because it is not a conversion only.

Documentation/devicetree/bindings/mtd/ti,elm.yaml line 44

Quoted 11 lines
Documentation/devicetree/bindings/mtd/ti,elm.yaml new file +11 -0
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    elm: elm@0 {

This is error correction, right? So generic node name "ecc"?

Documentation/devicetree/bindings/mtd/ti,elm.yaml line 48

Quoted 4 lines
Documentation/devicetree/bindings/mtd/ti,elm.yaml new file +4 -0
+        compatible = "ti,am3352-elm";
+        reg = <0x0 0x2000>;
+        interrupts = <4>;
+    };

Best regards,
Krzysztof

#3 lore raw

Re: [PATCH 1/3] dt-bindings: mtd: ti,elm: Convert to yaml

Hi Krzysztof,

Quoted 52 lines · Krzysztof Kozlowski
Quoted 51 lines · Roger Quadros

Convert elm.txt to ti,elm.yaml.

---
 Documentation/devicetree/bindings/mtd/elm.txt | 16 -------
 .../devicetree/bindings/mtd/ti,elm.yaml       | 48 +++++++++++++++++++
 2 files changed, 48 insertions(+), 16 deletions(-)
 delete mode 100644 Documentation/devicetree/bindings/mtd/elm.txt
 create mode 100644 Documentation/devicetree/bindings/mtd/ti,elm.yaml
Documentation/devicetree/bindings/mtd/elm.txt deleted +0 -16
deleted file mode 100644
index 59ddc61c1076..000000000000
@@ -1,16 +0,0 @@
-Error location module
-
-Required properties:
-- compatible: Must be "ti,am3352-elm"
-- reg: physical base address and size of the registers map.
-- interrupts: Interrupt number for the elm.
-
-Optional properties:
-- ti,hwmods: Name of the hwmod associated to the elm
-
-Example:
-elm: elm@0 {
-	compatible = "ti,am3352-elm";
-	reg = <0x48080000 0x2000>;
-	interrupts = <4>;
-};
Documentation/devicetree/bindings/mtd/ti,elm.yaml new file +13 -0
new file mode 100644
index 000000000000..24ed0fb84204
@@ -0,0 +1,48 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mtd/ti,elm.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Texas Instruments Error Location Module (ELM).
+
+maintainers:
+  - Roger Quadros <[email protected]>
+
+description:
+  ELM module is used together with GPMC and NAND Flash to detect
Quoted 8 lines

Documentation/devicetree/bindings/mtd/ti,elm.yaml line 19

Quoted 6 lines
Documentation/devicetree/bindings/mtd/ti,elm.yaml new file +6 -0
+  errors and the location of the error based on BCH algorithms
+  so they can be corrected if possible.
+
+properties:
+  compatible:
+    items:

No items, just const.

OK.

Quoted 10 lines
Quoted 10 lines
Documentation/devicetree/bindings/mtd/ti,elm.yaml new file +9 -0
+      - const: ti,am3352-elm
+
+  reg:
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  ti,hwmods:
Quoted 8 lines

Documentation/devicetree/bindings/mtd/ti,elm.yaml line 33

Quoted 5 lines
Documentation/devicetree/bindings/mtd/ti,elm.yaml new file +5 -0
+    description:
+      Name of the HWMOD associated with ELM. This is for legacy
+      platforms only.
+    $ref: /schemas/types.yaml#/definitions/string
+    deprecated: true

It was not deprecated before. Could you explain it in commit msg because it is not a conversion only.

OK I will mention that hwmod usage is not recommended for new platforms.

Quoted 15 lines

Documentation/devicetree/bindings/mtd/ti,elm.yaml line 44

Quoted 12 lines
Documentation/devicetree/bindings/mtd/ti,elm.yaml new file +11 -0
+
+required:
+  - compatible
+  - reg
+  - interrupts
+
+additionalProperties: false
+
+examples:
+  - |
+    elm: elm@0 {

This is error correction, right? So generic node name "ecc"?

Quoted 8 lines

Documentation/devicetree/bindings/mtd/ti,elm.yaml line 48

Quoted 4 lines
Documentation/devicetree/bindings/mtd/ti,elm.yaml new file +4 -0
+        compatible = "ti,am3352-elm";
+        reg = <0x0 0x2000>;
+        interrupts = <4>;
+    };

Best regards,
Krzysztof

cheers,
-roger

#4 lore raw

PATCH 2/3 dt-bindings: mtd: ti,elm: Add support for AM64 ELM

In reply to Roger Quadros

TI's AM64 SoC has the Error Locator Module. Add compatible and related properties to support ELM on AM64 SoC.

---
 .../devicetree/bindings/mtd/ti,elm.yaml       | 27 ++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)
Documentation/devicetree/bindings/mtd/ti,elm.yaml +26 -1
index 24ed0fb84204..bc01d35ce605 100644
@@ -17,7 +17,9 @@ description:
 properties:
   compatible:
     items:
-      - const: ti,am3352-elm
+      - enum:
+          - ti,am3352-elm
+          - ti,am64-elm
 
   reg:
     maxItems: 1
@@ -25,6 +27,17 @@ properties:
   interrupts:
     maxItems: 1
 
+  clocks:
+    maxItems: 1
+    description: Functional clock.
+
+  clock-names:
+    items:
+      - const: fck
+
+  power-domains:
+    maxItems: 1
+
   ti,hwmods:
     description:
       Name of the HWMOD associated with ELM. This is for legacy
@@ -37,6 +50,18 @@ required:
   - reg
   - interrupts
 
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: ti,am64-elm
+    then:
+      required:
+        - clocks
+        - clock-names
+        - power-domains
+
 additionalProperties: false
 
 examples:
Signature · 1 line
2.17.1
#5 lore raw

Re: [PATCH 2/3] dt-bindings: mtd: ti,elm: Add support for AM64 ELM

Quoted 46 lines · Roger Quadros

TI's AM64 SoC has the Error Locator Module. Add compatible and related properties to support ELM on AM64 SoC.

---
 .../devicetree/bindings/mtd/ti,elm.yaml       | 27 ++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)
Documentation/devicetree/bindings/mtd/ti,elm.yaml +15 -1
index 24ed0fb84204..bc01d35ce605 100644
@@ -17,7 +17,9 @@ description:
 properties:
   compatible:
     items:
-      - const: ti,am3352-elm
+      - enum:
+          - ti,am3352-elm
+          - ti,am64-elm
 
   reg:
     maxItems: 1
@@ -25,6 +27,17 @@ properties:
   interrupts:
     maxItems: 1
 
+  clocks:
+    maxItems: 1
+    description: Functional clock.
+
+  clock-names:
+    items:
+      - const: fck
+
+  power-domains:
+    maxItems: 1
+
   ti,hwmods:
     description:
       Name of the HWMOD associated with ELM. This is for legacy
@@ -37,6 +50,18 @@ required:
   - reg
   - interrupts
 
+allOf:

Documentation/devicetree/bindings/mtd/ti,elm.yaml required: · line 63

Quoted 10 lines
Documentation/devicetree/bindings/mtd/ti,elm.yaml +10 -0
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: ti,am64-elm
+    then:
+      required:
+        - clocks
+        - clock-names
+        - power-domains

Are these new properties also valid for am3352?

Documentation/devicetree/bindings/mtd/ti,elm.yaml required: · line 67

Quoted 4 lines
Documentation/devicetree/bindings/mtd/ti,elm.yaml +1 -0
+
 additionalProperties: false
 
 examples:

Best regards,
Krzysztof

#6 lore raw

Re: [PATCH 2/3] dt-bindings: mtd: ti,elm: Add support for AM64 ELM

Quoted 46 lines · Krzysztof Kozlowski
Quoted 45 lines · Roger Quadros

TI's AM64 SoC has the Error Locator Module. Add compatible and related properties to support ELM on AM64 SoC.

---
 .../devicetree/bindings/mtd/ti,elm.yaml       | 27 ++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)
Documentation/devicetree/bindings/mtd/ti,elm.yaml +14 -1
index 24ed0fb84204..bc01d35ce605 100644
@@ -17,7 +17,9 @@ description:
 properties:
   compatible:
     items:
-      - const: ti,am3352-elm
+      - enum:
+          - ti,am3352-elm
+          - ti,am64-elm
 
   reg:
     maxItems: 1
@@ -25,6 +27,17 @@ properties:
   interrupts:
     maxItems: 1
 
+  clocks:
+    maxItems: 1
+    description: Functional clock.
+
+  clock-names:
+    items:
+      - const: fck
+
+  power-domains:
+    maxItems: 1
+
   ti,hwmods:
     description:
       Name of the HWMOD associated with ELM. This is for legacy
@@ -37,6 +50,18 @@ required:
   - reg
   - interrupts
 
Quoted 13 lines

Documentation/devicetree/bindings/mtd/ti,elm.yaml required: · line 63

Quoted 11 lines
Documentation/devicetree/bindings/mtd/ti,elm.yaml +11 -0
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: ti,am64-elm
+    then:
+      required:
+        - clocks
+        - clock-names
+        - power-domains

Are these new properties also valid for am3352?

No they are not required for am3352-elm. Only required for K3 based platforms like AM64.

Quoted 9 lines

Documentation/devicetree/bindings/mtd/ti,elm.yaml required: · line 67

Quoted 5 lines
Documentation/devicetree/bindings/mtd/ti,elm.yaml +1 -0
+
 additionalProperties: false
 
 examples:

Best regards,
Krzysztof

cheers,
-roger

#7 lore raw

Re: [PATCH 2/3] dt-bindings: mtd: ti,elm: Add support for AM64 ELM

Quoted 63 lines · Roger Quadros
Quoted 46 lines · Krzysztof Kozlowski
Quoted 45 lines · Roger Quadros

TI's AM64 SoC has the Error Locator Module. Add compatible and related properties to support ELM on AM64 SoC.

---
 .../devicetree/bindings/mtd/ti,elm.yaml       | 27 ++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)
Documentation/devicetree/bindings/mtd/ti,elm.yaml +14 -1
index 24ed0fb84204..bc01d35ce605 100644
@@ -17,7 +17,9 @@ description:
 properties:
   compatible:
     items:
-      - const: ti,am3352-elm
+      - enum:
+          - ti,am3352-elm
+          - ti,am64-elm
 
   reg:
     maxItems: 1
@@ -25,6 +27,17 @@ properties:
   interrupts:
     maxItems: 1
 
+  clocks:
+    maxItems: 1
+    description: Functional clock.
+
+  clock-names:
+    items:
+      - const: fck
+
+  power-domains:
+    maxItems: 1
+
   ti,hwmods:
     description:
       Name of the HWMOD associated with ELM. This is for legacy
@@ -37,6 +50,18 @@ required:
   - reg
   - interrupts
 
Quoted 13 lines

Documentation/devicetree/bindings/mtd/ti,elm.yaml required: · line 63

Quoted 11 lines
Documentation/devicetree/bindings/mtd/ti,elm.yaml +11 -0
+allOf:
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: ti,am64-elm
+    then:
+      required:
+        - clocks
+        - clock-names
+        - power-domains

Are these new properties also valid for am3352?

Quoted 2 lines

No they are not required for am3352-elm. Only required for K3 based platforms like AM64.

I understand they are not required, but I asked if they are valid. IOW, whether ELM in am3352 also is part of power domain and has clock input?

Best regards,
Krzysztof

#8 lore raw

Re: [PATCH 2/3] dt-bindings: mtd: ti,elm: Add support for AM64 ELM

Quoted 64 lines · Krzysztof Kozlowski
Quoted 63 lines · Roger Quadros
Quoted 59 lines · Krzysztof Kozlowski
Quoted 46 lines · Roger Quadros

TI's AM64 SoC has the Error Locator Module. Add compatible and related properties to support ELM on AM64 SoC.

---
 .../devicetree/bindings/mtd/ti,elm.yaml       | 27 ++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)
Documentation/devicetree/bindings/mtd/ti,elm.yaml +15 -1
index 24ed0fb84204..bc01d35ce605 100644
@@ -17,7 +17,9 @@ description:
 properties:
   compatible:
     items:
-      - const: ti,am3352-elm
+      - enum:
+          - ti,am3352-elm
+          - ti,am64-elm
 
   reg:
     maxItems: 1
@@ -25,6 +27,17 @@ properties:
   interrupts:
     maxItems: 1
 
+  clocks:
+    maxItems: 1
+    description: Functional clock.
+
+  clock-names:
+    items:
+      - const: fck
+
+  power-domains:
+    maxItems: 1
+
   ti,hwmods:
     description:
       Name of the HWMOD associated with ELM. This is for legacy
@@ -37,6 +50,18 @@ required:
   - reg
   - interrupts
 
+allOf:

Documentation/devicetree/bindings/mtd/ti,elm.yaml required: · line 63

Quoted 10 lines
Documentation/devicetree/bindings/mtd/ti,elm.yaml +10 -0
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: ti,am64-elm
+    then:
+      required:
+        - clocks
+        - clock-names
+        - power-domains

Are these new properties also valid for am3352?

Quoted 5 lines
Quoted 2 lines

No they are not required for am3352-elm. Only required for K3 based platforms like AM64.

I understand they are not required, but I asked if they are valid. IOW, whether ELM in am3352 also is part of power domain and has clock input?

Yes it does have power and clock domains but they are handled a bit differently on AM335x platform. i.e. in the parent node

e.g.

               target-module@80000 {                   /* 0x48080000, ap 38 18.0 */
                        compatible = "ti,sysc-omap2", "ti,sysc";
                        reg = <0x80000 0x4>,
                              <0x80010 0x4>,
                              <0x80014 0x4>;
                        reg-names = "rev", "sysc", "syss";
                        ti,sysc-mask = <(SYSC_OMAP2_CLOCKACTIVITY |
                                         SYSC_OMAP2_SOFTRESET |
                                         SYSC_OMAP2_AUTOIDLE)>;
                        ti,sysc-sidle = <SYSC_IDLE_FORCE>,
                                        <SYSC_IDLE_NO>,
                                        <SYSC_IDLE_SMART>;
                        ti,syss-mask = <1>;
                        /* Domains (P, C): per_pwrdm, l4ls_clkdm */
                        clocks = <&l4ls_clkctrl AM3_L4LS_ELM_CLKCTRL 0>;
                        clock-names = "fck";
                        #address-cells = <1>;
                        #size-cells = <1>;
                        ranges = <0x0 0x80000 0x10000>;

                        elm: elm@0 {
                                compatible = "ti,am3352-elm";
                                reg = <0x0 0x2000>;
                                interrupts = <4>;
                                status = "disabled";
                        };
                };

cheers,
-roger

#9 lore raw

Re: [PATCH 2/3] dt-bindings: mtd: ti,elm: Add support for AM64 ELM

Quoted 67 lines · Roger Quadros
Quoted 64 lines · Krzysztof Kozlowski
Quoted 63 lines · Roger Quadros
Quoted 59 lines · Krzysztof Kozlowski
Quoted 46 lines · Roger Quadros

TI's AM64 SoC has the Error Locator Module. Add compatible and related properties to support ELM on AM64 SoC.

---
 .../devicetree/bindings/mtd/ti,elm.yaml       | 27 ++++++++++++++++++-
 1 file changed, 26 insertions(+), 1 deletion(-)
Documentation/devicetree/bindings/mtd/ti,elm.yaml +15 -1
index 24ed0fb84204..bc01d35ce605 100644
@@ -17,7 +17,9 @@ description:
 properties:
   compatible:
     items:
-      - const: ti,am3352-elm
+      - enum:
+          - ti,am3352-elm
+          - ti,am64-elm
 
   reg:
     maxItems: 1
@@ -25,6 +27,17 @@ properties:
   interrupts:
     maxItems: 1
 
+  clocks:
+    maxItems: 1
+    description: Functional clock.
+
+  clock-names:
+    items:
+      - const: fck
+
+  power-domains:
+    maxItems: 1
+
   ti,hwmods:
     description:
       Name of the HWMOD associated with ELM. This is for legacy
@@ -37,6 +50,18 @@ required:
   - reg
   - interrupts
 
+allOf:

Documentation/devicetree/bindings/mtd/ti,elm.yaml required: · line 63

Quoted 10 lines
Documentation/devicetree/bindings/mtd/ti,elm.yaml +10 -0
+  - if:
+      properties:
+        compatible:
+          contains:
+            const: ti,am64-elm
+    then:
+      required:
+        - clocks
+        - clock-names
+        - power-domains

Are these new properties also valid for am3352?

Quoted 8 lines
Quoted 5 lines
Quoted 2 lines

No they are not required for am3352-elm. Only required for K3 based platforms like AM64.

I understand they are not required, but I asked if they are valid. IOW, whether ELM in am3352 also is part of power domain and has clock input?

Yes it does have power and clock domains but they are handled a bit differently on AM335x platform. i.e. in the parent node

Then I guess it can stay like this. Otherwise (if there is no clock input) "else:" with "clocks:false" would be expected.

Best regards,
Krzysztof

#10 lore raw

PATCH 3/3 mtd: rawnand: omap_elm: Add compatible for AM64 ELM

In reply to Roger Quadros

The AM64 SoC has the Error Locator Module. Add compatible id for it.

---
 drivers/mtd/nand/raw/omap_elm.c | 1 +
 1 file changed, 1 insertion(+)
drivers/mtd/nand/raw/omap_elm.c +1 -0
index db105d9b560c..aa7f49c3f372 100644
@@ -550,6 +550,7 @@ static SIMPLE_DEV_PM_OPS(elm_pm_ops, elm_suspend, elm_resume);
 #ifdef CONFIG_OF
 static const struct of_device_id elm_of_match[] = {
 	{ .compatible = "ti,am3352-elm" },
+	{ .compatible = "ti,am64-elm" },
 	{},
 };
 MODULE_DEVICE_TABLE(of, elm_of_match);
Signature · 6 lines
2.17.1


______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/