[PATCH v4 00/10] Add support for Qualcomm remoteproc subsystem cooling
From: Gaurav Kohli
Date: Fri Jul 03 2026 - 01:19:04 EST
This series introduces Qualcomm Messaging Interface based Thermal
Mitigation Device (QMI TMD) support to control thermal mitigation
on remote subsystems such as the Modem and CDSP.
The QMI TMD is an interface that instructs a remote subsystem to adjust
the performance level of the devices it manages, reducing power consumption
in response to critically low battery charge, overcurrent alerts, or
overheating conditions.
The series is organized as follows:
- Add a shared dt-bindings header mapping TMD device indices for use
in DT cooling-maps, ensuring a consistent binding between the thermal
zone and the QMI TMD driver.
- Extend the remoteproc PAS binding with the optional #cooling-cells
property to allow remoteproc nodes to be referenced as cooling devices.
- Add QMI TMD support in the remoteproc PAS framework, hooking into
the probe/unregister lifecycle to register and unregister cooling
devices with the thermal framework.
- Enable CDSP and Modem cooling on kodiak, lemans, talos, monaco and
hamoa platforms using the new binding.
This work revives the earlier QMI cooling series by Casey Connolly [1],
with the following key differences:
- Uses an id based API for cooling-device binding
- Integrates QMI TMD directly into the remoteproc PAS framework and
hooks into the probe/unregister lifecycle.
- Removes unused code and cleans up macro names
This series depends on cooling device id support from Daniel Lezcano [2].
[1] https://lore.kernel.org/linux-devicetree/20230905-caleb-qmi_cooling-v1-0-5aa39d4164a7@xxxxxxxxxx/
[2] https://lore.kernel.org/all/20260526140802.1059293-12-daniel.lezcano@xxxxxxxxxxxxxxxx/
---
Changes in v4:
- Drop the tmd-names DT property.
- Move TMD instance id and tmd device name into PAS platform data.
- Add a shared dt-bindings header to define numeric constant for TMD id.
- Add mutex documentation comments for get/set state callbacks.
- Link to v3: https://lore.kernel.org/r/20260609-qmi-tmd-v3-0-291a2ff4c634@xxxxxxxxxxxxxxxx
Changes in v3:
- Removed the remoteproc-cooling abstraction approach.
- Integerated QMI TMD with remoteproc core framework.
- Cleaned the macro names and removed unused code.
- Switched to index-based thermal_of_cooling_device_register() api.
- Link to v2: https://lore.kernel.org/linux-devicetree/20260127155722.2797783-1-gaurav.kohli@xxxxxxxxxxxxxxxx/
Changes in v2:
- Update Remoreproc thermal config to tristate and removed unnecessary NULL checks.
- Fixed dt binding file format and added generic name support for cdsp.
- Fixed memory leak and cleaned up qmi-cooling driver file.
- Corrected DT formatting errors and commit descriptions for all targets.
- Link to v1: https://lore.kernel.org/linux-devicetree/20251223123227.1317244-1-gaurav.kohli@xxxxxxxxxxxxxxxx/
---
---
Casey Connolly (1):
soc: qcom: Add QMI TMD support for remote thermal mitigation
Dipa Ramesh Mantre (1):
arm64: dts: qcom: hamoa: Enable CDSP cooling
Gaurav Kohli (8):
dt-bindings: firmware: qcom: tmd: add TMD device type constants
dt-bindings: remoteproc: qcom,pas: add #cooling-cells property
remoteproc: qcom: pas: add support for TMD thermal cooling devices
remoteproc: qcom_q6v5_pas: enable QMI TMD cooling support
arm64: dts: qcom: kodiak: Enable CDSP & Modem cooling
arm64: dts: qcom: lemans: Enable CDSP cooling
arm64: dts: qcom: talos: Enable CDSP cooling
arm64: dts: qcom: monaco: Enable CDSP cooling
.../bindings/remoteproc/qcom,pas-common.yaml | 39 ++
MAINTAINERS | 7 +
arch/arm64/boot/dts/qcom/hamoa.dtsi | 63 +++
arch/arm64/boot/dts/qcom/kodiak.dtsi | 134 ++++-
arch/arm64/boot/dts/qcom/lemans.dtsi | 125 ++++-
arch/arm64/boot/dts/qcom/monaco.dtsi | 99 ++++
.../boot/dts/qcom/qcs6490-radxa-dragon-q6a.dts | 17 +
arch/arm64/boot/dts/qcom/qcs6490-rb3gen2.dts | 17 +
.../dts/qcom/qcs6490-thundercomm-minipc-g1iot.dts | 17 +
.../boot/dts/qcom/qcs6490-thundercomm-rubikpi3.dts | 17 +
.../boot/dts/qcom/sc7280-herobrine-lte-sku.dtsi | 17 +
.../boot/dts/qcom/sc7280-herobrine-wifi-sku.dtsi | 16 +
arch/arm64/boot/dts/qcom/talos.dtsi | 19 +
drivers/remoteproc/Kconfig | 1 +
drivers/remoteproc/qcom_q6v5_pas.c | 120 ++++-
drivers/soc/qcom/Kconfig | 10 +
drivers/soc/qcom/Makefile | 1 +
drivers/soc/qcom/qmi_tmd.c | 581 +++++++++++++++++++++
include/dt-bindings/firmware/qcom,qmi-tmd.h | 20 +
include/linux/soc/qcom/qmi.h | 1 +
include/linux/soc/qcom/qmi_tmd.h | 23 +
21 files changed, 1327 insertions(+), 17 deletions(-)
---
base-commit: a87737435cfa134f9cdcc696ba3080759d04cf72
change-id: 20260609-qmi-tmd-383d30e1a60a
Best regards,
--
Gaurav Kohli <gaurav.kohli@xxxxxxxxxxxxxxxx>