* [PATCH v2 1/2] dt-bindings: remoteproc: qcom,kaanapali-soccp-pas: Add Nord SoCCP
2026-10-14 11:46 [PATCH v2 0/2] Add binding and driver for Nord SoCCP Anurag Pateriya
@ 2026-10-14 11:46 ` Anurag Pateriya
2026-10-14 11:46 ` [PATCH v2 2/2] remoteproc: qcom_q6v5_pas: Add remoteproc support for SOCCP on Nord Anurag Pateriya
1 sibling, 0 replies; 4+ messages in thread
From: Anurag Pateriya @ 2026-10-14 11:46 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Jingyi Wang
Cc: linux-arm-msm, linux-remoteproc, devicetree, linux-kernel,
shengchao.guo, Anurag Pateriya
The SoCCP (SoC Control Processor) on Nord handles hardware fencing for
display and other use cases. It shares interrupts, SMP2P states, power
domains, and clock with Kaanapali SoCCP, except that it ships firmware
without a separate devicetree image, so it cannot use the Kaanapali
compatible as fallback.
Add qcom,nord-soccp-pas as a standalone compatible with a single
firmware-name/memory-region pair, while existing SoCs keep requiring two.
Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Reviewed-by: Shawn Guo <shengchao.guo@oss.qualcomm.com>
Signed-off-by: Anurag Pateriya <anurag.pateriya@oss.qualcomm.com>
---
.../remoteproc/qcom,kaanapali-soccp-pas.yaml | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,kaanapali-soccp-pas.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,kaanapali-soccp-pas.yaml
index e6c78d621d17..c1911124e073 100644
--- a/Documentation/devicetree/bindings/remoteproc/qcom,kaanapali-soccp-pas.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,kaanapali-soccp-pas.yaml
@@ -26,6 +26,7 @@ properties:
- enum:
- qcom,glymur-soccp-pas
- qcom,kaanapali-soccp-pas
+ - qcom,nord-soccp-pas
reg:
maxItems: 1
@@ -49,11 +50,13 @@ properties:
- const: mx
firmware-name:
+ minItems: 1
items:
- description: Firmware name of the SoC Control Processor
- description: Firmware name of the SoCCP Devicetree
memory-region:
+ minItems: 1
items:
- description: Memory region for main Firmware authentication
- description: Memory region for Devicetree Firmware authentication
@@ -93,6 +96,23 @@ required:
allOf:
- $ref: /schemas/remoteproc/qcom,pas-common.yaml#
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: qcom,nord-soccp-pas
+ then:
+ properties:
+ firmware-name:
+ maxItems: 1
+ memory-region:
+ maxItems: 1
+ else:
+ properties:
+ firmware-name:
+ minItems: 2
+ memory-region:
+ minItems: 2
unevaluatedProperties: false
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread* [PATCH v2 2/2] remoteproc: qcom_q6v5_pas: Add remoteproc support for SOCCP on Nord
2026-10-14 11:46 [PATCH v2 0/2] Add binding and driver for Nord SoCCP Anurag Pateriya
2026-10-14 11:46 ` [PATCH v2 1/2] dt-bindings: remoteproc: qcom,kaanapali-soccp-pas: Add " Anurag Pateriya
@ 2026-10-14 11:46 ` Anurag Pateriya
2026-10-15 0:21 ` Shawn Guo
1 sibling, 1 reply; 4+ messages in thread
From: Anurag Pateriya @ 2026-10-14 11:46 UTC (permalink / raw)
To: Bjorn Andersson, Mathieu Poirier, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Jingyi Wang
Cc: linux-arm-msm, linux-remoteproc, devicetree, linux-kernel,
shengchao.guo, Anurag Pateriya
The SoC Control Processor (SoCCP) is a dedicated control processor
that handles hardware fencing for display and other use cases on
Nord based devices. For Nord, SoCCP firmware ships without a
separate SoCCP devicetree image. Therefore, it takes a single
firmware-name and memory-region.
Add support for SoCCP PAS loader on Nord platform.
Signed-off-by: Anurag Pateriya <anurag.pateriya@oss.qualcomm.com>
---
drivers/remoteproc/qcom_q6v5_pas.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/drivers/remoteproc/qcom_q6v5_pas.c b/drivers/remoteproc/qcom_q6v5_pas.c
index a005546c265d..6fa958044218 100644
--- a/drivers/remoteproc/qcom_q6v5_pas.c
+++ b/drivers/remoteproc/qcom_q6v5_pas.c
@@ -1545,6 +1545,20 @@ static const struct qcom_pas_data nord_cdsp3_resource = {
.smem_host_id = 197,
};
+static const struct qcom_pas_data nord_soccp_resource = {
+ .crash_reason_smem = 656,
+ .firmware_name = "soccp.mbn",
+ .pas_id = 51,
+ .proxy_pd_names = (char*[]){
+ "cx",
+ "mx",
+ NULL
+ },
+ .ssr_name = "soccp",
+ .sysmon_name = "soccp",
+ .auto_boot = true,
+};
+
static const struct qcom_pas_data sm8450_mpss_resource = {
.crash_reason_smem = 421,
.firmware_name = "modem.mdt",
@@ -1844,6 +1858,7 @@ static const struct of_device_id qcom_pas_of_match[] = {
{ .compatible = "qcom,nord-cdsp1-pas", .data = &nord_cdsp1_resource },
{ .compatible = "qcom,nord-cdsp2-pas", .data = &nord_cdsp2_resource },
{ .compatible = "qcom,nord-cdsp3-pas", .data = &nord_cdsp3_resource },
+ { .compatible = "qcom,nord-soccp-pas", .data = &nord_soccp_resource },
{ .compatible = "qcom,qcs404-adsp-pas", .data = &adsp_resource_init },
{ .compatible = "qcom,qcs404-cdsp-pas", .data = &cdsp_resource_init },
{ .compatible = "qcom,qcs404-wcss-pas", .data = &wcss_resource_init },
--
2.43.0
^ permalink raw reply related [flat|nested] 4+ messages in thread