* [PATCH RFC 0/3] remoteproc/qcom,q6v5: introduce IPQ9574
@ 2025-12-10 0:37 Alexandru Gagniuc
2025-12-10 0:37 ` [PATCH RFC 1/3] dt-bindings: remoteproc: qcom,ipq8074-wcss-pil: convert to DT schema Alexandru Gagniuc
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Alexandru Gagniuc @ 2025-12-10 0:37 UTC (permalink / raw)
To: robh, krzk+dt, conor+dt, devicetree
Cc: andersson, mathieu.poirier, konradybcio, linux-arm-msm,
linux-remoteproc, linux-kernel, Alexandru Gagniuc
I want to enable ath11k on IPQ9574 SoCs, which uses the qcom remoteproc
for communication with firmware. It is similar to qcom,ipq8074-wcss-pil,
and I think it makes sense to extend the IP8074 path. The existing bidings
are not yaml. Am I required to convert the bindings to DT schema before
updating them?
Whom do I add as the maintainer for the YAML binding? Do I add my name? Do
I need to find an existing maintainer who is willing to use their name?
I would like to add the remoteproc node to IPQ8074. One of the resets is
missing from "qcom,gcc-ipq8074.h". Can I use a placeholder value with a
comment? Am I expected to enable the reset in code before adding the
devicetree node?
Alex
---
Alexandru Gagniuc (3):
dt-bindings: remoteproc: qcom,ipq8074-wcss-pil: convert to DT schema
dt-bindings: remoteproc: qcom: add IPQ9574 image loader
arm64: dts: qcom: ipq8074: add remoteproc nodes
.../remoteproc/qcom,ipq9574-wcss-pil.yaml | 269 ++++++++++++++++++
.../bindings/remoteproc/qcom,q6v5.txt | 102 -------
arch/arm64/boot/dts/qcom/ipq8074.dtsi | 79 +++++
3 files changed, 348 insertions(+), 102 deletions(-)
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,ipq9574-wcss-pil.yaml
delete mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt
--
2.45.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH RFC 1/3] dt-bindings: remoteproc: qcom,ipq8074-wcss-pil: convert to DT schema
2025-12-10 0:37 [PATCH RFC 0/3] remoteproc/qcom,q6v5: introduce IPQ9574 Alexandru Gagniuc
@ 2025-12-10 0:37 ` Alexandru Gagniuc
2025-12-16 5:53 ` Krzysztof Kozlowski
2025-12-10 0:37 ` [PATCH RFC 2/3] dt-bindings: remoteproc: qcom: add IPQ9574 image loader Alexandru Gagniuc
2025-12-10 0:37 ` [PATCH RFC 3/3] arm64: dts: qcom: ipq8074: add remoteproc nodes Alexandru Gagniuc
2 siblings, 1 reply; 8+ messages in thread
From: Alexandru Gagniuc @ 2025-12-10 0:37 UTC (permalink / raw)
To: robh, krzk+dt, conor+dt, devicetree, Bjorn Andersson,
Mathieu Poirier, Placeholder Maintainer
Cc: konradybcio, linux-arm-msm, linux-remoteproc, linux-kernel,
Alexandru Gagniuc
Convert the QCS404 and IPQ WCSS Peripheral Image Loader bindings to DT
schema. The text bindngs incorrectly implied that IPQ8074 needs only
one qcom,smem-states entry. This is only true for QCS404. IPQ8074
requires both "stop" and "shutdown".
Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
---
.../remoteproc/qcom,ipq9574-wcss-pil.yaml | 167 ++++++++++++++++++
.../bindings/remoteproc/qcom,q6v5.txt | 102 -----------
2 files changed, 167 insertions(+), 102 deletions(-)
create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,ipq9574-wcss-pil.yaml
delete mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt
diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,ipq9574-wcss-pil.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,ipq9574-wcss-pil.yaml
new file mode 100644
index 0000000000000..d28f42661d084
--- /dev/null
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,ipq9574-wcss-pil.yaml
@@ -0,0 +1,167 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/remoteproc/qcom,ipq9574-wcss-pil.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm IPQ WCSS Peripheral Image Loader
+
+maintainers:
+ - Placeholder Maintainer <placeholder@kernel.org>
+
+description:
+ The IPQ WCSS peripheral image loader is used to load firmware on the Qualcomm
+ Q6 processor that exposes WiFi-6 devices to the OS via the AHB bus. It is
+ generally used by ath11k to start up the wireless firmware.
+
+properties:
+ compatible:
+ enum:
+ - qcom,ipq8074-wcss-pil
+ - qcom,qcs404-wcss-pil
+
+ reg:
+ minItems: 2
+ maxItems: 2
+ description:
+ The base address and size of the QDSP6, and RMB register blocks
+
+ reg-names:
+ items:
+ - const: qdsp6
+ - const: rmb
+
+ interrupts-extended:
+ minItems: 5
+ maxItems: 5
+
+ interrupt-names:
+ items:
+ - const: wdog
+ - const: fatal
+ - const: ready
+ - const: handover
+ - const: stop-ack
+
+ resets:
+ minItems: 3
+ maxItems: 3
+
+ reset-names:
+ items:
+ - const: wcss_aon_reset
+ - const: wcss_reset
+ - const: wcss_q6_reset
+
+ clocks:
+ minItems: 10
+ maxItems: 13
+
+ clock-names:
+ minItems: 10
+ maxItems: 13
+
+ cx-supply:
+ description:
+ reference to the regulators used for the booting of the Hexagon core
+
+ memory-region:
+ description: Reference to wcss reserved-memory region
+
+ qcom,halt-regs:
+ $ref: /schemas/types.yaml#/definitions/phandle-array
+ description:
+ A phandle reference to a syscon representing TCSR followed by the three
+ offsets within syscon for q6, wcss and nc halt registers.
+ items:
+ - items:
+ - description: phandle to TCSR_MUTEX registers
+ - description: offset to the Q6 halt register
+ - description: offset to the wcss halt register
+ - description: offset to the nc halt register
+
+ qcom,smem-states:
+ $ref: /schemas/types.yaml#/definitions/phandle-array
+ description: States used by the AP to signal the remote processor
+
+ qcom,smem-state-names:
+ description:
+ Names of the states used by the AP to signal the remote processor
+
+ glink-edge:
+ $ref: /schemas/remoteproc/qcom,glink-edge.yaml#
+ description:
+ Qualcomm G-Link subnode which represents communication edge, channels
+ and devices related to the Modem.
+
+required:
+ - compatible
+ - reg
+ - reg-names
+ - interrupts-extended
+ - interrupt-names
+ - memory-region
+ - qcom,halt-regs
+ - qcom,smem-states
+ - qcom,smem-state-names
+
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,ipq8074-wcss-pil
+ then:
+ properties:
+ qcom,smem-states:
+ items:
+ - description: Shutdown Q6
+ - description: Stop Q6
+ qcom,smem-state-names:
+ items:
+ - const: shutdown
+ - const: stop
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,qcs404-wcss-pil
+ then:
+ properties:
+ qcom,smem-states:
+ maxItems: 1
+ qcom,smem-state-names:
+ items:
+ - const: stop
+
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,qcs404-wcss-pil
+ then:
+ properties:
+ clocks:
+ minItems: 10
+ maxItems: 10
+ clock-names:
+ items:
+ - const: xo
+ - const: gcc_abhs_cbcr
+ - const: gcc_axim_cbcr
+ - const: lcc_ahbfabric_cbc
+ - const: tcsr_lcc_cbc
+ - const: lcc_abhs_cbc
+ - const: lcc_tcm_slave_cbc
+ - const: lcc_abhm_cbc
+ - const: lcc_axim_cbc
+ - const: lcc_bcr_sleep
+ required:
+ - clocks
+ - clock-names
+ - cx-supply
+
+additionalProperties: false
diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt b/Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt
deleted file mode 100644
index 573a88b606773..0000000000000
--- a/Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt
+++ /dev/null
@@ -1,102 +0,0 @@
-Qualcomm Hexagon Peripheral Image Loader
-
-This document defines the binding for a component that loads and boots firmware
-on the Qualcomm Hexagon core.
-
-- compatible:
- Usage: required
- Value type: <string>
- Definition: must be one of:
- "qcom,ipq8074-wcss-pil"
- "qcom,qcs404-wcss-pil"
-
-- reg:
- Usage: required
- Value type: <prop-encoded-array>
- Definition: must specify the base address and size of the qdsp6 and
- rmb register blocks
-
-- reg-names:
- Usage: required
- Value type: <stringlist>
- Definition: must be "q6dsp" and "rmb"
-
-- interrupts-extended:
- Usage: required
- Value type: <prop-encoded-array>
- Definition: reference to the interrupts that match interrupt-names
-
-- interrupt-names:
- Usage: required
- Value type: <stringlist>
- Definition: must be "wdog", "fatal", "ready", "handover", "stop-ack"
-
-- clocks:
- Usage: required
- Value type: <phandle>
- Definition: reference to the clocks that match clock-names
-
-- clock-names:
- Usage: required
- Value type: <stringlist>
- Definition: The clocks needed depend on the compatible string:
- qcom,ipq8074-wcss-pil:
- no clock names required
- qcom,qcs404-wcss-pil:
- must be "xo", "gcc_abhs_cbcr", "gcc_abhs_cbcr",
- "gcc_axim_cbcr", "lcc_ahbfabric_cbc", "tcsr_lcc_cbc",
- "lcc_abhs_cbc", "lcc_tcm_slave_cbc", "lcc_abhm_cbc",
- "lcc_axim_cbc", "lcc_bcr_sleep"
-
-- resets:
- Usage: required
- Value type: <phandle>
- Definition: reference to the list of 3 reset-controllers for the
- wcss sub-system
-
-- reset-names:
- Usage: required
- Value type: <stringlist>
- Definition: must be "wcss_aon_reset", "wcss_reset", "wcss_q6_reset"
- for the wcss sub-system
-
-- memory-region:
- Usage: required
- Value type: <phandle>
- Definition: reference to wcss reserved-memory region.
-
-For the compatible string below the following supplies are required:
- "qcom,qcs404-wcss-pil"
-- cx-supply:
- Usage: required
- Value type: <phandle>
- Definition: reference to the regulators to be held on behalf of the
- booting of the Hexagon core
-
-- qcom,smem-states:
- Usage: required
- Value type: <phandle>
- Definition: reference to the smem state for requesting the Hexagon to
- shut down
-
-- qcom,smem-state-names:
- Usage: required
- Value type: <stringlist>
- Definition: must be "stop"
-
-- qcom,halt-regs:
- Usage: required
- Value type: <prop-encoded-array>
- Definition: a phandle reference to a syscon representing TCSR followed
- by the three offsets within syscon for q6, wcss and nc
- halt registers.
-
-- memory-region:
- Usage: required
- Value type: <phandle>
- Definition: reference to the reserved-memory for the region
-
-The Hexagon node may also have an subnode named either "smd-edge" or
-"glink-edge" that describes the communication edge, channels and devices
-related to the Hexagon. See ../soc/qcom/qcom,smd.yaml and
-../soc/qcom/qcom,glink.txt for details on how to describe these.
--
2.45.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH RFC 2/3] dt-bindings: remoteproc: qcom: add IPQ9574 image loader
2025-12-10 0:37 [PATCH RFC 0/3] remoteproc/qcom,q6v5: introduce IPQ9574 Alexandru Gagniuc
2025-12-10 0:37 ` [PATCH RFC 1/3] dt-bindings: remoteproc: qcom,ipq8074-wcss-pil: convert to DT schema Alexandru Gagniuc
@ 2025-12-10 0:37 ` Alexandru Gagniuc
2025-12-10 0:37 ` [PATCH RFC 3/3] arm64: dts: qcom: ipq8074: add remoteproc nodes Alexandru Gagniuc
2 siblings, 0 replies; 8+ messages in thread
From: Alexandru Gagniuc @ 2025-12-10 0:37 UTC (permalink / raw)
To: robh, krzk+dt, conor+dt, devicetree, Bjorn Andersson,
Mathieu Poirier, Placeholder Maintainer
Cc: konradybcio, linux-arm-msm, linux-remoteproc, linux-kernel,
Alexandru Gagniuc
Document the IPQ9574 native (non-PAS) WCSS image loader. It is similar
to IPQ8074 WCSS, but requires several new clocks. These clocks must be
enabled in non-PAS mode, and are not optional. Add an example that
uses the "qcom,ipq9574-wcss-pil" binding.
Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
---
.../remoteproc/qcom,ipq9574-wcss-pil.yaml | 102 ++++++++++++++++++
1 file changed, 102 insertions(+)
diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,ipq9574-wcss-pil.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,ipq9574-wcss-pil.yaml
index d28f42661d084..3daa1cb736bf2 100644
--- a/Documentation/devicetree/bindings/remoteproc/qcom,ipq9574-wcss-pil.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,ipq9574-wcss-pil.yaml
@@ -18,6 +18,7 @@ properties:
compatible:
enum:
- qcom,ipq8074-wcss-pil
+ - qcom,ipq9574-wcss-pil
- qcom,qcs404-wcss-pil
reg:
@@ -112,6 +113,7 @@ allOf:
contains:
enum:
- qcom,ipq8074-wcss-pil
+ - qcom,ipq9574-wcss-pil
then:
properties:
qcom,smem-states:
@@ -136,6 +138,35 @@ allOf:
items:
- const: stop
+ - if:
+ properties:
+ compatible:
+ contains:
+ enum:
+ - qcom,ipq9574-wcss-pil
+ then:
+ properties:
+ clocks:
+ minItems: 13
+ clock-names:
+ items:
+ - const: anoc_wcss_axi_m
+ - const: wcss_ahb_s
+ - const: wcss_ecahb
+ - const: wcss_acmt
+ - const: wcss_axi_m
+ - const: q6_axim
+ - const: q6_axim2
+ - const: q6_ahb
+ - const: q6_ahb_s
+ - const: q6ss_boot
+ - const: mem_noc_q6_axi
+ - const: wcss_q6_tbu
+ - const: sys_noc_wcss_ahb
+ required:
+ - clocks
+ - clock-names
+
- if:
properties:
compatible:
@@ -165,3 +196,74 @@ allOf:
- cx-supply
additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/qcom,ipq9574-gcc.h>
+ #include <dt-bindings/interrupt-controller/arm-gic.h>
+ #include <dt-bindings/reset/qcom,ipq9574-gcc.h>
+
+ q6v5_wcss: remoteproc@cd00000 {
+ compatible = "qcom,ipq9574-wcss-pil";
+ reg = <0x0cd00000 0x4040>,
+ <0x004ab000 0x20>;
+ reg-names = "qdsp6", "rmb";
+
+ interrupts-extended = <&intc GIC_SPI 325 IRQ_TYPE_EDGE_RISING>,
+ <&wcss_smp2p_in 0 IRQ_TYPE_NONE>,
+ <&wcss_smp2p_in 1 IRQ_TYPE_NONE>,
+ <&wcss_smp2p_in 2 IRQ_TYPE_NONE>,
+ <&wcss_smp2p_in 3 IRQ_TYPE_NONE>;
+ interrupt-names = "wdog", "fatal", "ready",
+ "handover", "stop-ack";
+
+ resets = <&gcc GCC_WCSSAON_RESET>,
+ <&gcc GCC_WCSS_BCR>,
+ <&gcc GCC_WCSS_Q6_BCR>;
+ reset-names = "wcss_aon_reset",
+ "wcss_reset",
+ "wcss_q6_reset";
+
+ clocks = <&gcc GCC_ANOC_WCSS_AXI_M_CLK>,
+ <&gcc GCC_WCSS_AHB_S_CLK>,
+ <&gcc GCC_WCSS_ECAHB_CLK>,
+ <&gcc GCC_WCSS_ACMT_CLK>,
+ <&gcc GCC_WCSS_AXI_M_CLK>,
+ <&gcc GCC_Q6_AXIM_CLK>,
+ <&gcc GCC_Q6_AXIM2_CLK>,
+ <&gcc GCC_Q6_AHB_CLK>,
+ <&gcc GCC_Q6_AHB_S_CLK>,
+ <&gcc GCC_Q6SS_BOOT_CLK>,
+ <&gcc GCC_MEM_NOC_Q6_AXI_CLK>,
+ <&gcc GCC_WCSS_Q6_TBU_CLK>,
+ <&gcc GCC_SYS_NOC_WCSS_AHB_CLK>;
+
+ clock-names = "anoc_wcss_axi_m",
+ "wcss_ahb_s",
+ "wcss_ecahb",
+ "wcss_acmt",
+ "wcss_axi_m",
+ "q6_axim",
+ "q6_axim2",
+ "q6_ahb",
+ "q6_ahb_s",
+ "q6ss_boot",
+ "mem_noc_q6_axi",
+ "wcss_q6_tbu",
+ "sys_noc_wcss_ahb";
+
+ qcom,halt-regs = <&tcsr 0x18000 0x1b000 0xe000>;
+
+ qcom,smem-states = <&wcss_smp2p_out 0>,
+ <&wcss_smp2p_out 1>;
+ qcom,smem-state-names = "shutdown",
+ "stop";
+ memory-region = <&q6_region>;
+
+ glink-edge {
+ interrupts = <GIC_SPI 321 IRQ_TYPE_EDGE_RISING>;
+ label = "rtr";
+ qcom,remote-pid = <1>;
+ mboxes = <&apcs_glb 8>;
+ };
+ };
--
2.45.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH RFC 3/3] arm64: dts: qcom: ipq8074: add remoteproc nodes
2025-12-10 0:37 [PATCH RFC 0/3] remoteproc/qcom,q6v5: introduce IPQ9574 Alexandru Gagniuc
2025-12-10 0:37 ` [PATCH RFC 1/3] dt-bindings: remoteproc: qcom,ipq8074-wcss-pil: convert to DT schema Alexandru Gagniuc
2025-12-10 0:37 ` [PATCH RFC 2/3] dt-bindings: remoteproc: qcom: add IPQ9574 image loader Alexandru Gagniuc
@ 2025-12-10 0:37 ` Alexandru Gagniuc
2025-12-10 4:04 ` Dmitry Baryshkov
2 siblings, 1 reply; 8+ messages in thread
From: Alexandru Gagniuc @ 2025-12-10 0:37 UTC (permalink / raw)
To: robh, krzk+dt, conor+dt, devicetree, Bjorn Andersson,
Konrad Dybcio
Cc: mathieu.poirier, linux-arm-msm, linux-remoteproc, linux-kernel,
Alexandru Gagniuc
Add the nodes for the WCSS remoteproc loader on IPQ8074, so that there
a use case for the DT bindings. GCC_WCSSAON_RESET is not implemented
by the GCC reset controller, so use a placeholder value for now. Leave
the node disabled so that remoteproc doesn't start up with the missing
reset.
Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
---
arch/arm64/boot/dts/qcom/ipq8074.dtsi | 79 +++++++++++++++++++++++++++
1 file changed, 79 insertions(+)
diff --git a/arch/arm64/boot/dts/qcom/ipq8074.dtsi b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
index 256e12cf6d544..86369fa680553 100644
--- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
@@ -108,6 +108,11 @@ memory@4ac00000 {
reg = <0x0 0x4ac00000 0x0 0x400000>;
no-map;
};
+
+ q6_region: wcnss@4b000000 {
+ reg = <0x0 0x4b000000 0x0 0x03700000>;
+ no-map;
+ };
};
firmware {
@@ -390,6 +395,11 @@ tcsr: syscon@1937000 {
reg = <0x01937000 0x21000>;
};
+ tcsr_q6: syscon@1945000 {
+ compatible = "qcom,tcsr-ipq8074", "syscon";
+ reg = <0x01945000 0xe000>;
+ };
+
spmi_bus: spmi@200f000 {
compatible = "qcom,spmi-pmic-arb";
reg = <0x0200f000 0x001000>,
@@ -1003,6 +1013,50 @@ pcie@0 {
ranges;
};
};
+
+ q6v5_wcss: remoteproc@cd00000 {
+ compatible = "qcom,ipq8074-wcss-pil";
+ reg = <0x0cd00000 0x4040>,
+ <0x004ab000 0x20>;
+ reg-names = "qdsp6",
+ "rmb";
+
+ interrupts-extended = <&intc GIC_SPI 325 IRQ_TYPE_EDGE_RISING>,
+ <&wcss_smp2p_in 0 0>,
+ <&wcss_smp2p_in 1 0>,
+ <&wcss_smp2p_in 2 0>,
+ <&wcss_smp2p_in 3 0>;
+ interrupt-names = "wdog",
+ "fatal",
+ "ready",
+ "handover",
+ "stop-ack";
+
+ resets = <&gcc 0xffff>, /* GCC_WCSSAON_RESET */
+ <&gcc GCC_WCSS_BCR>,
+ <&gcc GCC_WCSS_Q6_BCR>;
+
+ reset-names = "wcss_aon_reset",
+ "wcss_reset",
+ "wcss_q6_reset";
+
+ memory-region = <&q6_region>;
+ qcom,halt-regs = <&tcsr_q6 0xa000 0xd000 0x0>;
+
+ qcom,smem-states = <&wcss_smp2p_out 0>,
+ <&wcss_smp2p_out 1>;
+ qcom,smem-state-names = "shutdown",
+ "stop";
+
+ status = "disabled";
+
+ glink-edge {
+ interrupts = <GIC_SPI 321 IRQ_TYPE_EDGE_RISING>;
+ label = "rtr";
+ qcom,remote-pid = <1>;
+ mboxes = <&apcs_glb 8>;
+ };
+ };
};
timer {
@@ -1182,4 +1236,29 @@ wcss-phyb1-crit {
};
};
};
+
+ wcss: smp2p-wcss {
+ compatible = "qcom,smp2p";
+ qcom,smem = <435>, <428>;
+
+ interrupt-parent = <&intc>;
+ interrupts = <GIC_SPI 322 IRQ_TYPE_EDGE_RISING>;
+
+ mboxes = <&apcs_glb 9>;
+
+ qcom,local-pid = <0>;
+ qcom,remote-pid = <1>;
+
+ wcss_smp2p_out: master-kernel {
+ qcom,entry-name = "master-kernel";
+ #qcom,smem-state-cells = <1>;
+ };
+
+ wcss_smp2p_in: slave-kernel {
+ qcom,entry-name = "slave-kernel";
+
+ interrupt-controller;
+ #interrupt-cells = <2>;
+ };
+ };
};
--
2.45.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH RFC 3/3] arm64: dts: qcom: ipq8074: add remoteproc nodes
2025-12-10 0:37 ` [PATCH RFC 3/3] arm64: dts: qcom: ipq8074: add remoteproc nodes Alexandru Gagniuc
@ 2025-12-10 4:04 ` Dmitry Baryshkov
0 siblings, 0 replies; 8+ messages in thread
From: Dmitry Baryshkov @ 2025-12-10 4:04 UTC (permalink / raw)
To: Alexandru Gagniuc
Cc: robh, krzk+dt, conor+dt, devicetree, Bjorn Andersson,
Konrad Dybcio, mathieu.poirier, linux-arm-msm, linux-remoteproc,
linux-kernel
On Tue, Dec 09, 2025 at 06:37:25PM -0600, Alexandru Gagniuc wrote:
> Add the nodes for the WCSS remoteproc loader on IPQ8074, so that there
> a use case for the DT bindings. GCC_WCSSAON_RESET is not implemented
> by the GCC reset controller, so use a placeholder value for now. Leave
> the node disabled so that remoteproc doesn't start up with the missing
> reset.
>
> Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
> ---
> arch/arm64/boot/dts/qcom/ipq8074.dtsi | 79 +++++++++++++++++++++++++++
> 1 file changed, 79 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/qcom/ipq8074.dtsi b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
> index 256e12cf6d544..86369fa680553 100644
> --- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi
> +++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi
> @@ -108,6 +108,11 @@ memory@4ac00000 {
> reg = <0x0 0x4ac00000 0x0 0x400000>;
> no-map;
> };
> +
> + q6_region: wcnss@4b000000 {
> + reg = <0x0 0x4b000000 0x0 0x03700000>;
> + no-map;
> + };
> };
>
> firmware {
> @@ -390,6 +395,11 @@ tcsr: syscon@1937000 {
> reg = <0x01937000 0x21000>;
> };
>
> + tcsr_q6: syscon@1945000 {
> + compatible = "qcom,tcsr-ipq8074", "syscon";
> + reg = <0x01945000 0xe000>;
> + };
> +
> spmi_bus: spmi@200f000 {
> compatible = "qcom,spmi-pmic-arb";
> reg = <0x0200f000 0x001000>,
> @@ -1003,6 +1013,50 @@ pcie@0 {
> ranges;
> };
> };
> +
> + q6v5_wcss: remoteproc@cd00000 {
> + compatible = "qcom,ipq8074-wcss-pil";
> + reg = <0x0cd00000 0x4040>,
This node is out of place. it should be sorted by the address, so it
should come after timer device.
> + <0x004ab000 0x20>;
> + reg-names = "qdsp6",
> + "rmb";
> +
> + interrupts-extended = <&intc GIC_SPI 325 IRQ_TYPE_EDGE_RISING>,
> + <&wcss_smp2p_in 0 0>,
> + <&wcss_smp2p_in 1 0>,
> + <&wcss_smp2p_in 2 0>,
> + <&wcss_smp2p_in 3 0>;
> + interrupt-names = "wdog",
> + "fatal",
> + "ready",
> + "handover",
> + "stop-ack";
> +
> + resets = <&gcc 0xffff>, /* GCC_WCSSAON_RESET */
> + <&gcc GCC_WCSS_BCR>,
> + <&gcc GCC_WCSS_Q6_BCR>;
> +
> + reset-names = "wcss_aon_reset",
> + "wcss_reset",
> + "wcss_q6_reset";
> +
> + memory-region = <&q6_region>;
> + qcom,halt-regs = <&tcsr_q6 0xa000 0xd000 0x0>;
> +
> + qcom,smem-states = <&wcss_smp2p_out 0>,
> + <&wcss_smp2p_out 1>;
> + qcom,smem-state-names = "shutdown",
> + "stop";
> +
> + status = "disabled";
> +
> + glink-edge {
> + interrupts = <GIC_SPI 321 IRQ_TYPE_EDGE_RISING>;
> + label = "rtr";
> + qcom,remote-pid = <1>;
> + mboxes = <&apcs_glb 8>;
> + };
> + };
> };
>
> timer {
> @@ -1182,4 +1236,29 @@ wcss-phyb1-crit {
> };
> };
> };
> +
> + wcss: smp2p-wcss {
'smp2p-wcss' < 'soc@0'
> + compatible = "qcom,smp2p";
> + qcom,smem = <435>, <428>;
> +
> + interrupt-parent = <&intc>;
> + interrupts = <GIC_SPI 322 IRQ_TYPE_EDGE_RISING>;
> +
> + mboxes = <&apcs_glb 9>;
> +
> + qcom,local-pid = <0>;
> + qcom,remote-pid = <1>;
> +
> + wcss_smp2p_out: master-kernel {
> + qcom,entry-name = "master-kernel";
> + #qcom,smem-state-cells = <1>;
> + };
> +
> + wcss_smp2p_in: slave-kernel {
> + qcom,entry-name = "slave-kernel";
> +
> + interrupt-controller;
> + #interrupt-cells = <2>;
> + };
> + };
> };
> --
> 2.45.1
>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH RFC 1/3] dt-bindings: remoteproc: qcom,ipq8074-wcss-pil: convert to DT schema
2025-12-10 0:37 ` [PATCH RFC 1/3] dt-bindings: remoteproc: qcom,ipq8074-wcss-pil: convert to DT schema Alexandru Gagniuc
@ 2025-12-16 5:53 ` Krzysztof Kozlowski
2025-12-17 5:01 ` Alex G.
0 siblings, 1 reply; 8+ messages in thread
From: Krzysztof Kozlowski @ 2025-12-16 5:53 UTC (permalink / raw)
To: Alexandru Gagniuc
Cc: robh, krzk+dt, conor+dt, devicetree, Bjorn Andersson,
Mathieu Poirier, konradybcio, linux-arm-msm, linux-remoteproc,
linux-kernel
On Tue, Dec 09, 2025 at 06:37:23PM -0600, Alexandru Gagniuc wrote:
> Convert the QCS404 and IPQ WCSS Peripheral Image Loader bindings to DT
> schema. The text bindngs incorrectly implied that IPQ8074 needs only
> one qcom,smem-states entry. This is only true for QCS404. IPQ8074
> requires both "stop" and "shutdown".
>
> Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
Don't add fake addresses to CC. I could not respond to this email
because of that!
> ---
> .../remoteproc/qcom,ipq9574-wcss-pil.yaml | 167 ++++++++++++++++++
> .../bindings/remoteproc/qcom,q6v5.txt | 102 -----------
> 2 files changed, 167 insertions(+), 102 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,ipq9574-wcss-pil.yaml
> delete mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt
>
> diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,ipq9574-wcss-pil.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,ipq9574-wcss-pil.yaml
> new file mode 100644
> index 0000000000000..d28f42661d084
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/remoteproc/qcom,ipq9574-wcss-pil.yaml
Filename based on the compatible, so for example:
qcom,ipq8074-wcss-pil.yaml
> @@ -0,0 +1,167 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/remoteproc/qcom,ipq9574-wcss-pil.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm IPQ WCSS Peripheral Image Loader
> +
> +maintainers:
> + - Placeholder Maintainer <placeholder@kernel.org>
This must be a real person. Fallback is your SoC maintainer.
> +
> +description:
> + The IPQ WCSS peripheral image loader is used to load firmware on the Qualcomm
> + Q6 processor that exposes WiFi-6 devices to the OS via the AHB bus. It is
> + generally used by ath11k to start up the wireless firmware.
> +
> +properties:
> + compatible:
> + enum:
> + - qcom,ipq8074-wcss-pil
> + - qcom,qcs404-wcss-pil
> +
> + reg:
> + minItems: 2
Drop
> + maxItems: 2
> + description:
> + The base address and size of the QDSP6, and RMB register blocks
Drop description. Look at other bindings how this is written.
> +
> + reg-names:
> + items:
> + - const: qdsp6
> + - const: rmb
> +
> + interrupts-extended:
No, you only need interrupts. Please look at other bindings - how they
write this.
> + minItems: 5
Drop
> + maxItems: 5
> +
> + interrupt-names:
> + items:
> + - const: wdog
> + - const: fatal
> + - const: ready
> + - const: handover
> + - const: stop-ack
> +
> + resets:
> + minItems: 3
Drop
> + maxItems: 3
> +
> + reset-names:
> + items:
> + - const: wcss_aon_reset
> + - const: wcss_reset
> + - const: wcss_q6_reset
> +
> + clocks:
> + minItems: 10
> + maxItems: 13
Why is this flexible? Wasn't in the old binding and nothing in the
commit msg explained a change in the binding.
> +
> + clock-names:
> + minItems: 10
> + maxItems: 13
> +
> + cx-supply:
> + description:
> + reference to the regulators used for the booting of the Hexagon core
> +
> + memory-region:
> + description: Reference to wcss reserved-memory region
Drop description. Missing maxItems, please look at other bindings. Don't
write your own style, but look how we already wrote remoteproc bindings
(the latest).
> +
> + qcom,halt-regs:
> + $ref: /schemas/types.yaml#/definitions/phandle-array
> + description:
> + A phandle reference to a syscon representing TCSR followed by the three
> + offsets within syscon for q6, wcss and nc halt registers.
> + items:
> + - items:
> + - description: phandle to TCSR_MUTEX registers
> + - description: offset to the Q6 halt register
> + - description: offset to the wcss halt register
> + - description: offset to the nc halt register
> +
> + qcom,smem-states:
> + $ref: /schemas/types.yaml#/definitions/phandle-array
That's incomplete - missing constraints. Are you sure you wrote this
code the same way we already did for other devices?
> + description: States used by the AP to signal the remote processor
> +
> + qcom,smem-state-names:
> + description:
> + Names of the states used by the AP to signal the remote processor
> +
> + glink-edge:
> + $ref: /schemas/remoteproc/qcom,glink-edge.yaml#
> + description:
> + Qualcomm G-Link subnode which represents communication edge, channels
> + and devices related to the Modem.
> +
> +required:
> + - compatible
> + - reg
> + - reg-names
> + - interrupts-extended
> + - interrupt-names
> + - memory-region
> + - qcom,halt-regs
> + - qcom,smem-states
> + - qcom,smem-state-names
> +
> +allOf:
Seems you do not reference other schemas. I am going to repeat myself
for 10th time: are you sure you followed other devices?
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - qcom,ipq8074-wcss-pil
> + then:
> + properties:
> + qcom,smem-states:
> + items:
> + - description: Shutdown Q6
> + - description: Stop Q6
> + qcom,smem-state-names:
> + items:
> + - const: shutdown
> + - const: stop
Missing clocks
Missing blank line
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - qcom,qcs404-wcss-pil
> + then:
> + properties:
> + qcom,smem-states:
> + maxItems: 1
> + qcom,smem-state-names:
> + items:
> + - const: stop
> +
> + - if:
> + properties:
> + compatible:
> + contains:
> + enum:
> + - qcom,qcs404-wcss-pil
> + then:
> + properties:
> + clocks:
> + minItems: 10
> + maxItems: 10
> + clock-names:
> + items:
> + - const: xo
> + - const: gcc_abhs_cbcr
> + - const: gcc_axim_cbcr
> + - const: lcc_ahbfabric_cbc
> + - const: tcsr_lcc_cbc
> + - const: lcc_abhs_cbc
> + - const: lcc_tcm_slave_cbc
> + - const: lcc_abhm_cbc
> + - const: lcc_axim_cbc
> + - const: lcc_bcr_sleep
All this goes to previous if.
> + required:
> + - clocks
> + - clock-names
> + - cx-supply
> +
> +additionalProperties: false
Missing example.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH RFC 1/3] dt-bindings: remoteproc: qcom,ipq8074-wcss-pil: convert to DT schema
2025-12-16 5:53 ` Krzysztof Kozlowski
@ 2025-12-17 5:01 ` Alex G.
2025-12-17 7:55 ` Krzysztof Kozlowski
0 siblings, 1 reply; 8+ messages in thread
From: Alex G. @ 2025-12-17 5:01 UTC (permalink / raw)
To: Krzysztof Kozlowski
Cc: robh, krzk+dt, conor+dt, devicetree, Bjorn Andersson,
Mathieu Poirier, konradybcio, linux-arm-msm, linux-remoteproc,
linux-kernel
On 12/15/25 11:53 PM, Krzysztof Kozlowski wrote:
> On Tue, Dec 09, 2025 at 06:37:23PM -0600, Alexandru Gagniuc wrote:
>> Convert the QCS404 and IPQ WCSS Peripheral Image Loader bindings to DT
>> schema. The text bindngs incorrectly implied that IPQ8074 needs only
>> one qcom,smem-states entry. This is only true for QCS404. IPQ8074
>> requires both "stop" and "shutdown".
>>
>> Signed-off-by: Alexandru Gagniuc <mr.nuke.me@gmail.com>
>
> Don't add fake addresses to CC. I could not respond to this email
> because of that!
Okay.
>> ---
>> .../remoteproc/qcom,ipq9574-wcss-pil.yaml | 167 ++++++++++++++++++
>> .../bindings/remoteproc/qcom,q6v5.txt | 102 -----------
>> 2 files changed, 167 insertions(+), 102 deletions(-)
>> create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,ipq9574-wcss-pil.yaml
>> delete mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt
>>
>> diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,ipq9574-wcss-pil.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,ipq9574-wcss-pil.yaml
>> new file mode 100644
>> index 0000000000000..d28f42661d084
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/remoteproc/qcom,ipq9574-wcss-pil.yaml
>
> Filename based on the compatible, so for example:
> qcom,ipq8074-wcss-pil.yaml
Okay.
>> @@ -0,0 +1,167 @@
>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/remoteproc/qcom,ipq9574-wcss-pil.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Qualcomm IPQ WCSS Peripheral Image Loader
>> +
>> +maintainers:
>> + - Placeholder Maintainer <placeholder@kernel.org>
>
> This must be a real person. Fallback is your SoC maintainer.
I can't find an official maintainer for IPQ8074 or IPQ9574. I could list
myself, but you know a lot about these bindings. Is it okay if I list
you as the maintainer of this binding, Krzysztof?
>> +
>> + reg-names:
>> + items:
>> + - const: qdsp6
>> + - const: rmb
>> +
>> + interrupts-extended:
>
> No, you only need interrupts. Please look at other bindings - how they
> write this.
I thought I needed interrupts-extended if the interrupts use more than
one interrupt controller. Is that not the case?
>> + minItems: 5
>
> Drop
>
>> + maxItems: 5
>> +
>> + interrupt-names:
>> + items:
>> + - const: wdog
>> + - const: fatal
>> + - const: ready
>> + - const: handover
>> + - const: stop-ack
>> +
>> + resets:
>> + minItems: 3
>
> Drop
I will drop all the items you identified as excessive.>
>> + maxItems: 3
>> +
>> + reset-names:
>> + items:
>> + - const: wcss_aon_reset
>> + - const: wcss_reset
>> + - const: wcss_q6_reset
>> +
>> + clocks:
>> + minItems: 10
>> + maxItems: 13
>
> Why is this flexible? Wasn't in the old binding and nothing in the
> commit msg explained a change in the binding.
I was thinking ahead to the next patch in the series that adds IPQ9574
binding. It makes more sense to keep it at 10 fot this patch, like you
suggest.
>> +
>> + clock-names:
>> + minItems: 10
>> + maxItems: 13
>> +
>> + cx-supply:
>> + description:
>> + reference to the regulators used for the booting of the Hexagon core
>> +
>> + memory-region:
>> + description: Reference to wcss reserved-memory region
>
> Drop description. Missing maxItems, please look at other bindings. Don't
> write your own style, but look how we already wrote remoteproc bindings
> (the latest).
Is "maxItems: 1" the correct thing to add here?
>> +
>> + qcom,halt-regs:
>> + $ref: /schemas/types.yaml#/definitions/phandle-array
>> + description:
>> + A phandle reference to a syscon representing TCSR followed by the three
>> + offsets within syscon for q6, wcss and nc halt registers.
>> + items:
>> + - items:
>> + - description: phandle to TCSR_MUTEX registers
>> + - description: offset to the Q6 halt register
>> + - description: offset to the wcss halt register
>> + - description: offset to the nc halt register
>> +
>> + qcom,smem-states:
>> + $ref: /schemas/types.yaml#/definitions/phandle-array
>
> That's incomplete - missing constraints. Are you sure you wrote this
> code the same way we already did for other devices?
I am not sure. It seems to match qcom,qcs404-cdsp-pil.yaml or
qcom,wcnss.yaml. What constraints are you expecting here?
>> + description: States used by the AP to signal the remote processor
>> +
>> + qcom,smem-state-names:
>> + description:
>> + Names of the states used by the AP to signal the remote processor
>> +
>> + glink-edge:
>> + $ref: /schemas/remoteproc/qcom,glink-edge.yaml#
>> + description:
>> + Qualcomm G-Link subnode which represents communication edge, channels
>> + and devices related to the Modem.
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - reg-names
>> + - interrupts-extended
>> + - interrupt-names
>> + - memory-region
>> + - qcom,halt-regs
>> + - qcom,smem-states
>> + - qcom,smem-state-names
>> +
>> +allOf:
>
> Seems you do not reference other schemas. I am going to repeat myself
> for 10th time: are you sure you followed other devices?
It's the sixth time, but I see your point. Comparing to
qcom,qcs404-cdsp-pil.yaml or qcom,wcnss.yaml, I can't see what's
missing. What do I need here?
>
>> + - if:
>> + properties:
>> + compatible:
>> + contains:
>> + enum:
>> + - qcom,ipq8074-wcss-pil
>> + then:
>> + properties:
>> + qcom,smem-states:
>> + items:
>> + - description: Shutdown Q6
>> + - description: Stop Q6
>> + qcom,smem-state-names:
>> + items:
>> + - const: shutdown
>> + - const: stop
>
> Missing clocks
The text binding that this replaces implies no clocks for IPQ8074. What
would you like me to add instead?
> Missing blank line
>
>> + - if:
>> + properties:
>> + compatible:
>> + contains:
>> + enum:
>> + - qcom,qcs404-wcss-pil
>> + then:
>> + properties:
>> + qcom,smem-states:
>> + maxItems: 1
>> + qcom,smem-state-names:
>> + items:
>> + - const: stop
>
>> +
>> + - if:
>> + properties:
>> + compatible:
>> + contains:
>> + enum:
>> + - qcom,qcs404-wcss-pil
>> + then:
>> + properties:
>> + clocks:
>> + minItems: 10
>> + maxItems: 10
>> + clock-names:
>> + items:
>> + - const: xo
>> + - const: gcc_abhs_cbcr
>> + - const: gcc_axim_cbcr
>> + - const: lcc_ahbfabric_cbc
>> + - const: tcsr_lcc_cbc
>> + - const: lcc_abhs_cbc
>> + - const: lcc_tcm_slave_cbc
>> + - const: lcc_abhm_cbc
>> + - const: lcc_axim_cbc
>> + - const: lcc_bcr_sleep
>
> All this goes to previous if.
Okay
>> + required:
>> + - clocks
>> + - clock-names
>> + - cx-supply
>> +
>> +additionalProperties: false
>
> Missing example.
I plan to add the example in the next patch in the series that adds
IPQ9547 binding. I don't have the resources to test IPQ8074 or QCS404,
and I want to be sure that the example I add is tested.
Alex
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH RFC 1/3] dt-bindings: remoteproc: qcom,ipq8074-wcss-pil: convert to DT schema
2025-12-17 5:01 ` Alex G.
@ 2025-12-17 7:55 ` Krzysztof Kozlowski
0 siblings, 0 replies; 8+ messages in thread
From: Krzysztof Kozlowski @ 2025-12-17 7:55 UTC (permalink / raw)
To: Alex G.
Cc: robh, krzk+dt, conor+dt, devicetree, Bjorn Andersson,
Mathieu Poirier, konradybcio, linux-arm-msm, linux-remoteproc,
linux-kernel
On 17/12/2025 06:01, Alex G. wrote:
>> Filename based on the compatible, so for example:
>> qcom,ipq8074-wcss-pil.yaml
> Okay.
>>> @@ -0,0 +1,167 @@
>>> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>>> +%YAML 1.2
>>> +---
>>> +$id: http://devicetree.org/schemas/remoteproc/qcom,ipq9574-wcss-pil.yaml#
>>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>>> +
>>> +title: Qualcomm IPQ WCSS Peripheral Image Loader
>>> +
>>> +maintainers:
>>> + - Placeholder Maintainer <placeholder@kernel.org>
>>
>> This must be a real person. Fallback is your SoC maintainer.
>
> I can't find an official maintainer for IPQ8074 or IPQ9574. I could list
I don't think you looked then. get_maintainers gives you clear answer.
> myself, but you know a lot about these bindings. Is it okay if I list
> you as the maintainer of this binding, Krzysztof?
No. I am not the maintainer of this SoC.
>
>>> +
>>> + reg-names:
>>> + items:
>>> + - const: qdsp6
>>> + - const: rmb
>>> +
>>> + interrupts-extended:
>>
>> No, you only need interrupts. Please look at other bindings - how they
>> write this.
>
> I thought I needed interrupts-extended if the interrupts use more than
> one interrupt controller. Is that not the case?
Instead of asking the same question again, which would give you the same
answer "No, you only need interrupts" please rather think on the rest of
the answer - look at other bindings.
..
>>> + qcom,smem-states:
>>> + $ref: /schemas/types.yaml#/definitions/phandle-array
>>
>> That's incomplete - missing constraints. Are you sure you wrote this
>> code the same way we already did for other devices?
>
> I am not sure. It seems to match qcom,qcs404-cdsp-pil.yaml or
No, it does not.
Look at these files even - they have maxItems. Where do you see maxItems
here? So how this can be done the same way ("match")?
> qcom,wcnss.yaml. What constraints are you expecting here?
So you take the latest binding, e.g. pas-common for all new platforms.
Or qcom,qcs404-cdsp-pil.yaml. You need maxItems here and list of items
for the names.
>
>>> + description: States used by the AP to signal the remote processor
>>> +
>>> + qcom,smem-state-names:
>>> + description:
>>> + Names of the states used by the AP to signal the remote processor
>>> +
>>> + glink-edge:
>>> + $ref: /schemas/remoteproc/qcom,glink-edge.yaml#
>>> + description:
>>> + Qualcomm G-Link subnode which represents communication edge, channels
>>> + and devices related to the Modem.
>>> +
>>> +required:
>>> + - compatible
>>> + - reg
>>> + - reg-names
>>> + - interrupts-extended
>>> + - interrupt-names
>>> + - memory-region
>>> + - qcom,halt-regs
>>> + - qcom,smem-states
>>> + - qcom,smem-state-names
>>> +
>>> +allOf:
>>
>> Seems you do not reference other schemas. I am going to repeat myself
>> for 10th time: are you sure you followed other devices?
>
> It's the sixth time, but I see your point. Comparing to
> qcom,qcs404-cdsp-pil.yaml or qcom,wcnss.yaml, I can't see what's
> missing. What do I need here?
In previous cases you did not look at other binding, so I am questioning
now everything.
>
>>
>>> + - if:
>>> + properties:
>>> + compatible:
>>> + contains:
>>> + enum:
>>> + - qcom,ipq8074-wcss-pil
>>> + then:
>>> + properties:
>>> + qcom,smem-states:
>>> + items:
>>> + - description: Shutdown Q6
>>> + - description: Stop Q6
>>> + qcom,smem-state-names:
>>> + items:
>>> + - const: shutdown
>>> + - const: stop
>>
>> Missing clocks
>
> The text binding that this replaces implies no clocks for IPQ8074. What
> would you like me to add instead?
Disallow the clocks. See example-schema.
>
>> Missing blank line
>>
>>> + - if:
>>> + properties:
>>> + compatible:
>>> + contains:
>>> + enum:
>>> + - qcom,qcs404-wcss-pil
>>> + then:
>>> + properties:
>>> + qcom,smem-states:
>>> + maxItems: 1
>>> + qcom,smem-state-names:
>>> + items:
>>> + - const: stop
>>
>>> +
>>> + - if:
>>> + properties:
>>> + compatible:
>>> + contains:
>>> + enum:
>>> + - qcom,qcs404-wcss-pil
>>> + then:
>>> + properties:
>>> + clocks:
>>> + minItems: 10
>>> + maxItems: 10
>>> + clock-names:
>>> + items:
>>> + - const: xo
>>> + - const: gcc_abhs_cbcr
>>> + - const: gcc_axim_cbcr
>>> + - const: lcc_ahbfabric_cbc
>>> + - const: tcsr_lcc_cbc
>>> + - const: lcc_abhs_cbc
>>> + - const: lcc_tcm_slave_cbc
>>> + - const: lcc_abhm_cbc
>>> + - const: lcc_axim_cbc
>>> + - const: lcc_bcr_sleep
>>
>> All this goes to previous if.
>
> Okay
>
>>> + required:
>>> + - clocks
>>> + - clock-names
>>> + - cx-supply
>>> +
>>> +additionalProperties: false
>>
>> Missing example.
>
> I plan to add the example in the next patch in the series that adds
> IPQ9547 binding. I don't have the resources to test IPQ8074 or QCS404,
> and I want to be sure that the example I add is tested.
I don't understand what example has anything to do with testing. We
speak here ONLY about this binding. I do not review other code. This
patch should have the example, but if you cannot come with one, because
it does not exist in any existing sources, then you should just say
that. You have entire commit msg to explain every unusual thing. And
testing something on a device is not a reason, because you do not test
the binding on a device.
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2025-12-17 7:55 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-10 0:37 [PATCH RFC 0/3] remoteproc/qcom,q6v5: introduce IPQ9574 Alexandru Gagniuc
2025-12-10 0:37 ` [PATCH RFC 1/3] dt-bindings: remoteproc: qcom,ipq8074-wcss-pil: convert to DT schema Alexandru Gagniuc
2025-12-16 5:53 ` Krzysztof Kozlowski
2025-12-17 5:01 ` Alex G.
2025-12-17 7:55 ` Krzysztof Kozlowski
2025-12-10 0:37 ` [PATCH RFC 2/3] dt-bindings: remoteproc: qcom: add IPQ9574 image loader Alexandru Gagniuc
2025-12-10 0:37 ` [PATCH RFC 3/3] arm64: dts: qcom: ipq8074: add remoteproc nodes Alexandru Gagniuc
2025-12-10 4:04 ` Dmitry Baryshkov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).