From: Krzysztof Kozlowski <krzk@kernel.org>
To: George Moussalem <george.moussalem@outlook.com>
Cc: Johannes Berg <johannes@sipsolutions.net>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Jeff Johnson <jjohnson@kernel.org>,
Bjorn Andersson <andersson@kernel.org>,
Konrad Dybcio <konradybcio@kernel.org>,
linux-wireless@vger.kernel.org, devicetree@vger.kernel.org,
ath11k@lists.infradead.org, linux-kernel@vger.kernel.org,
Vignesh Viswanathan <vignesh.viswanathan@oss.qualcomm.com>,
Varadarajan Narayanan <varadarajan.narayanan@oss.qualcomm.com>,
linux-arm-msm@vger.kernel.org
Subject: Re: [PATCH ath-next 02/16] dt-bindings: net: wireless: ath11k: Add bindings for IPQ5018
Date: Mon, 28 Sep 2026 12:45:22 +0200 [thread overview]
Message-ID: <20260928-sloppy-perfect-marmoset-bfec90@quoll> (raw)
In-Reply-To: <20260923-ipq5018-qcn6122-mpd-v1-2-86729521a75c@outlook.com>
On Wed, Sep 23, 2026 at 04:05:08PM +0400, George Moussalem wrote:
> Although support was added for IPQ5018, the bindings are missing, so
> let's add them.
So there is no ipq5018 compatible in existing file.
>
> WiFi on IPQ5018 boards come in one of the following configurations:
> 1. IPQ5018 (standalone) + optional 5G/6G WiFi card (such as QCN9074)
> 2. IPQ5018 (MPD) + one or two 5G/6G QCN6122 WiFi chips where QCN6122
> is an IPQ5018-specific companion chip.
>
> IPQ5018 implements the multi-PD architecture as follows:
>
> +-----------------------------+
> | Q6 Remote Processor |
> | RootPD |
> +--------------+--------------+
> |
> |
> |
> +---------------------+---------------------+
> | | |
> +-----v-----+ +-----v-----+ +-----v-----+
> | UserPD1 | | UserPD2 | | UserPD3 |
> | IPQ5018 | | QCN6122 #1| | QCN6122 #2|
> | (Radio) | | (Radio) | | (Radio) |
> +-----------+ +-----------+ +-----------+
>
> The rootPD is responsible for managing the lifecycle of the UserPD and
> shared resources and providing SSR notifiers. There are different
> firmware blobs that include either the rootPD and userPD binaries for
> IPQ5018-only which auto-spawns the userPD for IPQ5018 WiFi, or for
> IPQ5018 and QCN6122 for which the userPDs for each radio must be spawned
> by the ath11k driver.
>
> SMP2P is used for signaling between the host and the Q6 remote processor
> to manage the lifecycle of the userPDs, so add the required interrupts
> and smem-states for incoming and outgoing interrupts in the case of the
> IPQ5018 + QCN6122 MPD configuration. Otherwise, the SMP2P interrupts and
> smem-states are not required for the IPQ5018-only configuration.
>
> In addition, document the memory regions needed for loading the BDF and
> M3 firmware as well as for assigning the M3 dump memory block.
>
> Signed-off-by: George Moussalem <george.moussalem@outlook.com>
> ---
> .../bindings/net/wireless/qcom,ath11k.yaml | 423 ++++++++++++++++++++-
> 1 file changed, 410 insertions(+), 13 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
> index a846cd704b19..621ad6d4ddad 100644
> --- a/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
> +++ b/Documentation/devicetree/bindings/net/wireless/qcom,ath11k.yaml
Where is the compatible update?
> @@ -29,8 +29,13 @@ properties:
> minItems: 32
> maxItems: 52
56
>
> + interrupts-extended:
git grep should tell you - it's not needed. Drop.
> + minItems: 56
> + maxItems: 56
> +
> interrupt-names:
> - maxItems: 52
> + minItems: 32
> + maxItems: 56
>
> qcom,rproc:
> $ref: /schemas/types.yaml#/definitions/phandle
> @@ -56,11 +61,15 @@ properties:
>
> memory-region:
> minItems: 1
> - maxItems: 2
> + maxItems: 3
> description:
> phandle to a node describing reserved memory (System RAM memory)
> used by ath11k firmware (see bindings/reserved-memory/reserved-memory.txt)
>
> + memory-region-names:
> + minItems: 1
> + maxItems: 3
Names would have to be here. But why do you need it in the first place?
> +
> iommus:
> minItems: 1
> maxItems: 2
> @@ -78,20 +87,11 @@ properties:
> qcom,smem-states:
> $ref: /schemas/types.yaml#/definitions/phandle-array
> description: State bits used by the AP to signal the WLAN Q6.
> - items:
> - - description: Signal bits used to enable/disable low power mode
> - on WCN6750 in the case of WoW (Wake on Wireless).
> - items:
> - - description: Phandle to the Shared Memory Point 2 Point device
> - handling the communication with a remote processor
> - - description: Single bit index to toggle in the value sent to
> - the remote processor
> - maximum: 32
> + minItems: 1
> + maxItems: 3
>
> qcom,smem-state-names:
> description: The names of the state bits used for SMP2P output.
> - items:
> - - const: wlan-smp2p-out
Why isn't all this in qcom,ipq5332-wifi.yaml?
>
> required:
> - compatible
> @@ -103,6 +103,242 @@ additionalProperties: false
>
> allOf:
> - $ref: ieee80211.yaml#
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - qcom,ipq5018-wifi
> + then:
> + properties:
> + interrupts:
> + items:
> + - description: misc-pulse1 interrupt events
> + - description: misc-latch interrupt events
> + - description: sw exception interrupt events
> + - description: watchdog interrupt events
> + - description: interrupt event for ring CE0
> + - description: interrupt event for ring CE1
> + - description: interrupt event for ring CE2
> + - description: interrupt event for ring CE3
> + - description: interrupt event for ring CE4
> + - description: interrupt event for ring CE5
> + - description: interrupt event for ring CE6
> + - description: interrupt event for ring CE7
> + - description: interrupt event for ring CE8
> + - description: interrupt event for ring CE9
> + - description: interrupt event for ring CE10
> + - description: interrupt event for ring CE11
> + - description: interrupt event for ring host2wbm-desc-feed
> + - description: interrupt event for ring host2reo-re-injection
> + - description: interrupt event for ring host2reo-command
> + - description: interrupt event for ring host2rxdma-monitor-ring3
> + - description: interrupt event for ring host2rxdma-monitor-ring2
> + - description: interrupt event for ring host2rxdma-monitor-ring1
> + - description: interrupt event for ring reo2ost-exception
> + - description: interrupt event for ring wbm2host-rx-release
> + - description: interrupt event for ring reo2host-status
> + - description: interrupt event for ring reo2host-destination-ring4
> + - description: interrupt event for ring reo2host-destination-ring3
> + - description: interrupt event for ring reo2host-destination-ring2
> + - description: interrupt event for ring reo2host-destination-ring1
> + - description: interrupt event for ring rxdma2host-monitor-destination-mac3
> + - description: interrupt event for ring rxdma2host-monitor-destination-mac2
> + - description: interrupt event for ring rxdma2host-monitor-destination-mac1
> + - description: interrupt event for ring ppdu-end-interrupts-mac3
> + - description: interrupt event for ring ppdu-end-interrupts-mac2
> + - description: interrupt event for ring ppdu-end-interrupts-mac1
> + - description: interrupt event for ring rxdma2host-monitor-status-ring-mac3
> + - description: interrupt event for ring rxdma2host-monitor-status-ring-mac2
> + - description: interrupt event for ring rxdma2host-monitor-status-ring-mac1
> + - description: interrupt event for ring host2rxdma-host-buf-ring-mac3
> + - description: interrupt event for ring host2rxdma-host-buf-ring-mac2
> + - description: interrupt event for ring host2rxdma-host-buf-ring-mac1
> + - description: interrupt event for ring rxdma2host-destination-ring-mac3
> + - description: interrupt event for ring rxdma2host-destination-ring-mac2
> + - description: interrupt event for ring rxdma2host-destination-ring-mac1
> + - description: interrupt event for ring host2tcl-input-ring4
> + - description: interrupt event for ring host2tcl-input-ring3
> + - description: interrupt event for ring host2tcl-input-ring2
> + - description: interrupt event for ring host2tcl-input-ring1
> + - description: interrupt event for ring wbm2host-tx-completions-ring3
> + - description: interrupt event for ring wbm2host-tx-completions-ring2
> + - description: interrupt event for ring wbm2host-tx-completions-ring1
> + - description: interrupt event for ring tcl2host-status-ring
> + interrupts-extended:
> + items:
> + - description: misc-pulse1 interrupt events
> + - description: misc-latch interrupt events
> + - description: sw exception interrupt events
> + - description: watchdog interrupt events
> + - description: interrupt event for ring CE0
> + - description: interrupt event for ring CE1
> + - description: interrupt event for ring CE2
> + - description: interrupt event for ring CE3
> + - description: interrupt event for ring CE4
> + - description: interrupt event for ring CE5
> + - description: interrupt event for ring CE6
> + - description: interrupt event for ring CE7
> + - description: interrupt event for ring CE8
> + - description: interrupt event for ring CE9
> + - description: interrupt event for ring CE10
> + - description: interrupt event for ring CE11
> + - description: interrupt event for ring host2wbm-desc-feed
> + - description: interrupt event for ring host2reo-re-injection
> + - description: interrupt event for ring host2reo-command
> + - description: interrupt event for ring host2rxdma-monitor-ring3
> + - description: interrupt event for ring host2rxdma-monitor-ring2
> + - description: interrupt event for ring host2rxdma-monitor-ring1
> + - description: interrupt event for ring reo2ost-exception
> + - description: interrupt event for ring wbm2host-rx-release
> + - description: interrupt event for ring reo2host-status
> + - description: interrupt event for ring reo2host-destination-ring4
> + - description: interrupt event for ring reo2host-destination-ring3
> + - description: interrupt event for ring reo2host-destination-ring2
> + - description: interrupt event for ring reo2host-destination-ring1
> + - description: interrupt event for ring rxdma2host-monitor-destination-mac3
> + - description: interrupt event for ring rxdma2host-monitor-destination-mac2
> + - description: interrupt event for ring rxdma2host-monitor-destination-mac1
> + - description: interrupt event for ring ppdu-end-interrupts-mac3
> + - description: interrupt event for ring ppdu-end-interrupts-mac2
> + - description: interrupt event for ring ppdu-end-interrupts-mac1
> + - description: interrupt event for ring rxdma2host-monitor-status-ring-mac3
> + - description: interrupt event for ring rxdma2host-monitor-status-ring-mac2
> + - description: interrupt event for ring rxdma2host-monitor-status-ring-mac1
> + - description: interrupt event for ring host2rxdma-host-buf-ring-mac3
> + - description: interrupt event for ring host2rxdma-host-buf-ring-mac2
> + - description: interrupt event for ring host2rxdma-host-buf-ring-mac1
> + - description: interrupt event for ring rxdma2host-destination-ring-mac3
> + - description: interrupt event for ring rxdma2host-destination-ring-mac2
> + - description: interrupt event for ring rxdma2host-destination-ring-mac1
> + - description: interrupt event for ring host2tcl-input-ring4
> + - description: interrupt event for ring host2tcl-input-ring3
> + - description: interrupt event for ring host2tcl-input-ring2
> + - description: interrupt event for ring host2tcl-input-ring1
> + - description: interrupt event for ring wbm2host-tx-completions-ring3
> + - description: interrupt event for ring wbm2host-tx-completions-ring2
> + - description: interrupt event for ring wbm2host-tx-completions-ring1
> + - description: interrupt event for ring tcl2host-status-ring
> + - description: Q6 firmware user PD fatal interrupt event
> + - description: Q6 firmware user PD ready interrupt event
> + - description: Q6 firmware user PD spawn interrupt event
> + - description: Q6 firmware user PD stop ack interrupt event
> + interrupt-names:
> + minItems: 52
> + items:
> + - const: misc-pulse1
> + - const: misc-latch
> + - const: sw-exception
> + - const: watchdog
> + - const: ce0
> + - const: ce1
> + - const: ce2
> + - const: ce3
> + - const: ce4
> + - const: ce5
> + - const: ce6
> + - const: ce7
> + - const: ce8
> + - const: ce9
> + - const: ce10
> + - const: ce11
> + - const: host2wbm-desc-feed
> + - const: host2reo-re-injection
> + - const: host2reo-command
> + - const: host2rxdma-monitor-ring3
> + - const: host2rxdma-monitor-ring2
> + - const: host2rxdma-monitor-ring1
> + - const: reo2ost-exception
> + - const: wbm2host-rx-release
> + - const: reo2host-status
> + - const: reo2host-destination-ring4
> + - const: reo2host-destination-ring3
> + - const: reo2host-destination-ring2
> + - const: reo2host-destination-ring1
> + - const: rxdma2host-monitor-destination-mac3
> + - const: rxdma2host-monitor-destination-mac2
> + - const: rxdma2host-monitor-destination-mac1
> + - const: ppdu-end-interrupts-mac3
> + - const: ppdu-end-interrupts-mac2
> + - const: ppdu-end-interrupts-mac1
> + - const: rxdma2host-monitor-status-ring-mac3
> + - const: rxdma2host-monitor-status-ring-mac2
> + - const: rxdma2host-monitor-status-ring-mac1
> + - const: host2rxdma-host-buf-ring-mac3
> + - const: host2rxdma-host-buf-ring-mac2
> + - const: host2rxdma-host-buf-ring-mac1
> + - const: rxdma2host-destination-ring-mac3
> + - const: rxdma2host-destination-ring-mac2
> + - const: rxdma2host-destination-ring-mac1
> + - const: host2tcl-input-ring4
> + - const: host2tcl-input-ring3
> + - const: host2tcl-input-ring2
> + - const: host2tcl-input-ring1
> + - const: wbm2host-tx-completions-ring3
> + - const: wbm2host-tx-completions-ring2
> + - const: wbm2host-tx-completions-ring1
> + - const: tcl2host-status-ring
> + - const: fatal
> + - const: ready
> + - const: spawn
> + - const: stop-ack
> + memory-region:
> + items:
> + - description: memory region for Q6 firmware
> + - description: memory region for M3 firmware
> + - description: memory region for M3 dump
> + memory-region-names:
> + items:
> + - const: q6-region
> + - const: m3-region
> + - const: m3-dump
> + qcom,smem-states:
> + items:
> + - description: Signal bit used to shutdown Q6 user PD
> + items:
> + - description: Phandle to the Shared Memory Point 2 Point device
> + - description: Single bit index to toggle in the value sent to the remote processor
> + maximum: 32
> + - description: Signal bit used to stop Q6 user PD
> + items:
> + - description: Phandle to the Shared Memory Point 2 Point device
> + - description: Single bit index to toggle in the value sent to the remote processor
> + maximum: 32
> + - description: Signal bit used to spawn Q6 user PD
> + items:
> + - description: Phandle to the Shared Memory Point 2 Point device
> + - description: Single bit index to toggle in the value sent to the remote processor
> + maximum: 32
> + qcom,smem-state-names:
> + items:
> + - const: shutdown
> + - const: stop
> + - const: spawn
> + allOf:
> + - anyOf:
> + - required:
> + - interrupts
> + - required:
> + - interrupts-extended
> + - if:
> + required:
> + - interrupts-extended
> + then:
> + properties:
> + interrupt-names:
> + minItems: 56
> + required:
> + - interrupts-extended
> + - memory-region
> + - memory-region-names
> + - qcom,smem-states
> + - qcom,smem-state-names
> + else:
> + properties:
> + interrupt-names:
> + minItems: 52
> + maxItems: 52
> +
> - if:
> properties:
> compatible:
> @@ -265,6 +501,19 @@ allOf:
> - description: interrupt event for ring DP20
> - description: interrupt event for ring DP21
> - description: interrupt event for ring DP22
> + qcom,smem-states:
> + items:
> + - description: Signal bits used to enable/disable low power mode
> + on WCN6750 in the case of WoW (Wake on Wireless).
> + items:
> + - description: Phandle to the Shared Memory Point 2 Point device
> + handling the communication with a remote processor
> + - description: Single bit index to toggle in the value sent to
> + the remote processor
> + maximum: 32
> + qcom,smem-state-names:
> + items:
> + - const: wlan-smp2p-out
>
> examples:
> - |
> @@ -464,3 +713,151 @@ examples:
> iommus = <&apps_smmu 0x1c02 0x1>;
> };
> };
> +
> + - |
No, three examples are enough. No need for fourth.
Best regards,
Krzysztof
next prev parent reply other threads:[~2026-09-28 10:45 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-23 12:05 [PATCH ath-next 00/16] wifi: ath11k: add MultiPD support for AHB platforms George Moussalem via B4 Relay
2026-09-23 12:05 ` [PATCH ath-next 01/16] dt-bindings: net: wireless: ath11k: Sort compatible names alphabetically George Moussalem via B4 Relay
2026-09-28 10:45 ` Krzysztof Kozlowski
2026-09-23 12:05 ` [PATCH ath-next 02/16] dt-bindings: net: wireless: ath11k: Add bindings for IPQ5018 George Moussalem via B4 Relay
2026-09-23 12:14 ` sashiko-bot
2026-09-28 10:45 ` Krzysztof Kozlowski [this message]
2026-09-29 10:03 ` George Moussalem
2026-09-23 12:05 ` [PATCH ath-next 03/16] wifi: ath11k: Register root PD rproc notifier George Moussalem via B4 Relay
2026-09-23 12:17 ` sashiko-bot
2026-09-23 12:05 ` [PATCH ath-next 04/16] wifi: ath11k: Add support for loading m3 mbn firmware George Moussalem via B4 Relay
2026-09-23 12:15 ` sashiko-bot
2026-09-23 12:05 ` [PATCH ath-next 05/16] wifi: ath11k: Add ability to set BDF and M3 dump memory addresses George Moussalem via B4 Relay
2026-09-23 12:18 ` sashiko-bot
2026-09-23 12:05 ` [PATCH ath-next 06/16] firmware: qcom: scm: Add support for setting internal WiFi power mode George Moussalem via B4 Relay
2026-09-23 12:05 ` [PATCH ath-next 07/16] wifi: ath11k: Register userPD interrupts and SMEM entries George Moussalem via B4 Relay
2026-09-23 12:19 ` sashiko-bot
2026-09-23 12:05 ` [PATCH ath-next 08/16] wifi: ath11k: Power up userPD George Moussalem via B4 Relay
2026-09-23 12:17 ` sashiko-bot
2026-09-23 12:05 ` [PATCH ath-next 09/16] wifi: ath11k: Power down userPD George Moussalem via B4 Relay
2026-09-23 12:15 ` sashiko-bot
2026-09-23 12:05 ` [PATCH ath-next 10/16] dt-bindings: net: wireless: ath11k: Add bindings for QCN6122 George Moussalem via B4 Relay
2026-09-23 12:17 ` sashiko-bot
2026-09-23 12:05 ` [PATCH ath-next 11/16] wifi: ath11k: add hw params " George Moussalem via B4 Relay
2026-09-23 12:05 ` [PATCH ath-next 12/16] wifi: ath11k: add hal regs " George Moussalem via B4 Relay
2026-09-23 12:05 ` [PATCH ath-next 13/16] wifi: ath11k: add hw ring mask " George Moussalem via B4 Relay
2026-09-23 12:29 ` sashiko-bot
2026-09-23 12:05 ` [PATCH ath-next 14/16] wifi: ath11k: update hif and pci ops " George Moussalem via B4 Relay
2026-09-23 12:05 ` [PATCH ath-next 15/16] wifi: ath11k: define userPDs " George Moussalem via B4 Relay
2026-09-23 12:28 ` sashiko-bot
2026-09-23 12:05 ` [PATCH ath-next 16/16] wifi: ath11k: add QCN6122 device support George Moussalem via B4 Relay
2026-09-23 12:25 ` sashiko-bot
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=20260928-sloppy-perfect-marmoset-bfec90@quoll \
--to=krzk@kernel.org \
--cc=andersson@kernel.org \
--cc=ath11k@lists.infradead.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=george.moussalem@outlook.com \
--cc=jjohnson@kernel.org \
--cc=johannes@sipsolutions.net \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-wireless@vger.kernel.org \
--cc=robh@kernel.org \
--cc=varadarajan.narayanan@oss.qualcomm.com \
--cc=vignesh.viswanathan@oss.qualcomm.com \
/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