# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/interconnect/qcom,sdm660.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm SDM660 Network-On-Chip interconnect

maintainers:
  - AngeloGioacchino Del Regno <kholk11@gmail.com>

description: |
  The Qualcomm SDM660 interconnect providers support adjusting the
  bandwidth requirements between the various NoC fabrics.

properties:
  reg:
    maxItems: 1

  compatible:
    enum:
      - qcom,sdm660-a2noc
      - qcom,sdm660-bimc
      - qcom,sdm660-cnoc
      - qcom,sdm660-gnoc
      - qcom,sdm660-mnoc
      - qcom,sdm660-snoc

  '#interconnect-cells':
    const: 1

  clocks:
    minItems: 1
    maxItems: 3

  clock-names:
    minItems: 1
    maxItems: 3

required:
  - compatible
  - reg
  - '#interconnect-cells'
  - clock-names
  - clocks

additionalProperties: false

allOf:
  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sdm660-mnoc
    then:
      properties:
        clocks:
          items:
            - description: Bus Clock.
            - description: Bus A Clock.
            - description: CPU-NoC High-performance Bus Clock.
        clock-names:
          items:
            - const: bus
            - const: bus_a
            - const: iface

  - if:
      properties:
        compatible:
          contains:
            enum:
              - qcom,sdm660-a2noc
              - qcom,sdm660-bimc
              - qcom,sdm660-cnoc
              - qcom,sdm660-gnoc
              - qcom,sdm660-snoc
    then:
      properties:
        clocks:
          items:
            - description: Bus Clock.
            - description: Bus A Clock.
        clock-names:
          items:
            - const: bus
            - const: bus_a

examples:
  - |
      #include <dt-bindings/clock/qcom,rpmcc.h>
      #include <dt-bindings/clock/qcom,mmcc-sdm660.h>

      bimc: interconnect@1008000 {
              compatible = "qcom,sdm660-bimc";
              reg = <0x01008000 0x78000>;
              #interconnect-cells = <1>;
              clock-names = "bus", "bus_a";
              clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
                       <&rpmcc RPM_SMD_BIMC_A_CLK>;
      };

      cnoc: interconnect@1500000 {
              compatible = "qcom,sdm660-cnoc";
              reg = <0x01500000 0x10000>;
              #interconnect-cells = <1>;
              clock-names = "bus", "bus_a";
              clocks = <&rpmcc RPM_SMD_CNOC_CLK>,
                       <&rpmcc RPM_SMD_CNOC_A_CLK>;
      };

      snoc: interconnect@1626000 {
              compatible = "qcom,sdm660-snoc";
              reg = <0x01626000 0x7090>;
              #interconnect-cells = <1>;
              clock-names = "bus", "bus_a";
              clocks = <&rpmcc RPM_SMD_SNOC_CLK>,
                       <&rpmcc RPM_SMD_SNOC_A_CLK>;
      };

      a2noc: interconnect@1704000 {
              compatible = "qcom,sdm660-a2noc";
              reg = <0x01704000 0xc100>;
              #interconnect-cells = <1>;
              clock-names = "bus", "bus_a";
              clocks = <&rpmcc RPM_SMD_AGGR2_NOC_CLK>,
                       <&rpmcc RPM_SMD_AGGR2_NOC_A_CLK>;
      };

      mnoc: interconnect@1745000 {
              compatible = "qcom,sdm660-mnoc";
              reg = <0x01745000 0xa010>;
              #interconnect-cells = <1>;
              clock-names = "bus", "bus_a", "iface";
              clocks = <&rpmcc RPM_SMD_MMSSNOC_AXI_CLK>,
                       <&rpmcc RPM_SMD_MMSSNOC_AXI_CLK_A>,
                       <&mmcc AHB_CLK_SRC>;
      };

      gnoc: interconnect@17900000 {
              compatible = "qcom,sdm660-gnoc";
              reg = <0x17900000 0xe000>;
              #interconnect-cells = <1>;
              clock-names = "bus", "bus_a";
              clocks = <&xo_board>, <&xo_board>;
      };
