Thread (14 messages) 14 messages, 3 authors, 2018-08-31

Re: [Patch v15 4/5] dt-bindings: arm-smmu: Add bindings for qcom, smmu-v2

From: Rob Herring <hidden>
Date: 2018-08-30 00:43:45
Also in: linux-arm-msm, linux-iommu, linux-pm, lkml

On Wed, Aug 29, 2018 at 6:23 AM Vivek Gautam
[off-list ref] wrote:
quoted hunk ↗ jump to hunk
On Wed, Aug 29, 2018 at 2:05 PM Vivek Gautam
[off-list ref] wrote:
quoted
Hi Rob,


On 8/29/2018 2:04 AM, Rob Herring wrote:
quoted
On Mon, Aug 27, 2018 at 04:25:50PM +0530, Vivek Gautam wrote:
quoted
Add bindings doc for Qcom's smmu-v2 implementation.

Signed-off-by: Vivek Gautam <redacted>
Reviewed-by: Tomasz Figa <tfiga@chromium.org>
Tested-by: Srinivas Kandagatla <redacted>
---

Changes since v14:
  - This is a new patch added in v15 after noticing the new
    checkpatch warning for separate dt-bindings doc.
  - This patch also addresses comments given by Rob and Robin to add
    a list of valid values of '<soc>' in "qcom,<soc>-smmu-v2"
    compatible string.

  .../devicetree/bindings/iommu/arm,smmu.txt         | 47 ++++++++++++++++++++++
  1 file changed, 47 insertions(+)
diff --git a/Documentation/devicetree/bindings/iommu/arm,smmu.txt b/Documentation/devicetree/bindings/iommu/arm,smmu.txt
index 8a6ffce12af5..52198a539606 100644
--- a/Documentation/devicetree/bindings/iommu/arm,smmu.txt
+++ b/Documentation/devicetree/bindings/iommu/arm,smmu.txt
@@ -17,10 +17,24 @@ conditions.
                          "arm,mmu-401"
                          "arm,mmu-500"
                          "cavium,smmu-v2"
+                        "qcom,<soc>-smmu-v2", "qcom,smmu-v2"
The v2 in the compatible string is kind of redundant unless the SoC has
other SMMU types.
sdm845 has smmu-v2, and smmu-500 [1].
quoted
quoted
                    depending on the particular implementation and/or the
                    version of the architecture implemented.

+                  A number of Qcom SoCs use qcom,smmu-v2 version of the IP.
+                  "qcom,<soc>-smmu-v2" represents a soc specific compatible
+                  string that should be present along with the "qcom,smmu-v2"
+                  to facilitate SoC specific clocks/power connections and to
+                  address specific bug fixes.
+                  '<soc>' string in "qcom,<soc>-smmu-v2" should be one of the
+                  following:
+                  msm8996 - for msm8996 Qcom SoC.
+                  sdm845 - for sdm845 Qcom Soc.
Rather than all this prose, it would be simpler to just add 2 lines with
the full compatibles rather than <soc>. The <soc> thing is not going to
work when/if we move bindings to json-schema also.
then we keep adding
          "qcom,msm8996-smmu-v2", "qcom,smmu-v2"
          "qcom,msm8998-smmu-v2", "qcom,smmu-v2"
          "qcom,sdm845-smmu-v2", "qcom,smmu-v2",
and from [1]
          "qcom,sdm845-smmu-500", "arm,mmu-500", etc.
for each SoCs?
How about following diff on top of this patch?
diff --git a/Documentation/devicetree/bindings/iommu/arm,smmu.txt
b/Documentation/devicetree/bindings/iommu/arm,smmu.txt
index 52198a539606..5e6c04876533 100644
--- a/Documentation/devicetree/bindings/iommu/arm,smmu.txt
+++ b/Documentation/devicetree/bindings/iommu/arm,smmu.txt
@@ -17,23 +17,18 @@ conditions.
                         "arm,mmu-401"
                         "arm,mmu-500"
                         "cavium,smmu-v2"
-                        "qcom,<soc>-smmu-v2", "qcom,smmu-v2"
+                        "qcom,smmu-v2"

                   depending on the particular implementation and/or the
                   version of the architecture implemented.

-                  A number of Qcom SoCs use qcom,smmu-v2 version of the IP.
-                  "qcom,<soc>-smmu-v2" represents a soc specific compatible
-                  string that should be present along with the "qcom,smmu-v2"
-                  to facilitate SoC specific clocks/power connections and to
-                  address specific bug fixes.
-                  '<soc>' string in "qcom,<soc>-smmu-v2" should be one of the
-                  following:
-                  msm8996 - for msm8996 Qcom SoC.
-                  sdm845 - for sdm845 Qcom Soc.
-
-                  An example string would be -
-                  "qcom,msm8996-smmu-v2", "qcom,smmu-v2".
+                  Qcom SoCs using qcom,smmu-v2 must have soc specific
+                  compatible string attached to "qcom,smmu-v2" to take care
+                  of SoC specific clocks/power connections and to address
+                  specific bug fixes.
+                  Precisely, it should be one of the following:
+                  "qcom,msm8996-smmu-v2", "qcom,smmu-v2",
+                  "qcom,sdm845-smmu-v2", "qcom,smmu-v2".
We don't need an explanation of why we need specific compatibles in
each binding document (though maybe we need a better explanation
somewhere). We just need to know what are valid values for compatibles
and this includes any combinations. Generally, this is just a list of
combinations.

The Renesas folks have figured out how to do this and they have lots
of SoCs. Yes, it makes for a lot of patches, but they are all mostly 1
liners and are dead simple to review. With QCom, I'm tired of having
the same damn discussion with every new binding.

Rob
_______________________________________________
Freedreno mailing list
Freedreno@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/freedreno
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help