Linux Power Management development
 help / color / mirror / Atom feed
From: me@herrie.org
To: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Cc: Herman van Hazendonk <github.com@herrie.org>,
	Georgi Djakov <djakov@kernel.org>,
	Bjorn Andersson <andersson@kernel.org>,
	Konrad Dybcio <konradybcio@kernel.org>,
	Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	Conor Dooley <conor+dt@kernel.org>,
	linux-arm-msm@vger.kernel.org, linux-pm@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 1/2] dt-bindings: interconnect: qcom: add msm8660 NoC
Date: Sat, 06 Jun 2026 16:32:21 +0200	[thread overview]
Message-ID: <d6a95e9626845469764a11587ed65c7e@herrie.org> (raw)
In-Reply-To: <wypnu53w5pesj52zyrj3pydqzf2rbfrxa72uplz3mq64u447wf@gypyaug7iwkd>

On 2026-06-06 15:23, Dmitry Baryshkov wrote:
> 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@herrie.org>
>> ---
>>  .../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@herrie.org>
>> +
>> +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.
Feel free to send it. This is my first work on kernel ever and to be 
fair a lot of it comes from piggy backing on previous work, legacy 
kernels and insights from Claude & Gemini.

I can say it "works" for my limited tests, but I haven't run a full 
fledged OS yet to stress test most things.

HP TouchPad boots, audio works (though no Q6 (yet)), graphics works 
(Adreno 220), camera works (camss & vfe31), video plays via vidc, 
rotator, vfe works, sensors work (ALS, magnetometer, gyro), leds work, 
usb works, touchscreen works. Only thing I'm struggling with is wifi & 
bluetooth for the moment. It could very well be that when I rework 
things "properly" my wifi and bluetooth issues disappear and start to 
work. This old silicon is very unforgiving when it comes to bits set the 
wrong way.

So any guidance is much appreciated :)

As always there are multiple roads that lead to Rome :)

Thanks,
Herman

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

  reply	other threads:[~2026-06-06 14:32 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-06 12:34 [PATCH v3 0/2] interconnect: qcom: add MSM8x60 NoC driver Herman van Hazendonk
2026-06-06 12:34 ` [PATCH v3 1/2] dt-bindings: interconnect: qcom: add msm8660 NoC Herman van Hazendonk
2026-06-06 13:23   ` Dmitry Baryshkov
2026-06-06 14:32     ` me [this message]
2026-06-07 11:11       ` Dmitry Baryshkov
2026-06-06 12:34 ` [PATCH v3 2/2] interconnect: qcom: add MSM8x60 NoC driver Herman van Hazendonk
2026-06-17 10:36   ` Konrad Dybcio
2026-06-19  8:10     ` me

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d6a95e9626845469764a11587ed65c7e@herrie.org \
    --to=me@herrie.org \
    --cc=andersson@kernel.org \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=djakov@kernel.org \
    --cc=dmitry.baryshkov@oss.qualcomm.com \
    --cc=github.com@herrie.org \
    --cc=konradybcio@kernel.org \
    --cc=krzk+dt@kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=robh@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox