Re: [PATCH v3 1/2] dt-bindings: interconnect: qcom: add msm8660 NoC

From: Dmitry Baryshkov

Date: Sat Jun 06 2026 - 09:27:22 EST


On Sat, Jun 06, 2026 at 02:34:50PM +0200, Herman van Hazendonk wrote:
> Add a dt-binding schema and an interconnect master/slave ID header for
> the MSM8x60 family (MSM8260/MSM8660/APQ8060) Network-on-Chip. The
> chip exposes four NoC fabrics that the qnoc-msm8660 driver models:
>
> AFAB - Applications fabric (Scorpion CPU + L2)
> SFAB - System fabric (DMA, SPS, security)
> MMFAB - Multimedia fabric (MDP, GPU, camera, video, rotator)
> DFAB - Daytona fabric (SDC, ADM master/slave)
>
> The schema covers all four compatible strings, per-fabric clock-name
> lists (bus / bus_a / ebi1 / ebi1_a for AFAB; bus / bus_a / smi /
> smi_a for MMFAB; bus / bus_a for SFAB and DFAB), the required
> qcom,rpm phandle through which the provider hands the arbitration
> buffer to RPM firmware, and #interconnect-cells = <1>.
>
> The ID header lists per-fabric master / slave / gateway indices
> derived from the legacy vendor msm_bus_board_8660.c enums,
> normalised to the upstream interconnect-framework naming convention.
>
> Assisted-by: Claude:claude-opus-4-7 Sashiko:claude-haiku-4-5
> Signed-off-by: Herman van Hazendonk <github.com@xxxxxxxxxx>
> ---
> .../bindings/interconnect/qcom,msm8660.yaml | 166 +++++++++++++++++++++
> include/dt-bindings/interconnect/qcom,msm8660.h | 156 +++++++++++++++++++
> 2 files changed, 322 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/interconnect/qcom,msm8660.yaml b/Documentation/devicetree/bindings/interconnect/qcom,msm8660.yaml
> new file mode 100644
> index 000000000000..ff28c7d46c32
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/interconnect/qcom,msm8660.yaml
> @@ -0,0 +1,166 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/interconnect/qcom,msm8660.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm MSM8x60 family Network-On-Chip interconnect
> +
> +maintainers:
> + - Herman van Hazendonk <github.com@xxxxxxxxxx>
> +
> +examples:
> + - |
> + #include <dt-bindings/clock/qcom,rpmcc.h>
> +
> + interconnect-afab {
> + compatible = "qcom,msm8660-apps-fabric";
> + clocks = <&rpmcc RPM_APPS_FABRIC_CLK>,
> + <&rpmcc RPM_APPS_FABRIC_A_CLK>,
> + <&rpmcc RPM_EBI1_CLK>,
> + <&rpmcc RPM_EBI1_A_CLK>;
> + clock-names = "bus", "bus_a", "ebi1", "ebi1_a";
> + qcom,rpm = <&rpm>;
> + #interconnect-cells = <1>;
> + };
> +
> + interconnect-sfab {
> + compatible = "qcom,msm8660-system-fabric";
> + clocks = <&rpmcc RPM_SYS_FABRIC_CLK>,
> + <&rpmcc RPM_SYS_FABRIC_A_CLK>;
> + clock-names = "bus", "bus_a";
> + qcom,rpm = <&rpm>;
> + #interconnect-cells = <1>;
> + };
> +
> + interconnect-mmfab {
> + compatible = "qcom,msm8660-mmss-fabric";
> + clocks = <&rpmcc RPM_MM_FABRIC_CLK>,
> + <&rpmcc RPM_MM_FABRIC_A_CLK>,
> + <&rpmcc RPM_SMI_CLK>,
> + <&rpmcc RPM_SMI_A_CLK>;
> + clock-names = "bus", "bus_a", "smi", "smi_a";
> + qcom,rpm = <&rpm>;
> + #interconnect-cells = <1>;
> + };
> +
> + interconnect-dfab {
> + compatible = "qcom,msm8660-daytona-fabric";
> + clocks = <&rpmcc RPM_DAYTONA_FABRIC_CLK>,
> + <&rpmcc RPM_DAYTONA_FABRIC_A_CLK>;

Looking at it, I don't think those clocks sould be exposed here. Please
follow what Konrad did some time ago for smd-rpm interconnects: add
direct voting to the interconnect driver, them drop them from the clocks
driver. Ping me if you need help finding corresponding patch series (as
there were few more tricks.

> + clock-names = "bus", "bus_a";
> + qcom,rpm = <&rpm>;
> + #interconnect-cells = <1>;
> + };
> +...

--
With best wishes
Dmitry