dt-bindings: remoteproc: qcom,nord-pas: Document Nord PAS

Add a dedicated binding for the Qualcomm Nord SoC PAS devices: ADSP
and CDSPs. Nord ADSP uses CX and MX power domains while the CDSPs
add an NSP domain on top of that.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Signed-off-by: Shawn Guo <shengchao.guo@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260729023508.879752-3-shengchao.guo@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
This commit is contained in:
Shawn Guo
2026-07-29 10:35:07 +08:00
committed by Bjorn Andersson
parent d402a23bf4
commit 5b8a0dcedb

View File

@@ -0,0 +1,173 @@
# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
%YAML 1.2
---
$id: http://devicetree.org/schemas/remoteproc/qcom,nord-pas.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm Nord SoC Peripheral Authentication Service
maintainers:
- Shawn Guo <shengchao.guo@oss.qualcomm.com>
description:
Qualcomm Nord SoC Peripheral Authentication Service loads and boots firmware
on the Qualcomm DSP Hexagon cores.
properties:
compatible:
enum:
- qcom,nord-adsp-pas
- qcom,nord-cdsp0-pas
- qcom,nord-cdsp1-pas
- qcom,nord-cdsp2-pas
- qcom,nord-cdsp3-pas
power-domains:
minItems: 2
items:
- description: CX power domain
- description: MX power domain
- description: NSP power domain
power-domain-names:
minItems: 2
items:
- const: cx
- const: mx
- const: nsp
reg:
maxItems: 1
clocks:
items:
- description: XO clock
clock-names:
items:
- const: xo
qcom,qmp:
$ref: /schemas/types.yaml#/definitions/phandle
description: Reference to the AOSS side-channel message RAM.
smd-edge: false
firmware-name:
items:
- description: Firmware name of the Hexagon core
- description: Firmware name of the Hexagon Devicetree
memory-region:
items:
- description: Memory region for main Firmware authentication
- description: Memory region for Devicetree Firmware authentication
interrupts:
items:
- description: Watchdog interrupt
- description: Fatal interrupt
- description: Ready interrupt
- description: Handover interrupt
- description: Stop acknowledge interrupt
- description: Shutdown acknowledge interrupt
interrupt-names:
items:
- const: wdog
- const: fatal
- const: ready
- const: handover
- const: stop-ack
- const: shutdown-ack
qcom,smem-states:
maxItems: 1
description: States used by the AP to signal the Hexagon core
qcom,smem-state-names:
maxItems: 1
description: The names of the state bits used for SMP2P output
required:
- compatible
- reg
- memory-region
allOf:
- $ref: /schemas/remoteproc/qcom,pas-common.yaml#
- if:
properties:
compatible:
enum:
- qcom,nord-adsp-pas
then:
properties:
power-domains:
maxItems: 2
power-domain-names:
maxItems: 2
else:
properties:
power-domains:
minItems: 3
power-domain-names:
minItems: 3
unevaluatedProperties: false
examples:
- |
#include <dt-bindings/clock/qcom,rpmh.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/mailbox/qcom-ipcc.h>
#include <dt-bindings/power/qcom,rpmhpd.h>
#define IPCC_MPROC_ADSP0
remoteproc@4c00000 {
compatible = "qcom,nord-adsp-pas";
reg = <0x04c00000 0x10000>;
clocks = <&rpmhcc RPMH_CXO_CLK>;
clock-names = "xo";
interrupts-extended = <&intc GIC_SPI 159 IRQ_TYPE_EDGE_RISING>,
<&smp2p_adsp_in 0 IRQ_TYPE_EDGE_RISING>,
<&smp2p_adsp_in 1 IRQ_TYPE_EDGE_RISING>,
<&smp2p_adsp_in 2 IRQ_TYPE_EDGE_RISING>,
<&smp2p_adsp_in 3 IRQ_TYPE_EDGE_RISING>,
<&smp2p_adsp_in 7 IRQ_TYPE_EDGE_RISING>;
interrupt-names = "wdog",
"fatal",
"ready",
"handover",
"stop-ack",
"shutdown-ack";
memory-region = <&hpass_dsp0_mem>, <&hpass_dsp0_dtb_mem>;
firmware-name = "qcom/nord/adsp.mbn",
"qcom/nord/adsp_dtb.mbn";
power-domains = <&rpmhpd RPMHPD_CX>,
<&rpmhpd RPMHPD_MX>;
power-domain-names = "cx",
"mx";
qcom,qmp = <&aoss_qmp>;
qcom,smem-states = <&smp2p_adsp_out 0>;
qcom,smem-state-names = "stop";
glink-edge {
interrupts-extended = <&ipcc IPCC_MPROC_ADSP0
IPCC_MPROC_SIGNAL_GLINK_QMP
IRQ_TYPE_EDGE_RISING>;
mboxes = <&ipcc IPCC_MPROC_ADSP0 IPCC_MPROC_SIGNAL_GLINK_QMP>;
label = "adsp";
qcom,remote-pid = <2>;
/* ... */
};
};