From: Bjorn Andersson <andersson@kernel.org>
To: Vignesh Viswanathan <vignesh.viswanathan@oss.qualcomm.com>
Cc: Konrad Dybcio <konradybcio@kernel.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Liam Girdwood <lgirdwood@gmail.com>,
Mark Brown <broonie@kernel.org>,
linux-arm-msm@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 1/2] dt-bindings: soc: qcom: Document CDSP Power Management
Date: Thu, 21 May 2026 18:29:09 -0500 [thread overview]
Message-ID: <ag-Tk8xE4OkZpvIZ@baldur> (raw)
In-Reply-To: <20260520-cdsp-power-v1-1-85eb9501a1cd@oss.qualcomm.com>
On Wed, May 20, 2026 at 12:35:09AM +0530, Vignesh Viswanathan wrote:
> Add documentation for the CDSP Power Management driver, which handles
Your commit message should not describe an action, it should describe
the problem you're solving.
> Dynamic Clock and Voltage Scaling (DCVS) requests via SMEM, manages Low
> Power Mode (LPM) transitions via MPM handshake, and provides virtual
> regulators for the remoteproc driver to control CDSP power rails.
>
You have a node describing the CDSP (remoteproc) already, but it doesn't
contain all the properties, so you're going to add this sibling node.
Why don't you describe the remoteproc properly instead?
> Signed-off-by: Vignesh Viswanathan <vignesh.viswanathan@oss.qualcomm.com>
> ---
> .../bindings/soc/qcom/qcom,cdsp-power.yaml | 138 +++++++++++++++++++++
> 1 file changed, 138 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/soc/qcom/qcom,cdsp-power.yaml b/Documentation/devicetree/bindings/soc/qcom/qcom,cdsp-power.yaml
> new file mode 100644
> index 000000000000..f0f89fdeba4e
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/soc/qcom/qcom,cdsp-power.yaml
> @@ -0,0 +1,138 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/soc/qcom/qcom,cdsp-power.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm CDSP Power Management
> +
> +maintainers:
> + - Vignesh Viswanathan <vignesh.viswanathan@oss.qualcomm.com>
> +
> +description:
> + The CDSP Power Management driver provides power management services for the
> + Qualcomm Compute DSP (CDSP) subsystem. It handles Dynamic Clock and Voltage
> + Scaling (DCVS) requests via SMEM, manages Low Power Mode (LPM) transitions
> + via MPM handshake, and provides virtual regulators that are consumed by the
> + CDSP remoteproc driver.
> +
> +properties:
> + compatible:
> + const: qcom,cdsp-power
> +
> + reg:
> + items:
> + - description: MPM (Modem Power Manager) register region
> + - description: RSCC (RSC Configuration) register region
> +
> + reg-names:
> + items:
> + - const: mpm
> + - const: rscc
> +
> + interrupts-extended:
> + items:
> + - description: LPM (Low Power Mode) interrupt from MPM
> + - description: DCVS (Dynamic Clock and Voltage Scaling) interrupt from IPCC
> +
> + interrupt-names:
> + items:
> + - const: lpm
> + - const: dcvs
> +
> + mboxes:
> + maxItems: 1
> + description: IPCC mailbox channel for sending DCVS responses to CDSP
> +
> + qcom,smem-item:
> + $ref: /schemas/types.yaml#/definitions/uint32
> + description:
> + SMEM item ID used for DCVS communication channel between APSS and CDSP.
> + This is a platform-specific value that identifies the shared memory region.
> +
> + vdd-cx-supply:
> + description:
> + Phandle to the CX voltage regulator. This is the actual hardware regulator
> + (e.g., from MP8899 PMIC) that supplies power to the CDSP CX rail.
This isn't the CX supply of the power management block, this is the CX
supply of the remoteproc - so put it there.
> +
> + vdd-mx-supply:
> + description:
> + Phandle to the MX voltage regulator. This is the actual hardware regulator
> + (e.g., from MP8899 PMIC) that supplies power to the CDSP MX rail. Optional
> + on boards where MX rail is always-on or not present.
> +
> + regulators:
> + type: object
> + description:
> + Virtual regulators provided by this driver for consumption by the CDSP
> + remoteproc driver. These virtual regulators pass through enable/disable
> + requests to the actual hardware regulators (vdd-cx-supply, vdd-mx-supply).
These regulators doesn't exist in reality, they are only here because
you choose to split the description of your remoteproc implementation in
two.
> +
> + properties:
> + cdsp-vdd-cx:
> + type: object
> + $ref: /schemas/regulator/regulator.yaml#
> + description: Virtual CX regulator for CDSP
> + unevaluatedProperties: false
> +
> + cdsp-vdd-mx:
> + type: object
> + $ref: /schemas/regulator/regulator.yaml#
> + description: Virtual MX regulator for CDSP
> + unevaluatedProperties: false
> +
> + additionalProperties: false
> +
> +required:
> + - compatible
> + - reg
> + - reg-names
> + - interrupts-extended
> + - interrupt-names
> + - mboxes
> + - qcom,smem-item
> + - vdd-cx-supply
> + - regulators
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> + #include <dt-bindings/interrupt-controller/irq.h>
> + #include <dt-bindings/mailbox/qcom-ipcc.h>
> +
> + soc {
> + #address-cells = <2>;
> + #size-cells = <2>;
It's just an example, when you write bindings drop the 0x0 from base and
size in your reg and this need goes away.
> +
> + cdsp_power: cdsp-power@4ae000 {
> + compatible = "qcom,cdsp-power";
> + reg = <0x0 0x004ae000 0x0 0x1000>,
For when you do this properly, please confirm that this is a dedicated
MPM register region and does not alias with any other nodes.
> + <0x0 0x26018018 0x0 0x4>;
No, we don't point reg = <> at a single register.
> + reg-names = "mpm", "rscc";
> +
> + interrupts-extended = <&intc GIC_SPI 65 IRQ_TYPE_EDGE_RISING 0>,
0?
> + <&ipcc IPCC_CLIENT_CDSP
> + IPCC_MPROC_SIGNAL_PING
> + IRQ_TYPE_EDGE_RISING>;
> + interrupt-names = "lpm", "dcvs";
> +
> + mboxes = <&ipcc IPCC_CLIENT_CDSP IPCC_MPROC_SIGNAL_PING>;
> +
> + qcom,smem-item = <503>;
Isn't this static for the given remoteproc?
Regards,
Bjorn
> +
> + vdd-cx-supply = <&ipq9650_s2>;
> + vdd-mx-supply = <&ipq9650_s4>;
> +
> + regulators {
> + cdsp_vdd_cx: cdsp-vdd-cx {
> + regulator-name = "cdsp-vdd-cx";
> + };
> +
> + cdsp_vdd_mx: cdsp-vdd-mx {
> + regulator-name = "cdsp-vdd-mx";
> + };
> + };
> + };
> + };
>
> --
> 2.43.0
>
next prev parent reply other threads:[~2026-05-21 23:29 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-05-19 19:05 [PATCH 0/2] Add CDSP Power Manangement Driver Vignesh Viswanathan
2026-05-19 19:05 ` [PATCH 1/2] dt-bindings: soc: qcom: Document CDSP Power Management Vignesh Viswanathan
2026-05-19 19:17 ` sashiko-bot
2026-05-20 9:59 ` Konrad Dybcio
2026-05-20 10:43 ` Krzysztof Kozlowski
2026-05-20 10:46 ` Krzysztof Kozlowski
2026-05-21 23:29 ` Bjorn Andersson [this message]
2026-05-19 19:05 ` [PATCH 2/2] soc: qcom: Add CDSP power management driver Vignesh Viswanathan
2026-05-19 19:43 ` sashiko-bot
2026-05-20 10:50 ` Krzysztof Kozlowski
2026-05-22 2:49 ` Bjorn Andersson
2026-05-20 10:44 ` [PATCH 0/2] Add CDSP Power Manangement Driver Krzysztof Kozlowski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ag-Tk8xE4OkZpvIZ@baldur \
--to=andersson@kernel.org \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=konradybcio@kernel.org \
--cc=krzk+dt@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=robh@kernel.org \
--cc=vignesh.viswanathan@oss.qualcomm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox