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".
The example is to be added in a subsequent commit that adds the IPQ9574 binding. Signed-off-by: Alexandru Gagniuc <[email protected]> --- Changes since RFC - rename binding from ipq9574 to ipq8074 - use a real person instead of placeholder as maintainer - drop redundant minItems and descriptions - merge if: clauses as suggested by Krzysztof - various other fixes suggested by Krzysztof I used my name as a placeholder for the "maintainer" field. Krzysztof mentioned to get the "SOC maintainer" using get_maintainer. I don't know how to do that, and I don't see anyone listed for QCS404, IPQ8074, or IPQ9574. The bindings apply to any of those SOCs. --- .../remoteproc/qcom,ipq8074-wcss-pil.yaml | 156 ++++++++++++++++++ .../bindings/remoteproc/qcom,q6v5.txt | 102 ------------ 2 files changed, 156 insertions(+), 102 deletions(-) create mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,ipq8074-wcss-pil.yaml delete mode 100644 Documentation/devicetree/bindings/remoteproc/qcom,q6v5.txt diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,ipq8074-wcss-pil.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,ipq8074-wcss-pil.yaml new file mode 100644 index 0000000000000..dea46cb9f93fe --- /dev/null +++ b/Documentation/devicetree/bindings/remoteproc/qcom,ipq8074-wcss-pil.yaml @@ -0,0 +1,156 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/remoteproc/qcom,ipq8074-wcss-pil.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Qualcomm IPQ WCSS Peripheral Image Loader + +maintainers: + - Alexandru Gagniuc <[email protected]> + +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: + maxItems: 2 + + reg-names: + items: + - const: qdsp6 + - const: rmb + + interrupts: + maxItems: 5 + + interrupt-names: + items: + - const: wdog + - const: fatal + - const: ready + - const: handover + - const: stop-ack + + resets: + maxItems: 3 + + reset-names: + items: + - const: wcss_aon_reset + - const: wcss_reset + - const: wcss_q6_reset + + clocks: + maxItems: 10 + + clock-names: + maxItems: 10 + + cx-supply: + description: + reference to the regulators used for the booting of the Hexagon core + + memory-region: + maxItems: 1 + + 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 + maxItems: 2 + description: States used by the AP to signal the remote processor + + qcom,smem-state-names: + maxItems: 2 + 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 + clock-names: false + clocks: false + + - if: + properties: + compatible: + contains: + enum: + - qcom,qcs404-wcss-pil + then: + properties: + qcom,smem-states: + maxItems: 1 + qcom,smem-state-names: + items: + - const: stop + 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

