xref: /freebsd/sys/contrib/device-tree/Bindings/interconnect/qcom,sdm660.yaml (revision ec0ea6efa1ad229d75c394c1a9b9cac33af2b1d3)
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  - AngeloGioacchino Del Regno <kholk11@gmail.com>
11
12description: |
13  The Qualcomm SDM660 interconnect providers support adjusting the
14  bandwidth requirements between the various NoC fabrics.
15
16properties:
17  reg:
18    maxItems: 1
19
20  compatible:
21    enum:
22      - qcom,sdm660-a2noc
23      - qcom,sdm660-bimc
24      - qcom,sdm660-cnoc
25      - qcom,sdm660-gnoc
26      - qcom,sdm660-mnoc
27      - qcom,sdm660-snoc
28
29  '#interconnect-cells':
30    const: 1
31
32  clocks:
33    minItems: 1
34    maxItems: 3
35
36  clock-names:
37    minItems: 1
38    maxItems: 3
39
40required:
41  - compatible
42  - reg
43  - '#interconnect-cells'
44  - clock-names
45  - clocks
46
47additionalProperties: false
48
49allOf:
50  - if:
51      properties:
52        compatible:
53          contains:
54            enum:
55              - qcom,sdm660-mnoc
56    then:
57      properties:
58        clocks:
59          items:
60            - description: Bus Clock.
61            - description: Bus A Clock.
62            - description: CPU-NoC High-performance Bus Clock.
63        clock-names:
64          items:
65            - const: bus
66            - const: bus_a
67            - const: iface
68
69  - if:
70      properties:
71        compatible:
72          contains:
73            enum:
74              - qcom,sdm660-a2noc
75              - qcom,sdm660-bimc
76              - qcom,sdm660-cnoc
77              - qcom,sdm660-gnoc
78              - qcom,sdm660-snoc
79    then:
80      properties:
81        clocks:
82          items:
83            - description: Bus Clock.
84            - description: Bus A Clock.
85        clock-names:
86          items:
87            - const: bus
88            - const: bus_a
89
90examples:
91  - |
92      #include <dt-bindings/clock/qcom,rpmcc.h>
93      #include <dt-bindings/clock/qcom,mmcc-sdm660.h>
94
95      bimc: interconnect@1008000 {
96              compatible = "qcom,sdm660-bimc";
97              reg = <0x01008000 0x78000>;
98              #interconnect-cells = <1>;
99              clock-names = "bus", "bus_a";
100              clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
101                       <&rpmcc RPM_SMD_BIMC_A_CLK>;
102      };
103
104      cnoc: interconnect@1500000 {
105              compatible = "qcom,sdm660-cnoc";
106              reg = <0x01500000 0x10000>;
107              #interconnect-cells = <1>;
108              clock-names = "bus", "bus_a";
109              clocks = <&rpmcc RPM_SMD_CNOC_CLK>,
110                       <&rpmcc RPM_SMD_CNOC_A_CLK>;
111      };
112
113      snoc: interconnect@1626000 {
114              compatible = "qcom,sdm660-snoc";
115              reg = <0x01626000 0x7090>;
116              #interconnect-cells = <1>;
117              clock-names = "bus", "bus_a";
118              clocks = <&rpmcc RPM_SMD_SNOC_CLK>,
119                       <&rpmcc RPM_SMD_SNOC_A_CLK>;
120      };
121
122      a2noc: interconnect@1704000 {
123              compatible = "qcom,sdm660-a2noc";
124              reg = <0x01704000 0xc100>;
125              #interconnect-cells = <1>;
126              clock-names = "bus", "bus_a";
127              clocks = <&rpmcc RPM_SMD_AGGR2_NOC_CLK>,
128                       <&rpmcc RPM_SMD_AGGR2_NOC_A_CLK>;
129      };
130
131      mnoc: interconnect@1745000 {
132              compatible = "qcom,sdm660-mnoc";
133              reg = <0x01745000 0xa010>;
134              #interconnect-cells = <1>;
135              clock-names = "bus", "bus_a", "iface";
136              clocks = <&rpmcc RPM_SMD_MMSSNOC_AXI_CLK>,
137                       <&rpmcc RPM_SMD_MMSSNOC_AXI_CLK_A>,
138                       <&mmcc AHB_CLK_SRC>;
139      };
140
141      gnoc: interconnect@17900000 {
142              compatible = "qcom,sdm660-gnoc";
143              reg = <0x17900000 0xe000>;
144              #interconnect-cells = <1>;
145              clock-names = "bus", "bus_a";
146              clocks = <&xo_board>, <&xo_board>;
147      };
148