From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-yw1-f181.google.com (mail-yw1-f181.google.com [209.85.128.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6681922DFA5 for ; Fri, 19 Dec 2025 04:34:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.181 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766118873; cv=none; b=p1evsPfbbkxBN2NnAFzNaopiY8m5SNW/3mfjej9YPoKwDTk4DTfMVk2MD9d1r/wBvUJD6M9Na5sVYBr8gO61Nygc9KA4ATjGcc8z9UHgukkpmp85cH4f1hgH3MixaU4p33gZieWdUYG3bDgWzVx7K9dOvx+hzCgG4/5M0lBz8RA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766118873; c=relaxed/simple; bh=B5Nh6kigFija2HmeT/lh1Fs7EgevojvjLkr3wL2y7jc=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=Sk61FTng7LAaqn0k3SD+k/4zTkQaQ7c903wLHw5Vinz0usXulJNQd2MU7MV7dpFak23Qdpn3HOzmNWUS6BFJl+JTg5elK+YySVcVRkL206g8DEXIjg1byn+3w+RJrPtDc4RnzLkHnH2Qg2psul7df/pfTM5X2++TxbVC7SNycCQ= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=aBPi/TdK; arc=none smtp.client-ip=209.85.128.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="aBPi/TdK" Received: by mail-yw1-f181.google.com with SMTP id 00721157ae682-78f99901ed5so12932107b3.3 for ; Thu, 18 Dec 2025 20:34:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1766118870; x=1766723670; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=OLzZkCyOJoF6qRoHbrdjySEIeNcke908WdXs5RK2jks=; b=aBPi/TdKNA+uLYROYEnhPgXg2YP7HRQOC5gBn6dNFeN5vz0jXaDmxtf8d2m6sfIvQW pbuMdASdcGxcv8tUoYkbUF6SZD3tT8vQHCnGQjRwv+pAvs99jCMmq1wec1tkSzHGXXup lXl4aDjdvb3GXNEqmjhGZ8dFTjqP5FdddMA7NefQeT2fMv+P5e+yhcntojNv5kdWvD27 wc+2B4kXKvliGOwQKmC2RVc9jWubUDHIrg1fLy9Y+Z8l2QO7SlZfuxR9Y8YKiTH6zop9 0wV1uu2ejxuT1GyZEjweQoB/USrhHEw92kFYkrgcnAm+v+X2uWEByyWpaP0ffmEBuqD/ nQSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766118870; x=1766723670; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=OLzZkCyOJoF6qRoHbrdjySEIeNcke908WdXs5RK2jks=; b=hNkD5SAMKeootpuLeO72XsZqHce7fgIGYL9EPZUHjwfPzzjqb5xZwM4hu5uOQjdU5m mFWXwY6cQfdbyY/nBG+u4QwjF9qqhkH2LgiEPY/SvcY64D9xP2wNFAsaOzkXDvAyYBH5 vbXXKvkjyWT/FS2g6Dp3/dMvUD9toIR7u+xYD8iXBG+UbcwC0Dx7CQLDgPf6Ou9YYOG0 ap7zbzaPzyTdxXrRz3zImDpNVWJbAevGb6iQX7sTYQCxIvvAk1xSeC3jN7fbiF46epww SNKTOxfmfoV8ZXRh2AxOJ3ka49p6TToyAU2HuA5n5s7hfiLujwXG3uTDTWhhrfDte2M3 pdbQ== X-Forwarded-Encrypted: i=1; AJvYcCVSBWHOSpbXYn0ETjRdPE0RxcPA31MjKzN5XLc/hVu5W9WzQRx+/jiI0TQ7wCVyP28yaPy7sN+f2nZ4@vger.kernel.org X-Gm-Message-State: AOJu0YzoJDY2AE1sKjX3UDjj9afI4JB3K3KuFcgQ5vCgh7gTmOQ1a7sR j+r9rTKq5WPFrDIE2u3C2NvKcnmGSIHW0K1C9aWhQaPtepuLjmXq6XmH6kY9RQ== X-Gm-Gg: AY/fxX69sx2MOD3/zzJ9OU0MzVfd39dD3DBLAHIoulBRQOxPIl3EOeCr+CyGi/tmZzb y4cn3nNk6ecQmVE2ELfChWFUwIr6twKJcyaqBz84ydf64Vt6/r1ciuOUSzlULkJ2PCOGdlnNrv2 /jRzqqPv0drG87k5j1PVu7LqYfUW3L7p1qF6WVBp98smLsuJjuey5o31Br/pVaC2M8hEd6T+Pzw fhoKY9ivbwJr48ym08iW74lj/WNLeJd15c+IGIrmIam7Rermw74ufVQOsGXoJJvQIYdyPEvnuTo EwcpcKENBSP6bYKShHKGkHllUBZaYkClLqn9N2JLE5Abo0/37C6SDbWHpj0eh/zojsrQfxOFqNN RmhNHm64pZ6jNC5Bggd0o3t/clOgcUeRV57i0U93V1QMyXBbNChoMcsHl8Rs9dGcZt4DQ6YWLaQ 62mr6bL29chZC9Ukha6cElXM/9ZeNM6EJEZt1K+zgaRvOxifeU7xAVtJY9o86cG2WL08b5HbyJc 7b0sDADDWB05oMKcYsz4+08VaC8 X-Google-Smtp-Source: AGHT+IHwO+bcKdFSJ1MxZa5VAJDaPfkBY6j+bhjGdvTYU52B753PLX9O7ae7X/BJN8TinnoqQ8VWTQ== X-Received: by 2002:a05:690c:6f8e:b0:78c:67b5:e7ba with SMTP id 00721157ae682-78fb3f4930fmr15913927b3.24.1766118870387; Thu, 18 Dec 2025 20:34:30 -0800 (PST) Received: from nukework.lan (c-98-57-15-22.hsd1.tx.comcast.net. [98.57.15.22]) by smtp.gmail.com with ESMTPSA id 00721157ae682-78fb452c441sm5610227b3.46.2025.12.18.20.34.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 18 Dec 2025 20:34:28 -0800 (PST) From: Alexandru Gagniuc To: andersson@kernel.org, mathieu.poirier@linaro.org, krzk+dt@kernel.org, Rob Herring , Conor Dooley , Alexandru Gagniuc Cc: linux-arm-msm@vger.kernel.org, linux-remoteproc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/9] dt-bindings: remoteproc: qcom,ipq8074-wcss-pil: convert to DT schema Date: Thu, 18 Dec 2025 22:34:09 -0600 Message-ID: <20251219043425.888585-1-mr.nuke.me@gmail.com> X-Mailer: git-send-email 2.45.1 Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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 --- 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 + +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: - Definition: must be one of: - "qcom,ipq8074-wcss-pil" - "qcom,qcs404-wcss-pil" - -- reg: - Usage: required - Value type: - Definition: must specify the base address and size of the qdsp6 and - rmb register blocks - -- reg-names: - Usage: required - Value type: - Definition: must be "q6dsp" and "rmb" - -- interrupts-extended: - Usage: required - Value type: - Definition: reference to the interrupts that match interrupt-names - -- interrupt-names: - Usage: required - Value type: - Definition: must be "wdog", "fatal", "ready", "handover", "stop-ack" - -- clocks: - Usage: required - Value type: - Definition: reference to the clocks that match clock-names - -- clock-names: - Usage: required - Value type: - 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: - Definition: reference to the list of 3 reset-controllers for the - wcss sub-system - -- reset-names: - Usage: required - Value type: - Definition: must be "wcss_aon_reset", "wcss_reset", "wcss_q6_reset" - for the wcss sub-system - -- memory-region: - Usage: required - Value type: - 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: - Definition: reference to the regulators to be held on behalf of the - booting of the Hexagon core - -- qcom,smem-states: - Usage: required - Value type: - Definition: reference to the smem state for requesting the Hexagon to - shut down - -- qcom,smem-state-names: - Usage: required - Value type: - Definition: must be "stop" - -- qcom,halt-regs: - Usage: required - Value type: - 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: - 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