Documentation / devicetree / bindings / interconnect / qcom,shikra.yaml


Based on kernel version 7.2. Page generated on 2026-08-20 08:41 EST.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/interconnect/qcom,shikra.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm Shikra Network-On-Chip interconnect

maintainers:
  - Raviteja Laggyshetty <raviteja.laggyshetty@oss.qualcomm.com>

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

properties:
  compatible:
    enum:
      - qcom,shikra-config-noc
      - qcom,shikra-mem-noc-core
      - qcom,shikra-sys-noc

  reg:
    maxItems: 1

  clocks:
    minItems: 1
    maxItems: 4

  clock-names:
    minItems: 1
    maxItems: 4
 
# Child node's properties
patternProperties:
  '^interconnect-[a-z0-9]+$':
    type: object
    description:
      The interconnect providers do not have a separate QoS register space,
      but share parent's space.

    $ref: qcom,rpm-common.yaml#

    properties:
      compatible:
        enum:
          - qcom,shikra-clk-virt
          - qcom,shikra-mc-virt
          - qcom,shikra-mmrt-virt
          - qcom,shikra-mmnrt-virt

    required:
      - compatible

    unevaluatedProperties: false

required:
  - compatible
  - reg

allOf:
  - $ref: qcom,rpm-common.yaml#
  - if:
      properties:
        compatible:
          const: qcom,shikra-mem-noc-core

    then:
      properties:
        clocks:
          items:
            - description: GPU-NoC AXI clock

        clock-names:
          items:
            - const: gpu_axi
      patternProperties:
        '^interconnect-[a-z0-9]+$': false

  - if:
      properties:
        compatible:
          const: qcom,shikra-sys-noc

    then:
      properties:
        clocks:
          items:
            - description: EMAC0-NoC AXI clock.
            - description: EMAC1-NoC AXI clock.
            - description: USB2-NoC AXI clock.
            - description: USB3-NoC AXI clock.

        clock-names:
          items:
            - const: emac0_axi
            - const: emac1_axi
            - const: usb2_axi
            - const: usb3_axi

  - if:
      properties:
        compatible:
          const: qcom,shikra-config-noc

    then:
      properties:
        clocks: false
        clock-names: false
      patternProperties:
        '^interconnect-[a-z0-9]+$': false

unevaluatedProperties: false

examples:
  - |
    interconnect@1880000 {
        compatible = "qcom,shikra-sys-noc";
        reg = <0x01880000 0x6a080>;
        #interconnect-cells = <2>;
        clocks = <&gcc_emac0_axi_sys_noc_clk>,
                 <&gcc_emac1_axi_sys_noc_clk>,
                 <&gcc_sys_noc_usb2_prim_axi_clk>,
                 <&gcc_sys_noc_usb3_prim_axi_clk>;
        clock-names = "emac0_axi",
                      "emac1_axi",
                      "usb2_axi",
                      "usb3_axi";
 
        interconnect-clk {
            compatible = "qcom,shikra-clk-virt";
            #interconnect-cells = <2>;
        };
    };