xref: /linux/Documentation/devicetree/bindings/interconnect/qcom,sdm660.yaml (revision dba0bfded433d412506eb674d6af77cdca82e259)
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/interconnect/qcom,sdm660.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm SDM660 Network-On-Chip interconnect
8
9maintainers:
10  - Konrad Dybcio <konradybcio@kernel.org>
11
12description: |
13  The Qualcomm SDM660 interconnect providers support adjusting the
14  bandwidth requirements between the various NoC fabrics.
15
16properties:
17  compatible:
18    enum:
19      - qcom,sdm660-a2noc
20      - qcom,sdm660-bimc
21      - qcom,sdm660-cnoc
22      - qcom,sdm660-gnoc
23      - qcom,sdm660-mnoc
24      - qcom,sdm660-snoc
25
26  reg:
27    maxItems: 1
28
29  clock-names:
30    minItems: 1
31    maxItems: 5
32
33  clocks:
34    minItems: 1
35    maxItems: 5
36
37required:
38  - compatible
39  - reg
40
41unevaluatedProperties: false
42
43allOf:
44  - $ref: qcom,rpm-common.yaml#
45  - if:
46      properties:
47        compatible:
48          const: qcom,sdm660-mnoc
49
50    then:
51      properties:
52        clocks:
53          items:
54            - description: CPU-NoC High-performance Bus Clock.
55
56        clock-names:
57          const: iface
58
59  - if:
60      properties:
61        compatible:
62          const: qcom,sdm660-a2noc
63
64    then:
65      properties:
66        clocks:
67          items:
68            - description: IPA Clock.
69            - description: UFS AXI Clock.
70            - description: Aggregate2 UFS AXI Clock.
71            - description: Aggregate2 USB3 AXI Clock.
72            - description: Config NoC USB2 AXI Clock.
73
74        clock-names:
75          items:
76            - const: ipa
77            - const: ufs_axi
78            - const: aggre2_ufs_axi
79            - const: aggre2_usb3_axi
80            - const: cfg_noc_usb2_axi
81
82  - if:
83      properties:
84        compatible:
85          enum:
86            - qcom,sdm660-bimc
87            - qcom,sdm660-cnoc
88            - qcom,sdm660-gnoc
89            - qcom,sdm660-snoc
90    then:
91      properties:
92        clocks: false
93        clock-names: false
94
95examples:
96  - |
97    #include <dt-bindings/clock/qcom,gcc-sdm660.h>
98    #include <dt-bindings/clock/qcom,mmcc-sdm660.h>
99    #include <dt-bindings/clock/qcom,rpmcc.h>
100
101    bimc: interconnect@1008000 {
102        compatible = "qcom,sdm660-bimc";
103        reg = <0x01008000 0x78000>;
104        #interconnect-cells = <1>;
105    };
106
107    a2noc: interconnect@1704000 {
108        compatible = "qcom,sdm660-a2noc";
109        reg = <0x01704000 0xc100>;
110        #interconnect-cells = <1>;
111        clocks = <&rpmcc RPM_SMD_IPA_CLK>,
112                 <&gcc GCC_UFS_AXI_CLK>,
113                 <&gcc GCC_AGGRE2_UFS_AXI_CLK>,
114                 <&gcc GCC_AGGRE2_USB3_AXI_CLK>,
115                 <&gcc GCC_CFG_NOC_USB2_AXI_CLK>;
116        clock-names = "ipa",
117                      "ufs_axi",
118                      "aggre2_ufs_axi",
119                      "aggre2_usb3_axi",
120                      "cfg_noc_usb2_axi";
121    };
122