xref: /freebsd/sys/contrib/device-tree/Bindings/interconnect/qcom,sdm660.yaml (revision 96190b4fef3b4a0cc3ca0606b0c4e3e69a5e6717)
1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/interconnect/qcom,sdm660.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Qualcomm SDM660 Network-On-Chip interconnect
8
9maintainers:
10  - Konrad Dybcio <konradybcio@kernel.org>
11
12description: |
13  The Qualcomm SDM660 interconnect providers support adjusting the
14  bandwidth requirements between the various NoC fabrics.
15
16properties:
17  compatible:
18    enum:
19      - qcom,sdm660-a2noc
20      - qcom,sdm660-bimc
21      - qcom,sdm660-cnoc
22      - qcom,sdm660-gnoc
23      - qcom,sdm660-mnoc
24      - qcom,sdm660-snoc
25
26  reg:
27    maxItems: 1
28
29  clock-names:
30    minItems: 1
31    maxItems: 5
32
33  clocks:
34    minItems: 1
35    maxItems: 5
36
37required:
38  - compatible
39  - reg
40
41unevaluatedProperties: false
42
43allOf:
44  - $ref: qcom,rpm-common.yaml#
45  - if:
46      properties:
47        compatible:
48          const: qcom,sdm660-mnoc
49
50    then:
51      properties:
52        clocks:
53          items:
54            - description: CPU-NoC High-performance Bus Clock.
55
56        clock-names:
57          const: iface
58
59  - if:
60      properties:
61        compatible:
62          const: qcom,sdm660-a2noc
63
64    then:
65      properties:
66        clocks:
67          items:
68            - description: IPA Clock.
69            - description: UFS AXI Clock.
70            - description: Aggregate2 UFS AXI Clock.
71            - description: Aggregate2 USB3 AXI Clock.
72            - description: Config NoC USB2 AXI Clock.
73
74        clock-names:
75          items:
76            - const: ipa
77            - const: ufs_axi
78            - const: aggre2_ufs_axi
79            - const: aggre2_usb3_axi
80            - const: cfg_noc_usb2_axi
81
82examples:
83  - |
84    #include <dt-bindings/clock/qcom,gcc-sdm660.h>
85    #include <dt-bindings/clock/qcom,mmcc-sdm660.h>
86    #include <dt-bindings/clock/qcom,rpmcc.h>
87
88    bimc: interconnect@1008000 {
89        compatible = "qcom,sdm660-bimc";
90        reg = <0x01008000 0x78000>;
91        #interconnect-cells = <1>;
92    };
93
94    a2noc: interconnect@1704000 {
95        compatible = "qcom,sdm660-a2noc";
96        reg = <0x01704000 0xc100>;
97        #interconnect-cells = <1>;
98        clocks = <&rpmcc RPM_SMD_IPA_CLK>,
99                 <&gcc GCC_UFS_AXI_CLK>,
100                 <&gcc GCC_AGGRE2_UFS_AXI_CLK>,
101                 <&gcc GCC_AGGRE2_USB3_AXI_CLK>,
102                 <&gcc GCC_CFG_NOC_USB2_AXI_CLK>;
103        clock-names = "ipa",
104                      "ufs_axi",
105                      "aggre2_ufs_axi",
106                      "aggre2_usb3_axi",
107                      "cfg_noc_usb2_axi";
108    };
109