xref: /freebsd-src/sys/contrib/device-tree/Bindings/interconnect/qcom,sm6115.yaml (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
1*8d13bc63SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2*8d13bc63SEmmanuel Vadot%YAML 1.2
3*8d13bc63SEmmanuel Vadot---
4*8d13bc63SEmmanuel Vadot$id: http://devicetree.org/schemas/interconnect/qcom,sm6115.yaml#
5*8d13bc63SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*8d13bc63SEmmanuel Vadot
7*8d13bc63SEmmanuel Vadottitle: Qualcomm SM6115 Network-On-Chip interconnect
8*8d13bc63SEmmanuel Vadot
9*8d13bc63SEmmanuel Vadotmaintainers:
10*8d13bc63SEmmanuel Vadot  - Konrad Dybcio <konradybcio@kernel.org>
11*8d13bc63SEmmanuel Vadot
12*8d13bc63SEmmanuel Vadotdescription:
13*8d13bc63SEmmanuel Vadot  The Qualcomm SM6115 interconnect providers support adjusting the
14*8d13bc63SEmmanuel Vadot  bandwidth requirements between the various NoC fabrics.
15*8d13bc63SEmmanuel Vadot
16*8d13bc63SEmmanuel Vadotproperties:
17*8d13bc63SEmmanuel Vadot  compatible:
18*8d13bc63SEmmanuel Vadot    enum:
19*8d13bc63SEmmanuel Vadot      - qcom,sm6115-bimc
20*8d13bc63SEmmanuel Vadot      - qcom,sm6115-cnoc
21*8d13bc63SEmmanuel Vadot      - qcom,sm6115-snoc
22*8d13bc63SEmmanuel Vadot
23*8d13bc63SEmmanuel Vadot  reg:
24*8d13bc63SEmmanuel Vadot    maxItems: 1
25*8d13bc63SEmmanuel Vadot
26*8d13bc63SEmmanuel Vadot  clocks:
27*8d13bc63SEmmanuel Vadot    minItems: 1
28*8d13bc63SEmmanuel Vadot    maxItems: 4
29*8d13bc63SEmmanuel Vadot
30*8d13bc63SEmmanuel Vadot  clock-names:
31*8d13bc63SEmmanuel Vadot    minItems: 1
32*8d13bc63SEmmanuel Vadot    maxItems: 4
33*8d13bc63SEmmanuel Vadot
34*8d13bc63SEmmanuel Vadot# Child node's properties
35*8d13bc63SEmmanuel VadotpatternProperties:
36*8d13bc63SEmmanuel Vadot  '^interconnect-[a-z0-9]+$':
37*8d13bc63SEmmanuel Vadot    type: object
38*8d13bc63SEmmanuel Vadot    description:
39*8d13bc63SEmmanuel Vadot      The interconnect providers do not have a separate QoS register space,
40*8d13bc63SEmmanuel Vadot      but share parent's space.
41*8d13bc63SEmmanuel Vadot
42*8d13bc63SEmmanuel Vadot    $ref: qcom,rpm-common.yaml#
43*8d13bc63SEmmanuel Vadot
44*8d13bc63SEmmanuel Vadot    properties:
45*8d13bc63SEmmanuel Vadot      compatible:
46*8d13bc63SEmmanuel Vadot        enum:
47*8d13bc63SEmmanuel Vadot          - qcom,sm6115-clk-virt
48*8d13bc63SEmmanuel Vadot          - qcom,sm6115-mmrt-virt
49*8d13bc63SEmmanuel Vadot          - qcom,sm6115-mmnrt-virt
50*8d13bc63SEmmanuel Vadot
51*8d13bc63SEmmanuel Vadot    required:
52*8d13bc63SEmmanuel Vadot      - compatible
53*8d13bc63SEmmanuel Vadot
54*8d13bc63SEmmanuel Vadot    unevaluatedProperties: false
55*8d13bc63SEmmanuel Vadot
56*8d13bc63SEmmanuel Vadotrequired:
57*8d13bc63SEmmanuel Vadot  - compatible
58*8d13bc63SEmmanuel Vadot  - reg
59*8d13bc63SEmmanuel Vadot
60*8d13bc63SEmmanuel VadotallOf:
61*8d13bc63SEmmanuel Vadot  - $ref: qcom,rpm-common.yaml#
62*8d13bc63SEmmanuel Vadot  - if:
63*8d13bc63SEmmanuel Vadot      properties:
64*8d13bc63SEmmanuel Vadot        compatible:
65*8d13bc63SEmmanuel Vadot          const: qcom,sm6115-cnoc
66*8d13bc63SEmmanuel Vadot
67*8d13bc63SEmmanuel Vadot    then:
68*8d13bc63SEmmanuel Vadot      properties:
69*8d13bc63SEmmanuel Vadot        clocks:
70*8d13bc63SEmmanuel Vadot          items:
71*8d13bc63SEmmanuel Vadot            - description: USB-NoC AXI clock
72*8d13bc63SEmmanuel Vadot
73*8d13bc63SEmmanuel Vadot        clock-names:
74*8d13bc63SEmmanuel Vadot          items:
75*8d13bc63SEmmanuel Vadot            - const: usb_axi
76*8d13bc63SEmmanuel Vadot
77*8d13bc63SEmmanuel Vadot  - if:
78*8d13bc63SEmmanuel Vadot      properties:
79*8d13bc63SEmmanuel Vadot        compatible:
80*8d13bc63SEmmanuel Vadot          const: qcom,sm6115-snoc
81*8d13bc63SEmmanuel Vadot
82*8d13bc63SEmmanuel Vadot    then:
83*8d13bc63SEmmanuel Vadot      properties:
84*8d13bc63SEmmanuel Vadot        clocks:
85*8d13bc63SEmmanuel Vadot          items:
86*8d13bc63SEmmanuel Vadot            - description: CPU-NoC AXI clock.
87*8d13bc63SEmmanuel Vadot            - description: UFS-NoC AXI clock.
88*8d13bc63SEmmanuel Vadot            - description: USB-NoC AXI clock.
89*8d13bc63SEmmanuel Vadot            - description: IPA clock.
90*8d13bc63SEmmanuel Vadot
91*8d13bc63SEmmanuel Vadot        clock-names:
92*8d13bc63SEmmanuel Vadot          items:
93*8d13bc63SEmmanuel Vadot            - const: cpu_axi
94*8d13bc63SEmmanuel Vadot            - const: ufs_axi
95*8d13bc63SEmmanuel Vadot            - const: usb_axi
96*8d13bc63SEmmanuel Vadot            - const: ipa
97*8d13bc63SEmmanuel Vadot
98*8d13bc63SEmmanuel Vadot  - if:
99*8d13bc63SEmmanuel Vadot      properties:
100*8d13bc63SEmmanuel Vadot        compatible:
101*8d13bc63SEmmanuel Vadot          enum:
102*8d13bc63SEmmanuel Vadot            - qcom,sm6115-bimc
103*8d13bc63SEmmanuel Vadot            - qcom,sm6115-clk-virt
104*8d13bc63SEmmanuel Vadot            - qcom,sm6115-mmrt-virt
105*8d13bc63SEmmanuel Vadot            - qcom,sm6115-mmnrt-virt
106*8d13bc63SEmmanuel Vadot
107*8d13bc63SEmmanuel Vadot    then:
108*8d13bc63SEmmanuel Vadot      properties:
109*8d13bc63SEmmanuel Vadot        clocks: false
110*8d13bc63SEmmanuel Vadot        clock-names: false
111*8d13bc63SEmmanuel Vadot
112*8d13bc63SEmmanuel VadotunevaluatedProperties: false
113*8d13bc63SEmmanuel Vadot
114*8d13bc63SEmmanuel Vadotexamples:
115*8d13bc63SEmmanuel Vadot  - |
116*8d13bc63SEmmanuel Vadot    #include <dt-bindings/clock/qcom,gcc-sm6115.h>
117*8d13bc63SEmmanuel Vadot    #include <dt-bindings/clock/qcom,rpmcc.h>
118*8d13bc63SEmmanuel Vadot
119*8d13bc63SEmmanuel Vadot    snoc: interconnect@1880000 {
120*8d13bc63SEmmanuel Vadot        compatible = "qcom,sm6115-snoc";
121*8d13bc63SEmmanuel Vadot        reg = <0x01880000 0x60200>;
122*8d13bc63SEmmanuel Vadot        clocks = <&gcc GCC_SYS_NOC_CPUSS_AHB_CLK>,
123*8d13bc63SEmmanuel Vadot                 <&gcc GCC_SYS_NOC_UFS_PHY_AXI_CLK>,
124*8d13bc63SEmmanuel Vadot                 <&gcc GCC_SYS_NOC_USB3_PRIM_AXI_CLK>,
125*8d13bc63SEmmanuel Vadot                 <&rpmcc RPM_SMD_IPA_CLK>;
126*8d13bc63SEmmanuel Vadot        clock-names = "cpu_axi",
127*8d13bc63SEmmanuel Vadot                      "ufs_axi",
128*8d13bc63SEmmanuel Vadot                      "usb_axi",
129*8d13bc63SEmmanuel Vadot                      "ipa";
130*8d13bc63SEmmanuel Vadot        #interconnect-cells = <1>;
131*8d13bc63SEmmanuel Vadot
132*8d13bc63SEmmanuel Vadot        qup_virt: interconnect-clk {
133*8d13bc63SEmmanuel Vadot            compatible = "qcom,sm6115-clk-virt";
134*8d13bc63SEmmanuel Vadot            #interconnect-cells = <1>;
135*8d13bc63SEmmanuel Vadot        };
136*8d13bc63SEmmanuel Vadot
137*8d13bc63SEmmanuel Vadot        mmnrt_virt: interconnect-mmnrt {
138*8d13bc63SEmmanuel Vadot            compatible = "qcom,sm6115-mmnrt-virt";
139*8d13bc63SEmmanuel Vadot            #interconnect-cells = <1>;
140*8d13bc63SEmmanuel Vadot        };
141*8d13bc63SEmmanuel Vadot
142*8d13bc63SEmmanuel Vadot        mmrt_virt: interconnect-mmrt {
143*8d13bc63SEmmanuel Vadot            compatible = "qcom,sm6115-mmrt-virt";
144*8d13bc63SEmmanuel Vadot            #interconnect-cells = <1>;
145*8d13bc63SEmmanuel Vadot        };
146*8d13bc63SEmmanuel Vadot    };
147*8d13bc63SEmmanuel Vadot
148*8d13bc63SEmmanuel Vadot    cnoc: interconnect@1900000 {
149*8d13bc63SEmmanuel Vadot        compatible = "qcom,sm6115-cnoc";
150*8d13bc63SEmmanuel Vadot        reg = <0x01900000 0x8200>;
151*8d13bc63SEmmanuel Vadot        #interconnect-cells = <1>;
152*8d13bc63SEmmanuel Vadot    };
153