]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
dt-bindings: interconnect: qcom: Add Qualcomm MSM8953 NoC
authorVladimir Lypak <vladimir.lypak@gmail.com>
Fri, 28 Jun 2024 14:01:44 +0000 (16:01 +0200)
committerGeorgi Djakov <djakov@kernel.org>
Fri, 28 Jun 2024 18:11:14 +0000 (21:11 +0300)
Add the device-tree bindings for interconnect providers
used on MSM8953 platform.

Signed-off-by: Vladimir Lypak <vladimir.lypak@gmail.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Signed-off-by: Barnabás Czémán <barnabas.czeman@mainlining.org>
Link: https://lore.kernel.org/r/20240628-msm8953-interconnect-v3-1-a70d582182dc@mainlining.org
Signed-off-by: Georgi Djakov <djakov@kernel.org>
Documentation/devicetree/bindings/interconnect/qcom,msm8953.yaml [new file with mode: 0644]
include/dt-bindings/interconnect/qcom,msm8953.h [new file with mode: 0644]

diff --git a/Documentation/devicetree/bindings/interconnect/qcom,msm8953.yaml b/Documentation/devicetree/bindings/interconnect/qcom,msm8953.yaml
new file mode 100644 (file)
index 0000000..732e9fa
--- /dev/null
@@ -0,0 +1,101 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/interconnect/qcom,msm8953.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm MSM8953 Network-On-Chip interconnect
+
+maintainers:
+  - Barnabas Czeman <barnabas.czeman@mainlining.org>
+
+description: |
+  The Qualcomm MSM8953 interconnect providers support adjusting the
+  bandwidth requirements between the various NoC fabrics.
+
+  See also:
+  - dt-bindings/interconnect/qcom,msm8953.h
+
+properties:
+  compatible:
+    enum:
+      - qcom,msm8953-bimc
+      - qcom,msm8953-pcnoc
+      - qcom,msm8953-snoc
+
+  reg:
+    maxItems: 1
+
+  clocks:
+    maxItems: 1
+
+  clock-names:
+    maxItems: 1
+
+  '#interconnect-cells':
+    const: 2
+
+patternProperties:
+  '^interconnect-[a-z0-9\-]+$':
+    type: object
+    $ref: qcom,rpm-common.yaml#
+    unevaluatedProperties: false
+    description:
+      The interconnect providers do not have a separate QoS register space,
+      but share parent's space.
+
+    properties:
+      compatible:
+        const: qcom,msm8953-snoc-mm
+
+    required:
+      - compatible
+      - '#interconnect-cells'
+
+required:
+  - compatible
+  - reg
+  - '#interconnect-cells'
+
+allOf:
+  - $ref: qcom,rpm-common.yaml#
+  - if:
+      properties:
+        compatible:
+          const: qcom,msm8953-pcnoc
+
+    then:
+      properties:
+        clocks:
+          items:
+            - description: PCNOC USB3 AXI Clock.
+
+        clock-names:
+          const: pcnoc_usb3_axi
+
+      required:
+        - clocks
+        - clock-names
+    else:
+      properties:
+        clocks: false
+        clock-names: false
+
+additionalProperties: false
+
+examples:
+  - |
+      #include <dt-bindings/clock/qcom,gcc-msm8953.h>
+
+      snoc: interconnect@580000 {
+          compatible = "qcom,msm8953-snoc";
+          reg = <0x580000 0x16080>;
+
+          #interconnect-cells = <2>;
+
+          snoc_mm: interconnect-snoc {
+              compatible = "qcom,msm8953-snoc-mm";
+
+              #interconnect-cells = <2>;
+          };
+      };
diff --git a/include/dt-bindings/interconnect/qcom,msm8953.h b/include/dt-bindings/interconnect/qcom,msm8953.h
new file mode 100644 (file)
index 0000000..12564c4
--- /dev/null
@@ -0,0 +1,93 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * Qualcomm MSM8953 interconnect IDs
+ */
+
+#ifndef __DT_BINDINGS_INTERCONNECT_QCOM_MSM8953_H
+#define __DT_BINDINGS_INTERCONNECT_QCOM_MSM8953_H
+
+/* BIMC fabric */
+#define MAS_APPS_PROC          0
+#define MAS_OXILI              1
+#define MAS_SNOC_BIMC_0                2
+#define MAS_SNOC_BIMC_2                3
+#define MAS_SNOC_BIMC_1                4
+#define MAS_TCU_0              5
+#define SLV_EBI                        6
+#define SLV_BIMC_SNOC          7
+
+/* PCNOC fabric */
+#define MAS_SPDM               0
+#define MAS_BLSP_1             1
+#define MAS_BLSP_2             2
+#define MAS_USB3               3
+#define MAS_CRYPTO             4
+#define MAS_SDCC_1             5
+#define MAS_SDCC_2             6
+#define MAS_SNOC_PCNOC         7
+#define PCNOC_M_0              8
+#define PCNOC_M_1              9
+#define PCNOC_INT_1            10
+#define PCNOC_INT_2            11
+#define PCNOC_S_0              12
+#define PCNOC_S_1              13
+#define PCNOC_S_2              14
+#define PCNOC_S_3              15
+#define PCNOC_S_4              16
+#define PCNOC_S_6              17
+#define PCNOC_S_7              18
+#define PCNOC_S_8              19
+#define PCNOC_S_9              20
+#define SLV_SPDM               21
+#define SLV_PDM                        22
+#define SLV_TCSR               23
+#define SLV_SNOC_CFG           24
+#define SLV_TLMM               25
+#define SLV_MESSAGE_RAM                26
+#define SLV_BLSP_1             27
+#define SLV_BLSP_2             28
+#define SLV_PRNG               29
+#define SLV_CAMERA_SS_CFG      30
+#define SLV_DISP_SS_CFG                31
+#define SLV_VENUS_CFG          32
+#define SLV_GPU_CFG            33
+#define SLV_SDCC_1             34
+#define SLV_SDCC_2             35
+#define SLV_CRYPTO_0_CFG       36
+#define SLV_PMIC_ARB           37
+#define SLV_USB3               38
+#define SLV_IPA_CFG            39
+#define SLV_TCU                        40
+#define SLV_PCNOC_SNOC         41
+
+/* SNOC fabric */
+#define MAS_QDSS_BAM           0
+#define MAS_BIMC_SNOC          1
+#define MAS_PCNOC_SNOC         2
+#define MAS_IPA                        3
+#define MAS_QDSS_ETR           4
+#define QDSS_INT               5
+#define SNOC_INT_0             6
+#define SNOC_INT_1             7
+#define SNOC_INT_2             8
+#define SLV_KPSS_AHB           9
+#define SLV_WCSS               10
+#define SLV_SNOC_BIMC_1                11
+#define SLV_IMEM               12
+#define SLV_SNOC_PCNOC         13
+#define SLV_QDSS_STM           14
+#define SLV_CATS_1             15
+#define SLV_LPASS              16
+
+/* SNOC-MM fabric */
+#define MAS_JPEG               0
+#define MAS_MDP                        1
+#define MAS_VENUS              2
+#define MAS_VFE0               3
+#define MAS_VFE1               4
+#define MAS_CPP                        5
+#define SLV_SNOC_BIMC_0                6
+#define SLV_SNOC_BIMC_2                7
+#define SLV_CATS_0             8
+
+#endif /* __DT_BINDINGS_INTERCONNECT_QCOM_MSM8953_H */