All of lore.kernel.org
 help / color / mirror / Atom feed
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
> 

  parent reply	other threads:[~2026-05-21 23:29 UTC|newest]

Thread overview: 20+ 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-26  7:38     ` Vignesh Viswanathan
2026-06-16 12:27       ` Konrad Dybcio
2026-05-20 10:43   ` Krzysztof Kozlowski
2026-05-20 10:46     ` Krzysztof Kozlowski
2026-05-26  7:46       ` Vignesh Viswanathan
2026-05-21 23:29   ` Bjorn Andersson [this message]
2026-05-26  7:57     ` Vignesh Viswanathan
2026-06-17  4:39       ` Krzysztof Kozlowski
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-26  7:49     ` Vignesh Viswanathan
2026-05-22  2:49   ` Bjorn Andersson
2026-05-26  8:00     ` Vignesh Viswanathan
2026-05-20 10:44 ` [PATCH 0/2] Add CDSP Power Manangement Driver Krzysztof Kozlowski
2026-05-26  7:49   ` Vignesh Viswanathan

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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.