Skip to contentSkip to conversation

dt-bindings: Drop undocumented i.MX iomuxc-gpr bindings in examples

PATCH In review Rob Herring 3 participants 5 messages Apr 22, 2022 – Apr 26, 2022

Subsystems (3)
lore
Share & tools
lore

Rob Herring

author maintainer
#0 lore raw

PATCH 1/1 dt-bindings: Drop undocumented i.MX iomuxc-gpr bindings in examples

The i.MX iomuxc-gpr bindings are undocumented and a mess. Drop their use from the examples.

The problem with the binding beyond the just random variations is that the iomuxc-gpr is not a separate block, but registers within the iomuxc block containing random leftover controls. As a separate DT node, it creates nodes with overlapping memory addresses.

---
 Documentation/devicetree/bindings/mfd/syscon.yaml  | 8 --------
 Documentation/devicetree/bindings/mux/reg-mux.yaml | 1 -
 2 files changed, 9 deletions(-)
Documentation/devicetree/bindings/mfd/syscon.yaml +0 -8
index 13baa452cc9d..fb784045013f 100644
@@ -100,12 +100,4 @@ examples:
         compatible = "allwinner,sun8i-h3-system-controller", "syscon";
         reg = <0x01c00000 0x1000>;
     };
-
-  - |
-    gpr: iomuxc-gpr@20e0000 {
-        compatible = "fsl,imx6q-iomuxc-gpr", "syscon";
-        reg = <0x020e0000 0x38>;
-        hwlocks = <&hwlock1 1>;
-    };
-
 ...
Documentation/devicetree/bindings/mux/reg-mux.yaml +0 -1
index 60d5746eb39d..df4db96b5391 100644
@@ -96,7 +96,6 @@ examples:
 
     #include <dt-bindings/mux/mux.h>
     syscon@1000 {
-        compatible = "fsl,imx7d-iomuxc-gpr", "fsl,imx6q-iomuxc-gpr", "syscon", "simple-mfd";
         reg = <0x1000 0x100>;
 
         mux2: mux-controller {
Signature · 1 line
2.32.0
Acked-by on v1 1/1
#1 lore raw

Hi!

Quoted 36 lines · Rob Herring

The i.MX iomuxc-gpr bindings are undocumented and a mess. Drop their use from the examples.

The problem with the binding beyond the just random variations is that the iomuxc-gpr is not a separate block, but registers within the iomuxc block containing random leftover controls. As a separate DT node, it creates nodes with overlapping memory addresses.

---
  Documentation/devicetree/bindings/mfd/syscon.yaml  | 8 --------
  Documentation/devicetree/bindings/mux/reg-mux.yaml | 1 -
  2 files changed, 9 deletions(-)
Documentation/devicetree/bindings/mfd/syscon.yaml +0 -8
index 13baa452cc9d..fb784045013f 100644
@@ -100,12 +100,4 @@ examples:
          compatible = "allwinner,sun8i-h3-system-controller", "syscon";
          reg = <0x01c00000 0x1000>;
      };
-
-  - |
-    gpr: iomuxc-gpr@20e0000 {
-        compatible = "fsl,imx6q-iomuxc-gpr", "syscon";
-        reg = <0x020e0000 0x38>;
-        hwlocks = <&hwlock1 1>;
-    };
-
...
Documentation/devicetree/bindings/mux/reg-mux.yaml +0 -0
index 60d5746eb39d..df4db96b5391 100644

Documentation/devicetree/bindings/mux/reg-mux.yaml examples: · line 101

Quoted 7 lines
Documentation/devicetree/bindings/mux/reg-mux.yaml +0 -1
@@ -96,7 +96,6 @@ examples:
 
      #include <dt-bindings/mux/mux.h>
      syscon@1000 {
-        compatible = "fsl,imx7d-iomuxc-gpr", "fsl,imx6q-iomuxc-gpr", "syscon", "simple-mfd";
          reg = <0x1000 0x100>;
 
          mux2: mux-controller {

Hmm, the reg-mux file is "mine" and I have no strong objection since it doesn't really affect what the example is there for, but it does look a bit weird to simply remove the compatible, no? Is that ok?

Either way, fine by me as you're the expert.

Cheers,
Peter

#2 lore raw
In reply to Rob Herring
Quoted 36 lines · Rob Herring

The i.MX iomuxc-gpr bindings are undocumented and a mess. Drop their use from the examples.

The problem with the binding beyond the just random variations is that the iomuxc-gpr is not a separate block, but registers within the iomuxc block containing random leftover controls. As a separate DT node, it creates nodes with overlapping memory addresses.

---
 Documentation/devicetree/bindings/mfd/syscon.yaml  | 8 --------
 Documentation/devicetree/bindings/mux/reg-mux.yaml | 1 -
 2 files changed, 9 deletions(-)
Documentation/devicetree/bindings/mfd/syscon.yaml +0 -8
index 13baa452cc9d..fb784045013f 100644
@@ -100,12 +100,4 @@ examples:
         compatible = "allwinner,sun8i-h3-system-controller", "syscon";
         reg = <0x01c00000 0x1000>;
     };
-
-  - |
-    gpr: iomuxc-gpr@20e0000 {
-        compatible = "fsl,imx6q-iomuxc-gpr", "syscon";
-        reg = <0x020e0000 0x38>;
-        hwlocks = <&hwlock1 1>;
-    };
-
...
Documentation/devicetree/bindings/mux/reg-mux.yaml +0 -0
index 60d5746eb39d..df4db96b5391 100644

Documentation/devicetree/bindings/mux/reg-mux.yaml examples: · line 99

Quoted 5 lines
Documentation/devicetree/bindings/mux/reg-mux.yaml +0 -1
@@ -96,7 +96,6 @@ examples:
 
     #include <dt-bindings/mux/mux.h>
     syscon@1000 {
-        compatible = "fsl,imx7d-iomuxc-gpr", "fsl,imx6q-iomuxc-gpr", "syscon", "simple-mfd";
         reg = <0x1000 0x100>;

Is leaving no compatible the correct solution here?

Do we have another (working) platform that we can use in its place?

Does it make sense to leave the "syscon" and "simple-mfd" entries?

Quoted 1 line
Documentation/devicetree/bindings/mux/reg-mux.yaml +0 -0
         mux2: mux-controller {
Signature · 4 lines
Lee Jones [李琼斯]
Principal Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog
author maintainer
#3 lore raw
Quoted 39 lines · Lee Jones
Quoted 37 lines · Rob Herring

The i.MX iomuxc-gpr bindings are undocumented and a mess. Drop their use from the examples.

The problem with the binding beyond the just random variations is that the iomuxc-gpr is not a separate block, but registers within the iomuxc block containing random leftover controls. As a separate DT node, it creates nodes with overlapping memory addresses.

---
 Documentation/devicetree/bindings/mfd/syscon.yaml  | 8 --------
 Documentation/devicetree/bindings/mux/reg-mux.yaml | 1 -
 2 files changed, 9 deletions(-)
Documentation/devicetree/bindings/mfd/syscon.yaml +0 -8
index 13baa452cc9d..fb784045013f 100644
@@ -100,12 +100,4 @@ examples:
         compatible = "allwinner,sun8i-h3-system-controller", "syscon";
         reg = <0x01c00000 0x1000>;
     };
-
-  - |
-    gpr: iomuxc-gpr@20e0000 {
-        compatible = "fsl,imx6q-iomuxc-gpr", "syscon";
-        reg = <0x020e0000 0x38>;
-        hwlocks = <&hwlock1 1>;
-    };
-
...
Documentation/devicetree/bindings/mux/reg-mux.yaml +0 -0
index 60d5746eb39d..df4db96b5391 100644
@@ -96,7 +96,6 @@ examples:
 
Quoted 6 lines

Documentation/devicetree/bindings/mux/reg-mux.yaml examples: · line 99

Quoted 4 lines
Documentation/devicetree/bindings/mux/reg-mux.yaml +0 -1
     #include <dt-bindings/mux/mux.h>
     syscon@1000 {
-        compatible = "fsl,imx7d-iomuxc-gpr", "fsl,imx6q-iomuxc-gpr", "syscon", "simple-mfd";
         reg = <0x1000 0x100>;

Is leaving no compatible the correct solution here?

Documenting iomuxc-gpr is really the right one, but as I said it is a mess and I'm not touching that.

But compatible is not really important in terms of what the example shows.

Quoted 1 line

Do we have another (working) platform that we can use in its place?

Not one for video muxing that I'm aware of.

Quoted 1 line

Does it make sense to leave the "syscon" and "simple-mfd" entries?

No, because we don't allow those on their own.

Rob

#4 lore raw
Quoted 53 lines · Rob Herring
Quoted 39 lines · Lee Jones
Quoted 37 lines · Rob Herring

The i.MX iomuxc-gpr bindings are undocumented and a mess. Drop their use from the examples.

The problem with the binding beyond the just random variations is that the iomuxc-gpr is not a separate block, but registers within the iomuxc block containing random leftover controls. As a separate DT node, it creates nodes with overlapping memory addresses.

---
 Documentation/devicetree/bindings/mfd/syscon.yaml  | 8 --------
 Documentation/devicetree/bindings/mux/reg-mux.yaml | 1 -
 2 files changed, 9 deletions(-)
Documentation/devicetree/bindings/mfd/syscon.yaml +0 -8
index 13baa452cc9d..fb784045013f 100644
@@ -100,12 +100,4 @@ examples:
         compatible = "allwinner,sun8i-h3-system-controller", "syscon";
         reg = <0x01c00000 0x1000>;
     };
-
-  - |
-    gpr: iomuxc-gpr@20e0000 {
-        compatible = "fsl,imx6q-iomuxc-gpr", "syscon";
-        reg = <0x020e0000 0x38>;
-        hwlocks = <&hwlock1 1>;
-    };
-
...
Documentation/devicetree/bindings/mux/reg-mux.yaml +0 -0
index 60d5746eb39d..df4db96b5391 100644
@@ -96,7 +96,6 @@ examples:
 
Quoted 6 lines

Documentation/devicetree/bindings/mux/reg-mux.yaml examples: · line 99

Quoted 4 lines
Documentation/devicetree/bindings/mux/reg-mux.yaml +0 -1
     #include <dt-bindings/mux/mux.h>
     syscon@1000 {
-        compatible = "fsl,imx7d-iomuxc-gpr", "fsl,imx6q-iomuxc-gpr", "syscon", "simple-mfd";
         reg = <0x1000 0x100>;

Is leaving no compatible the correct solution here?

Documenting iomuxc-gpr is really the right one, but as I said it is a mess and I'm not touching that.

But compatible is not really important in terms of what the example shows.

Quoted 7 lines
Quoted 1 line

Do we have another (working) platform that we can use in its place?

Not one for video muxing that I'm aware of.

Quoted 1 line

Does it make sense to leave the "syscon" and "simple-mfd" entries?

No, because we don't allow those on their own.

Very well. I applied this for now.

... pending any fall-out from the Mux Maintainer. :)

Signature · 4 lines
Lee Jones [李琼斯]
Principal Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog