Re: [PATCH 1/2] dt-bindings: interconnect: document the RPM Network-On-Chip interconnect in Shikra SoC

Raviteja Laggyshetty
2026-05-04T07:17:44Z

On 5/3/2026 9:47 PM, Krzysztof Kozlowski wrote:
> On Wed, Apr 29, 2026 at 02:03:48PM +0000, Raviteja Laggyshetty wrote:
>> +++ b/Documentation/devicetree/bindings/interconnect/qcom,shikra.yaml
>> @@ -0,0 +1,135 @@
>> +# 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: |
>
> Do not need '|' unless you need to preserve formatting.

I will fix it next revision.

>
>> + 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
>> +
>> + - 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:
>> + enum:
>> + - qcom,shikra-clk-virt
>> + - qcom,shikra-config-noc
>> + - qcom,shikra-mc-virt
>> + - qcom,shikra-mmrt-virt
>> + - qcom,shikra-mmnrt-virt
>
> This if is pointless here, changes nothing and not really correct. Drop
> it, I will fix existing bindings.
>
> OTOH, do all NoCs have children? If not, the patternProperties should be
> disallowed for such cases. Also clocks should be restricted, see my
> patch:
> 20260503161653.60785-4-krzysztof.kozlowski@oss.qualcomm.com
>
Only system_noc has children, rest of the NoCs don't.
I will update the bindings to
1. disallow the patternProperties for the NoCs which don't have children.
2. drop the redundant clock property check for child NoCs at top-level
allOf:if:then:properties:.

Thanks,
Raviteja

> Best regards,
> Krzysztof
>