xref: /freebsd/sys/contrib/device-tree/Bindings/interconnect/qcom,sdm660.yaml (revision 84943d6f38e936ac3b7a3947ca26eeb27a39f938)
12eb4d8dcSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
22eb4d8dcSEmmanuel Vadot%YAML 1.2
32eb4d8dcSEmmanuel Vadot---
42eb4d8dcSEmmanuel Vadot$id: http://devicetree.org/schemas/interconnect/qcom,sdm660.yaml#
52eb4d8dcSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
62eb4d8dcSEmmanuel Vadot
72eb4d8dcSEmmanuel Vadottitle: Qualcomm SDM660 Network-On-Chip interconnect
82eb4d8dcSEmmanuel Vadot
92eb4d8dcSEmmanuel Vadotmaintainers:
10*84943d6fSEmmanuel Vadot  - Konrad Dybcio <konradybcio@kernel.org>
112eb4d8dcSEmmanuel Vadot
122eb4d8dcSEmmanuel Vadotdescription: |
132eb4d8dcSEmmanuel Vadot  The Qualcomm SDM660 interconnect providers support adjusting the
142eb4d8dcSEmmanuel Vadot  bandwidth requirements between the various NoC fabrics.
152eb4d8dcSEmmanuel Vadot
162eb4d8dcSEmmanuel Vadotproperties:
172eb4d8dcSEmmanuel Vadot  compatible:
182eb4d8dcSEmmanuel Vadot    enum:
192eb4d8dcSEmmanuel Vadot      - qcom,sdm660-a2noc
202eb4d8dcSEmmanuel Vadot      - qcom,sdm660-bimc
212eb4d8dcSEmmanuel Vadot      - qcom,sdm660-cnoc
222eb4d8dcSEmmanuel Vadot      - qcom,sdm660-gnoc
232eb4d8dcSEmmanuel Vadot      - qcom,sdm660-mnoc
242eb4d8dcSEmmanuel Vadot      - qcom,sdm660-snoc
252eb4d8dcSEmmanuel Vadot
26*84943d6fSEmmanuel Vadot  reg:
27*84943d6fSEmmanuel Vadot    maxItems: 1
282eb4d8dcSEmmanuel Vadot
292eb4d8dcSEmmanuel Vadot  clock-names:
302eb4d8dcSEmmanuel Vadot    minItems: 1
31*84943d6fSEmmanuel Vadot    maxItems: 5
32*84943d6fSEmmanuel Vadot
33*84943d6fSEmmanuel Vadot  clocks:
34*84943d6fSEmmanuel Vadot    minItems: 1
35*84943d6fSEmmanuel Vadot    maxItems: 5
362eb4d8dcSEmmanuel Vadot
372eb4d8dcSEmmanuel Vadotrequired:
382eb4d8dcSEmmanuel Vadot  - compatible
392eb4d8dcSEmmanuel Vadot  - reg
402eb4d8dcSEmmanuel Vadot
41*84943d6fSEmmanuel VadotunevaluatedProperties: false
422eb4d8dcSEmmanuel Vadot
432eb4d8dcSEmmanuel VadotallOf:
44*84943d6fSEmmanuel Vadot  - $ref: qcom,rpm-common.yaml#
452eb4d8dcSEmmanuel Vadot  - if:
462eb4d8dcSEmmanuel Vadot      properties:
472eb4d8dcSEmmanuel Vadot        compatible:
48*84943d6fSEmmanuel Vadot          const: qcom,sdm660-mnoc
49*84943d6fSEmmanuel Vadot
502eb4d8dcSEmmanuel Vadot    then:
512eb4d8dcSEmmanuel Vadot      properties:
522eb4d8dcSEmmanuel Vadot        clocks:
532eb4d8dcSEmmanuel Vadot          items:
542eb4d8dcSEmmanuel Vadot            - description: CPU-NoC High-performance Bus Clock.
55*84943d6fSEmmanuel Vadot
562eb4d8dcSEmmanuel Vadot        clock-names:
57*84943d6fSEmmanuel Vadot          const: iface
582eb4d8dcSEmmanuel Vadot
592eb4d8dcSEmmanuel Vadot  - if:
602eb4d8dcSEmmanuel Vadot      properties:
612eb4d8dcSEmmanuel Vadot        compatible:
62*84943d6fSEmmanuel Vadot          const: qcom,sdm660-a2noc
63*84943d6fSEmmanuel Vadot
64354d7675SEmmanuel Vadot    then:
65354d7675SEmmanuel Vadot      properties:
66354d7675SEmmanuel Vadot        clocks:
67354d7675SEmmanuel Vadot          items:
68354d7675SEmmanuel Vadot            - description: IPA Clock.
69354d7675SEmmanuel Vadot            - description: UFS AXI Clock.
70354d7675SEmmanuel Vadot            - description: Aggregate2 UFS AXI Clock.
71354d7675SEmmanuel Vadot            - description: Aggregate2 USB3 AXI Clock.
72354d7675SEmmanuel Vadot            - description: Config NoC USB2 AXI Clock.
73*84943d6fSEmmanuel Vadot
74354d7675SEmmanuel Vadot        clock-names:
75354d7675SEmmanuel Vadot          items:
76354d7675SEmmanuel Vadot            - const: ipa
77354d7675SEmmanuel Vadot            - const: ufs_axi
78354d7675SEmmanuel Vadot            - const: aggre2_ufs_axi
79354d7675SEmmanuel Vadot            - const: aggre2_usb3_axi
80354d7675SEmmanuel Vadot            - const: cfg_noc_usb2_axi
81354d7675SEmmanuel Vadot
822eb4d8dcSEmmanuel Vadotexamples:
832eb4d8dcSEmmanuel Vadot  - |
84354d7675SEmmanuel Vadot    #include <dt-bindings/clock/qcom,gcc-sdm660.h>
85*84943d6fSEmmanuel Vadot    #include <dt-bindings/clock/qcom,mmcc-sdm660.h>
86*84943d6fSEmmanuel Vadot    #include <dt-bindings/clock/qcom,rpmcc.h>
872eb4d8dcSEmmanuel Vadot
882eb4d8dcSEmmanuel Vadot    bimc: interconnect@1008000 {
892eb4d8dcSEmmanuel Vadot        compatible = "qcom,sdm660-bimc";
902eb4d8dcSEmmanuel Vadot        reg = <0x01008000 0x78000>;
912eb4d8dcSEmmanuel Vadot        #interconnect-cells = <1>;
922eb4d8dcSEmmanuel Vadot    };
932eb4d8dcSEmmanuel Vadot
942eb4d8dcSEmmanuel Vadot    a2noc: interconnect@1704000 {
952eb4d8dcSEmmanuel Vadot        compatible = "qcom,sdm660-a2noc";
962eb4d8dcSEmmanuel Vadot        reg = <0x01704000 0xc100>;
972eb4d8dcSEmmanuel Vadot        #interconnect-cells = <1>;
98*84943d6fSEmmanuel Vadot        clocks = <&rpmcc RPM_SMD_IPA_CLK>,
99354d7675SEmmanuel Vadot                 <&gcc GCC_UFS_AXI_CLK>,
100354d7675SEmmanuel Vadot                 <&gcc GCC_AGGRE2_UFS_AXI_CLK>,
101354d7675SEmmanuel Vadot                 <&gcc GCC_AGGRE2_USB3_AXI_CLK>,
102354d7675SEmmanuel Vadot                 <&gcc GCC_CFG_NOC_USB2_AXI_CLK>;
103*84943d6fSEmmanuel Vadot        clock-names = "ipa",
104*84943d6fSEmmanuel Vadot                      "ufs_axi",
105*84943d6fSEmmanuel Vadot                      "aggre2_ufs_axi",
106*84943d6fSEmmanuel Vadot                      "aggre2_usb3_axi",
107*84943d6fSEmmanuel Vadot                      "cfg_noc_usb2_axi";
1082eb4d8dcSEmmanuel Vadot    };
109