xref: /linux/Documentation/devicetree/bindings/interconnect/qcom,sm6115.yaml (revision 3a2c4d55e32ad65efebdb6de44eef3bfa08bb49d)
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/interconnect/qcom,sm6115.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm SM6115 Network-On-Chip interconnect
8
9maintainers:
10  - Konrad Dybcio <konradybcio@kernel.org>
11
12description:
13  The Qualcomm SM6115 interconnect providers support adjusting the
14  bandwidth requirements between the various NoC fabrics.
15
16properties:
17  compatible:
18    enum:
19      - qcom,sm6115-bimc
20      - qcom,sm6115-cnoc
21      - qcom,sm6115-snoc
22
23  reg:
24    maxItems: 1
25
26  clocks:
27    minItems: 1
28    maxItems: 4
29
30  clock-names:
31    minItems: 1
32    maxItems: 4
33
34# Child node's properties
35patternProperties:
36  '^interconnect-[a-z0-9]+$':
37    type: object
38    description:
39      The interconnect providers do not have a separate QoS register space,
40      but share parent's space.
41
42    $ref: qcom,rpm-common.yaml#
43
44    properties:
45      compatible:
46        enum:
47          - qcom,sm6115-clk-virt
48          - qcom,sm6115-mmrt-virt
49          - qcom,sm6115-mmnrt-virt
50
51    required:
52      - compatible
53
54    unevaluatedProperties: false
55
56required:
57  - compatible
58  - reg
59
60allOf:
61  - $ref: qcom,rpm-common.yaml#
62  - if:
63      properties:
64        compatible:
65          const: qcom,sm6115-bimc
66    then:
67      properties:
68        clocks: false
69        clock-names: false
70      patternProperties:
71        '^interconnect-[a-z0-9]+$': false
72
73  - if:
74      properties:
75        compatible:
76          const: qcom,sm6115-cnoc
77    then:
78      properties:
79        clocks:
80          items:
81            - description: USB-NoC AXI clock
82        clock-names:
83          items:
84            - const: usb_axi
85      patternProperties:
86        '^interconnect-[a-z0-9]+$': false
87
88  - if:
89      properties:
90        compatible:
91          const: qcom,sm6115-snoc
92    then:
93      properties:
94        clocks:
95          items:
96            - description: CPU-NoC AXI clock.
97            - description: UFS-NoC AXI clock.
98            - description: USB-NoC AXI clock.
99            - description: IPA clock.
100        clock-names:
101          items:
102            - const: cpu_axi
103            - const: ufs_axi
104            - const: usb_axi
105            - const: ipa
106
107unevaluatedProperties: false
108
109examples:
110  - |
111    #include <dt-bindings/clock/qcom,gcc-sm6115.h>
112    #include <dt-bindings/clock/qcom,rpmcc.h>
113
114    snoc: interconnect@1880000 {
115        compatible = "qcom,sm6115-snoc";
116        reg = <0x01880000 0x60200>;
117        clocks = <&gcc GCC_SYS_NOC_CPUSS_AHB_CLK>,
118                 <&gcc GCC_SYS_NOC_UFS_PHY_AXI_CLK>,
119                 <&gcc GCC_SYS_NOC_USB3_PRIM_AXI_CLK>,
120                 <&rpmcc RPM_SMD_IPA_CLK>;
121        clock-names = "cpu_axi",
122                      "ufs_axi",
123                      "usb_axi",
124                      "ipa";
125        #interconnect-cells = <1>;
126
127        qup_virt: interconnect-clk {
128            compatible = "qcom,sm6115-clk-virt";
129            #interconnect-cells = <1>;
130        };
131
132        mmnrt_virt: interconnect-mmnrt {
133            compatible = "qcom,sm6115-mmnrt-virt";
134            #interconnect-cells = <1>;
135        };
136
137        mmrt_virt: interconnect-mmrt {
138            compatible = "qcom,sm6115-mmrt-virt";
139            #interconnect-cells = <1>;
140        };
141    };
142
143    cnoc: interconnect@1900000 {
144        compatible = "qcom,sm6115-cnoc";
145        reg = <0x01900000 0x8200>;
146        #interconnect-cells = <1>;
147        clocks = <&gcc GCC_CFG_NOC_USB3_PRIM_AXI_CLK>;
148        clock-names = "usb_axi";
149    };
150