xref: /linux/Documentation/devicetree/bindings/interconnect/qcom,shikra.yaml (revision efe86f088f48f18c27b648e5724048947f3b7fb4)
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/interconnect/qcom,shikra.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm Shikra Network-On-Chip interconnect
8
9maintainers:
10  - Raviteja Laggyshetty <raviteja.laggyshetty@oss.qualcomm.com>
11
12description:
13  The Qualcomm Shikra interconnect providers support adjusting the
14  bandwidth requirements between the various NoC fabrics.
15
16properties:
17  compatible:
18    enum:
19      - qcom,shikra-config-noc
20      - qcom,shikra-mem-noc-core
21      - qcom,shikra-sys-noc
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,shikra-clk-virt
48          - qcom,shikra-mc-virt
49          - qcom,shikra-mmrt-virt
50          - qcom,shikra-mmnrt-virt
51
52    required:
53      - compatible
54
55    unevaluatedProperties: false
56
57required:
58  - compatible
59  - reg
60
61allOf:
62  - $ref: qcom,rpm-common.yaml#
63  - if:
64      properties:
65        compatible:
66          const: qcom,shikra-mem-noc-core
67
68    then:
69      properties:
70        clocks:
71          items:
72            - description: GPU-NoC AXI clock
73
74        clock-names:
75          items:
76            - const: gpu_axi
77      patternProperties:
78        '^interconnect-[a-z0-9]+$': false
79
80  - if:
81      properties:
82        compatible:
83          const: qcom,shikra-sys-noc
84
85    then:
86      properties:
87        clocks:
88          items:
89            - description: EMAC0-NoC AXI clock.
90            - description: EMAC1-NoC AXI clock.
91            - description: USB2-NoC AXI clock.
92            - description: USB3-NoC AXI clock.
93
94        clock-names:
95          items:
96            - const: emac0_axi
97            - const: emac1_axi
98            - const: usb2_axi
99            - const: usb3_axi
100
101  - if:
102      properties:
103        compatible:
104          const: qcom,shikra-config-noc
105
106    then:
107      properties:
108        clocks: false
109        clock-names: false
110      patternProperties:
111        '^interconnect-[a-z0-9]+$': false
112
113unevaluatedProperties: false
114
115examples:
116  - |
117    interconnect@1880000 {
118        compatible = "qcom,shikra-sys-noc";
119        reg = <0x01880000 0x6a080>;
120        #interconnect-cells = <2>;
121        clocks = <&gcc_emac0_axi_sys_noc_clk>,
122                 <&gcc_emac1_axi_sys_noc_clk>,
123                 <&gcc_sys_noc_usb2_prim_axi_clk>,
124                 <&gcc_sys_noc_usb3_prim_axi_clk>;
125        clock-names = "emac0_axi",
126                      "emac1_axi",
127                      "usb2_axi",
128                      "usb3_axi";
129
130        interconnect-clk {
131            compatible = "qcom,shikra-clk-virt";
132            #interconnect-cells = <2>;
133        };
134    };
135