Re: [PATCH v1 3/8] dt-bindings: thermal: Add qcom,qmi-cooling yaml bindings

From: Gaurav Kohli
Date: Wed Dec 24 2025 - 03:24:29 EST



On 12/24/2025 1:00 AM, Dmitry Baryshkov wrote:
On Tue, Dec 23, 2025 at 06:02:22PM +0530, Gaurav Kohli wrote:
The cooling subnode of a remoteproc represents a client of the Thermal
Mitigation Device QMI service running on it. Each subnode of the cooling
node represents a single control exposed by the service.

Add maintainer name also and update this binding for cdsp substem.

Co-developed-by: Casey Connolly <casey.connolly@xxxxxxxxxx>
Signed-off-by: Gaurav Kohli <gaurav.kohli@xxxxxxxxxxxxxxxx>
Signed-off-by: Casey Connolly <casey.connolly@xxxxxxxxxx>
---
.../bindings/remoteproc/qcom,pas-common.yaml | 6 ++
.../bindings/thermal/qcom,qmi-cooling.yaml | 99 +++++++++++++++++++
2 files changed, 105 insertions(+)
create mode 100644 Documentation/devicetree/bindings/thermal/qcom,qmi-cooling.yaml

diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml
index 63a82e7a8bf8..bbc82253f76b 100644
--- a/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml
+++ b/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml
@@ -77,6 +77,12 @@ properties:
and devices related to the ADSP.
unevaluatedProperties: false
+ cooling:
+ $ref: /schemas/thermal/qcom,qmi-cooling.yaml#
+ description:
+ Cooling subnode which represents the cooling devices exposed by the Modem.
+ unevaluatedProperties: false
+
required:
- clocks
- clock-names
diff --git a/Documentation/devicetree/bindings/thermal/qcom,qmi-cooling.yaml b/Documentation/devicetree/bindings/thermal/qcom,qmi-cooling.yaml
new file mode 100644
index 000000000000..90b46712d241
--- /dev/null
+++ b/Documentation/devicetree/bindings/thermal/qcom,qmi-cooling.yaml
@@ -0,0 +1,99 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+# Copyright 2023 (c), Linaro Limited
+
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/thermal/qcom,qmi-cooling.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm QMI based thermal mitigation (TMD) cooling devices.
+
+maintainers:
+ - Caleb Connolly <caleb.connolly@xxxxxxxxxx>
This wasn't updated.


will fix this.


+ - Gaurav Kohli <gaurav.kohli@xxxxxxxxxxxxxxxx>
+
+description:
+ Qualcomm QMI-based TMD cooling devices are used to mitigate thermal conditions
+ across multiple remote subsystems. These devices operate based on junction temperature
+ sensors (TSENS) associated with thermal zones for each subsystem.
+
+ Each subnode corresponds to a control interface for a single instance of the TMD
+ service running on a remote subsystem.
+
+definitions:
+ tmd:
+ type: object
+ description: |
+ A single Thermal Mitigation Device exposed by a remote subsystem.
+ properties:
+ label:
+ maxItems: 1
+ "#cooling-cells":
+ $ref: /schemas/thermal/thermal-cooling-devices.yaml#/properties/#cooling-cells
+ phandle: true
+
+ required:
+ - label
+ - "#cooling-cells"
+
+ additionalProperties: false
+
+properties:
+ compatible:
+ enum:
+ - qcom,qmi-cooling-modem
+ - qcom,qmi-cooling-cdsp
+
+ vdd:
+ $ref: "#/definitions/tmd"
+ description:
+ Modem processor temperature TMD
+ properties:
+ label:
+ const: modem
Why it being called vdd?

Why do you define modem-specific node here, while the CDSP-specific is
defined under the if block?


will remove modem in next post,  earlier we were developing for all subsystem.
right now wanted to post for cdsp subsystem first, will fix in next post.


+
+required:
+ - compatible
+
+allOf:
+ - if:
+ properties:
+ compatible:
+ contains:
+ const: qcom,qmi-cooling-cdsp
+ then:
+ properties:
+ cdsp_sw:
+ $ref: "#/definitions/tmd"
+ description:
+ CDSP software TMD
+ properties:
+ label:
+ const: cdsp_sw
Why do we need a label in addition to the node name?


was seeing label error for cdsp_sw without this, let me recheck and update.


+
+unevaluatedProperties: false
+
+examples:
+ - |
+ remoteproc-cdsp {
+ cooling {
+ compatible = "qcom,qmi-cooling-cdsp";
+
+ cdsp_sw0: cdsp_sw {
Is it allowed for device node names to have underscores?


will fix this, but not seeing any binding error with underscores.



+ label = "cdsp_sw";
+ #cooling-cells = <2>;
+ };
+ };
+ };
+
+ remoteproc-cdsp1 {
+ cooling {
+ compatible = "qcom,qmi-cooling-cdsp1";
+
+ cdsp_sw1: cdsp_sw {
+ label = "cdsp_sw";
+ #cooling-cells = <2>;
+ };
+ };
+ };
What's the point of having the second CDSP block? Could you demonstrate
modem instead?


Missed one cdsp1 block in this series, will add in next post. Leman's is using two cdsp subsystem for that we need cdsp1.


+...
--
2.34.1