Re: [PATCH v2 7/7] arm64: dts: qcom: sm8250: add interconnect nodes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 7/24/20 12:55 PM, Sibi Sankar wrote:
On 2020-07-24 20:06, Jonathan Marek wrote:
On 7/24/20 10:13 AM, Sibi Sankar wrote:
Hey Jonathan,

Thanks for the patch! Please use the
suggested register space definitions
instead.


Thanks for the suggestions, I was unsure what to use for the sizes.
The reg field is unused by the upstream driver so it is hard to figure
out.

However, I'm not sure about some of your suggestions for the base
address. For example, for "mc_virt" you suggest 0x0163d000, and I have
0x09100000. In the downstream dts, "mc_virt-base" is 0x9100000 and
qcom,base-offset for fab_mc_virt is 0. Do you have an explanation for
why your suggestion is so different?

AFAIK for providers with virt suffix the
register space definition is just an
arbitrary choice and doesn't matter.
Since mc_virt was just re-using gem_noc
address space I suggested we stick to
how it was done on sc7180 i.e place it
between system_noc and aggre1_noc.


I sent a v3 with most of your suggestions applied as-is, except for:
- sm8150: aggre2_noc, reduced size to 0x20000 to avoid overlap with compute_noc region - sm8250: compute_noc, reduced size to 0xa180 to avoid overlap with mmss_noc region (could have been 0xd000, but 0xa180 makes it match the region in the downstream dts, so seemed more likely to be correct)

I did notice other inconsistencies, but since this is unused by the upstream driver I don't want to think about it too much..


On 2020-07-13 21:11, Jonathan Marek wrote:
Add the interconnect dts nodes for sm8250.

Signed-off-by: Jonathan Marek <jonathan@xxxxxxxx>
---
 arch/arm64/boot/dts/qcom/sm8250.dtsi | 82 ++++++++++++++++++++++++++++
 1 file changed, 82 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sm8250.dtsi
b/arch/arm64/boot/dts/qcom/sm8250.dtsi
index 636e2196138c..dfc1b7fa7d85 100644
--- a/arch/arm64/boot/dts/qcom/sm8250.dtsi
+++ b/arch/arm64/boot/dts/qcom/sm8250.dtsi
@@ -11,6 +11,7 @@
 #include <dt-bindings/power/qcom-aoss-qmp.h>
 #include <dt-bindings/power/qcom-rpmpd.h>
 #include <dt-bindings/soc/qcom,rpmh-rsc.h>
+#include <dt-bindings/interconnect/qcom,sm8250.h>

please fix ^^ sort order


 / {
     interrupt-parent = <&intc>;
@@ -978,6 +979,55 @@ spi13: spi@a94000 {
             };
         };

+        config_noc: interconnect@1500000 {
+            compatible = "qcom,sm8250-config-noc";
+            reg = <0 0x01500000 0 0x1000>;

0x01500000 0xa580

+            #interconnect-cells = <1>;
+            qcom,bcm-voters = <&apps_bcm_voter>;
+        };
+
+        ipa_virt: interconnect@1620000 {
+            compatible = "qcom,sm8250-ipa-virt";
+            reg = <0 0x01620000 0 0x1000>;

0x01e00000 0x1000

+            #interconnect-cells = <1>;
+            qcom,bcm-voters = <&apps_bcm_voter>;
+        };
+
+        system_noc: interconnect@1632000 {
+            compatible = "qcom,sm8250-system-noc";
+            reg = <0 0x01632000 0 0x1000>;

0x01620000 0x1C200

+            #interconnect-cells = <1>;
+            qcom,bcm-voters = <&apps_bcm_voter>;
+        };
+
+        aggre1_noc: interconnect@16e2000 {
+            compatible = "qcom,sm8250-aggre1-noc";
+            reg = <0 0x016e2000 0 0x1000>;

0x016e0000 0x1f180

+            #interconnect-cells = <1>;
+            qcom,bcm-voters = <&apps_bcm_voter>;
+        };
+
+        aggre2_noc: interconnect@1703000 {
+            compatible = "qcom,sm8250-aggre2-noc";
+            reg = <0 0x01703000 0 0x1000>;

0x01700000 0x33000

+            #interconnect-cells = <1>;
+            qcom,bcm-voters = <&apps_bcm_voter>;
+        };
+
+        compute_noc: interconnect@1733000 {
+            compatible = "qcom,sm8250-compute-noc";
+            reg = <0 0x01733000 0 0x1000>;

0x01733000 0xd180

+            #interconnect-cells = <1>;
+            qcom,bcm-voters = <&apps_bcm_voter>;
+        };
+
+        mmss_noc: interconnect@174a000 {
+            compatible = "qcom,sm8250-mmss-noc";
+            reg = <0 0x0174a000 0 0x1000>;

0x01740000 0x1f080

+            #interconnect-cells = <1>;
+            qcom,bcm-voters = <&apps_bcm_voter>;
+        };
+
         ufs_mem_hc: ufshc@1d84000 {
             compatible = "qcom,sm8250-ufshc", "qcom,ufshc",
                      "jedec,ufs-2.0";
@@ -1364,6 +1414,34 @@ usb_2_ssphy: lane@88eb200 {
             };
         };

+        dc_noc: interconnect@90c0000 {
+            compatible = "qcom,sm8250-dc-noc";
+            reg = <0 0x090c0000 0 0x1000>;

0x090c0000 0x4200

+            #interconnect-cells = <1>;
+            qcom,bcm-voters = <&apps_bcm_voter>;
+        };
+
+        mc_virt: interconnect@9100000 {
+            compatible = "qcom,sm8250-mc-virt";
+            reg = <0 0x09100000 0 0x1000>;

0x0163d000 0x1000

+            #interconnect-cells = <1>;
+            qcom,bcm-voters = <&apps_bcm_voter>;
+        };
+
+        gem_noc: interconnect@9121000 {
+            compatible = "qcom,sm8250-gem-noc";
+            reg = <0 0x09121000 0 0x1000>;

0x09100000 0xb4000

+            #interconnect-cells = <1>;
+            qcom,bcm-voters = <&apps_bcm_voter>;
+        };
+
+        npu_noc: interconnect@9990000 {
+            compatible = "qcom,sm8250-npu-noc";
+            reg = <0 0x09990000 0 0x1000>;

0x09990000 0x1600

+            #interconnect-cells = <1>;
+            qcom,bcm-voters = <&apps_bcm_voter>;
+        };
+
         usb_1: usb@a6f8800 {
             compatible = "qcom,sm8250-dwc3", "qcom,dwc3";
             reg = <0 0x0a6f8800 0 0x400>;
@@ -2359,6 +2437,10 @@ rpmhpd_opp_turbo_l1: opp10 {
                     };
                 };
             };
+
+            apps_bcm_voter: bcm_voter {
+                compatible = "qcom,bcm-voter";
+            };
         };
     };





[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux