Linux 6.7-rc7
[linux-modified.git] / Documentation / devicetree / bindings / interconnect / qcom,sdm660.yaml
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
7 title: Qualcomm SDM660 Network-On-Chip interconnect
8
9 maintainers:
10   - Konrad Dybcio <konradybcio@kernel.org>
11
12 description: |
13   The Qualcomm SDM660 interconnect providers support adjusting the
14   bandwidth requirements between the various NoC fabrics.
15
16 properties:
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
37 required:
38   - compatible
39   - reg
40
41 unevaluatedProperties: false
42
43 allOf:
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 examples:
83   - |
84     #include <dt-bindings/clock/qcom,gcc-sdm660.h>
85     #include <dt-bindings/clock/qcom,mmcc-sdm660.h>
86     #include <dt-bindings/clock/qcom,rpmcc.h>
87
88     bimc: interconnect@1008000 {
89         compatible = "qcom,sdm660-bimc";
90         reg = <0x01008000 0x78000>;
91         #interconnect-cells = <1>;
92     };
93
94     a2noc: interconnect@1704000 {
95         compatible = "qcom,sdm660-a2noc";
96         reg = <0x01704000 0xc100>;
97         #interconnect-cells = <1>;
98         clocks = <&rpmcc RPM_SMD_IPA_CLK>,
99                  <&gcc GCC_UFS_AXI_CLK>,
100                  <&gcc GCC_AGGRE2_UFS_AXI_CLK>,
101                  <&gcc GCC_AGGRE2_USB3_AXI_CLK>,
102                  <&gcc GCC_CFG_NOC_USB2_AXI_CLK>;
103         clock-names = "ipa",
104                       "ufs_axi",
105                       "aggre2_ufs_axi",
106                       "aggre2_usb3_axi",
107                       "cfg_noc_usb2_axi";
108     };