xref: /freebsd/sys/contrib/device-tree/Bindings/interconnect/qcom,sm6115.yaml (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
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#
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    };
153