Re: [PATCH v4 02/10] dt-bindings: remoteproc: qcom,pas: add #cooling-cells property

From: Krzysztof Kozlowski

Date: Fri Jul 03 2026 - 04:03:48 EST


On Fri, Jul 03, 2026 at 10:33:05AM +0530, Gaurav Kohli wrote:
> Document the optional #cooling-cells property for Qualcomm PAS
> remoteproc nodes so they can be used as thermal cooling devices via
> the QMI Thermal Mitigation Device (TMD) interface.
>
> Qualcomm remote processors expose TMD endpoints that support thermal
> throttling through firmware. The cooling-device specifier uses 3 cells:
>
> <&phandle device_id min_state max_state>
>
> where device_index selects the TMD endpoint (for example PA, modem,
> or CDSP software mitigation), with constants defined in:
> - dt-bindings/firmware/qcom,qmi-tmd.h

Full path.

>
> Signed-off-by: Gaurav Kohli <gaurav.kohli@xxxxxxxxxxxxxxxx>
> ---
> .../bindings/remoteproc/qcom,pas-common.yaml | 39 ++++++++++++++++++++++
> 1 file changed, 39 insertions(+)
>
> diff --git a/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml b/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml
> index 4607b459131b..ef11371058c4 100644
> --- a/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml
> +++ b/Documentation/devicetree/bindings/remoteproc/qcom,pas-common.yaml
> @@ -79,6 +79,14 @@ properties:
> channels and devices related to the ADSP.
> unevaluatedProperties: false
>
> + '#cooling-cells':
> + description: |
> + Cooling device with three cells:
> + Cell 0: Cooling device id

And here you provide full path with device IDs.

> + Cell 1: Minimum cooling state
> + Cell 2: Maximum cooling state
> + const: 3
> +
> glink-edge:
> $ref: /schemas/remoteproc/qcom,glink-edge.yaml#
> description:
> @@ -95,3 +103,34 @@ required:
> - qcom,smem-state-names
>
> additionalProperties: true
> +
> +examples:
> + - |
> + #include <dt-bindings/thermal/thermal.h>
> + #include <dt-bindings/firmware/qcom,qmi-tmd.h>
> +
> + remoteproc: remoteproc {
> + #cooling-cells = <3>;
> + };

Drop, empty node.

> +
> + thermal-zones {
> + subsystem-thermal {
> + thermal-sensors = <&tsens 0>;
> +
> + trips {
> + alert: alert {
> + temperature = <95000>;
> + hysteresis = <2000>;
> + type = "passive";
> + };
> + };
> +
> + cooling-maps {
> + map0 {
> + trip = <&alert>;
> + cooling-device = <&remoteproc QCOM_CDSP_TMD_CDSP_SW
> + THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
> + };
> + };
> + };
> + };

thermal-zones are not relevant to remoteproc.

Entire example feels pointless - how is schema even applied/matched
against it?

Best regards,
Krzysztof