Merge tag 'block-6.13-20242901' of git://git.kernel.dk/linux
[drm/drm-misc.git] / Documentation / devicetree / bindings / interconnect / qcom,sm6115.yaml
blob14b1a0b08e736ea78d6883656266d66574b72329
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#
7 title: Qualcomm SM6115 Network-On-Chip interconnect
9 maintainers:
10   - Konrad Dybcio <konradybcio@kernel.org>
12 description:
13   The Qualcomm SM6115 interconnect providers support adjusting the
14   bandwidth requirements between the various NoC fabrics.
16 properties:
17   compatible:
18     enum:
19       - qcom,sm6115-bimc
20       - qcom,sm6115-cnoc
21       - qcom,sm6115-snoc
23   reg:
24     maxItems: 1
26   clocks:
27     minItems: 1
28     maxItems: 4
30   clock-names:
31     minItems: 1
32     maxItems: 4
34 # Child node's properties
35 patternProperties:
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.
42     $ref: qcom,rpm-common.yaml#
44     properties:
45       compatible:
46         enum:
47           - qcom,sm6115-clk-virt
48           - qcom,sm6115-mmrt-virt
49           - qcom,sm6115-mmnrt-virt
51     required:
52       - compatible
54     unevaluatedProperties: false
56 required:
57   - compatible
58   - reg
60 allOf:
61   - $ref: qcom,rpm-common.yaml#
62   - if:
63       properties:
64         compatible:
65           const: qcom,sm6115-cnoc
67     then:
68       properties:
69         clocks:
70           items:
71             - description: USB-NoC AXI clock
73         clock-names:
74           items:
75             - const: usb_axi
77   - if:
78       properties:
79         compatible:
80           const: qcom,sm6115-snoc
82     then:
83       properties:
84         clocks:
85           items:
86             - description: CPU-NoC AXI clock.
87             - description: UFS-NoC AXI clock.
88             - description: USB-NoC AXI clock.
89             - description: IPA clock.
91         clock-names:
92           items:
93             - const: cpu_axi
94             - const: ufs_axi
95             - const: usb_axi
96             - const: ipa
98   - if:
99       properties:
100         compatible:
101           enum:
102             - qcom,sm6115-bimc
103             - qcom,sm6115-clk-virt
104             - qcom,sm6115-mmrt-virt
105             - qcom,sm6115-mmnrt-virt
107     then:
108       properties:
109         clocks: false
110         clock-names: false
112 unevaluatedProperties: false
114 examples:
115   - |
116     #include <dt-bindings/clock/qcom,gcc-sm6115.h>
117     #include <dt-bindings/clock/qcom,rpmcc.h>
119     snoc: interconnect@1880000 {
120         compatible = "qcom,sm6115-snoc";
121         reg = <0x01880000 0x60200>;
122         clocks = <&gcc GCC_SYS_NOC_CPUSS_AHB_CLK>,
123                  <&gcc GCC_SYS_NOC_UFS_PHY_AXI_CLK>,
124                  <&gcc GCC_SYS_NOC_USB3_PRIM_AXI_CLK>,
125                  <&rpmcc RPM_SMD_IPA_CLK>;
126         clock-names = "cpu_axi",
127                       "ufs_axi",
128                       "usb_axi",
129                       "ipa";
130         #interconnect-cells = <1>;
132         qup_virt: interconnect-clk {
133             compatible = "qcom,sm6115-clk-virt";
134             #interconnect-cells = <1>;
135         };
137         mmnrt_virt: interconnect-mmnrt {
138             compatible = "qcom,sm6115-mmnrt-virt";
139             #interconnect-cells = <1>;
140         };
142         mmrt_virt: interconnect-mmrt {
143             compatible = "qcom,sm6115-mmrt-virt";
144             #interconnect-cells = <1>;
145         };
146     };
148     cnoc: interconnect@1900000 {
149         compatible = "qcom,sm6115-cnoc";
150         reg = <0x01900000 0x8200>;
151         #interconnect-cells = <1>;
152     };