blob: 14b1a0b08e736ea78d6883656266d66574b72329 [file] [log] [blame]
Tom Rini93743d22024-04-01 09:08:13 -04001# 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-cnoc
66
67 then:
68 properties:
69 clocks:
70 items:
71 - description: USB-NoC AXI clock
72
73 clock-names:
74 items:
75 - const: usb_axi
76
77 - if:
78 properties:
79 compatible:
80 const: qcom,sm6115-snoc
81
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.
90
91 clock-names:
92 items:
93 - const: cpu_axi
94 - const: ufs_axi
95 - const: usb_axi
96 - const: ipa
97
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
106
107 then:
108 properties:
109 clocks: false
110 clock-names: false
111
112unevaluatedProperties: false
113
114examples:
115 - |
116 #include <dt-bindings/clock/qcom,gcc-sm6115.h>
117 #include <dt-bindings/clock/qcom,rpmcc.h>
118
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>;
131
132 qup_virt: interconnect-clk {
133 compatible = "qcom,sm6115-clk-virt";
134 #interconnect-cells = <1>;
135 };
136
137 mmnrt_virt: interconnect-mmnrt {
138 compatible = "qcom,sm6115-mmnrt-virt";
139 #interconnect-cells = <1>;
140 };
141
142 mmrt_virt: interconnect-mmrt {
143 compatible = "qcom,sm6115-mmrt-virt";
144 #interconnect-cells = <1>;
145 };
146 };
147
148 cnoc: interconnect@1900000 {
149 compatible = "qcom,sm6115-cnoc";
150 reg = <0x01900000 0x8200>;
151 #interconnect-cells = <1>;
152 };