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 <[email protected]>
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 <[email protected]> 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

