diff --git a/bindings/thermal/qcom-bcl-pmic5.txt b/bindings/thermal/qcom-bcl-pmic5.txt
new file mode 100644
index 000000000000..20bb9829e470
--- /dev/null
+++ b/bindings/thermal/qcom-bcl-pmic5.txt
@@ -0,0 +1,41 @@
+===============================================================================
+BCL Peripheral driver for PMIC5:
+===============================================================================
+Qualcomm Technologies, Inc's PMIC has battery current limiting peripheral,
+which can monitor for high battery current and low battery voltage in the
+hardware. The BCL peripheral driver interacts with the PMIC peripheral using
+the SPMI driver interface. The hardware can take threshold for notifying for
+high battery current or low battery voltage events. This driver works only
+with PMIC version 5, where the same BCL peripheral can be found in multiple
+PMIC's that are used in a device, with limited functionalities. For example,
+one PMIC can have only vbat monitoring, while the other PMIC can have both
+vbat and ibat monitoring. This is a common driver, that can interact
+with the multiple BCL peripherals.
+
+Required Parameters:
+- compatible: must be
+ 'qcom,bcl-v5' for bcl peripheral in PMIC version 5.
+- reg: where 'a' is the starting register address of the PMIC
+ peripheral and 'b' is the size of the peripheral address space.
+- interrupts: Where,
+ 'a' is the SLAVE ID of the PMIC,
+ 'b' is the peripheral ID,
+ 'c' is the interrupt number in PMIC and
+ 'd' is the interrupt type.
+- interrupt-names: user defined names for the interrupts. These
+ interrupt names will be used by the drivers to identify the
+ interrupts, instead of specifying the ID's. bcl driver will
+ accept these standard interrupts.
+ "bcl-lvl0",
+ "bcl-lvl1",
+ "bcl-lvl2",
+
+Example:
+ bcl@4200 {
+ compatible = "qcom,bcl-v5";
+ reg = <0x4200 0x100>;
+ interrupts = <0x2 0x42 0x0 IRQ_TYPE_NONE>,
+ <0x2 0x42 0x1 IRQ_TYPE_NONE>;
+ interrupt-names = "bcl-lvl0",
+ "bcl-lvl1";
+ };
diff --git a/bindings/thermal/qcom-bcl-soc.txt b/bindings/thermal/qcom-bcl-soc.txt
new file mode 100644
index 000000000000..8ea7d330b2eb
--- /dev/null
+++ b/bindings/thermal/qcom-bcl-soc.txt
@@ -0,0 +1,14 @@
+===============================================================================
+PMIC state of charge driver:
+===============================================================================
+Battery state of charge driver can monitor for change in battery charge and
+notify thermal framework, when the value goes below a certain threshold.
+
+Required Parameters:
+- compatible: must be 'qcom,msm-bcl-soc' for battery state of charge driver.
+
+Optional Parameters:
+
+ bcl-soc {
+ compatible = "qcom,msm-bcl-soc";
+ };
diff --git a/bindings/thermal/qti-cpu-isolation-cdev.txt b/bindings/thermal/qti-cpu-isolation-cdev.txt
new file mode 100644
index 000000000000..9d1852620e40
--- /dev/null
+++ b/bindings/thermal/qti-cpu-isolation-cdev.txt
@@ -0,0 +1,50 @@
+QTI CPU isolation cooling devices.
+
+The CPU isolation cooling device will be used for isolating a CPU on a thermal
+condition. This cooling device driver can register one cooling device per CPU,
+which can be used by thermal zone to mitigate.
+
+Each child node will represent a cooling device and the child node should
+point to the CPU, which will be mitigated by that cooling device instance.
+
+Properties:
+- compatible:
+ Usage: required
+ Value type:
+ Definition: should be "qcom,cpu-isolate"
+
+Cooling device node:
+- qcom,cpu:
+ Usage: required
+ Value type:
+ Definition: phandle to the CPU device that this cooling device will
+ mitigate.
+
+-#cooling-cells:
+ Usage: required
+ Value type:
+ Definition: Must be 2. Needed for of_thermal as cooling device
+ identifier. Please refer to
+ for more
+ details.
+Example:
+ qcom,cpu-isolation {
+ compatible = "qcom,cpu-isolate";
+
+ cpu0_isolate: cpu0-isolate {
+ qcom,cpu = <&CPU0>;
+ #cooling-cells = <2>;
+ };
+ cpu1_isolate: cpu1-isolate {
+ qcom,cpu = <&CPU1>;
+ #cooling-cells = <2>;
+ };
+ cpu2_isolate: cpu2-isolate {
+ qcom,cpu = <&CPU2>;
+ #cooling-cells = <2>;
+ };
+ cpu3_isolate: cpu3-isolate {
+ qcom,cpu = <&CPU3>;
+ #cooling-cells = <2>;
+ };
+ };
diff --git a/bindings/thermal/qti-qmi-cdev.txt b/bindings/thermal/qti-qmi-cdev.txt
new file mode 100644
index 000000000000..481c284543be
--- /dev/null
+++ b/bindings/thermal/qti-qmi-cdev.txt
@@ -0,0 +1,125 @@
+QMI thermal mitigation(TMD) cooling devices.
+
+The QMI TMD cooling device, will be used for various mitigations for remote
+subsystem including remote processor mitigation, rail voltage restriction etc.
+This cooling device uses kernel qti QMI interface to send the message to
+remote subsystem.
+
+Each child node of the QMI TMD devicetree node represents each remote
+subsystem and each child of this subsystem represents separate cooling
+devices. It requires minimum one remote subsystem node and each subsystem
+node requires minimum one cooling device node.
+
+Properties:
+
+- compatible:
+ Usage: required
+ Value type:
+ Definition: should be "qcom,qmi-cooling-devices"
+
+
+Subsystem properties:
+- qcom,instance-id:
+ Usage: required
+ Value type:
+ Definition: Remote subsystem QMI server instance id to be used for
+ communicating with QMI.
+
+ Minimum one child node is required. Child node name and its alias are
+ used as cooling device name and phandle for that cooling device.
+
+ cooling device node properties:
+ -qcom,qmi-dev-name:
+ Usage: required
+ Value type:
+ Definition: Remote subsystem device identifier. Below strings
+ are the only acceptable device names,
+ "pa" -> for pa cooling device,
+ "pa_fr1" -> for pa cooling device,
+ "cpuv_restriction_cold" -> for vdd restriction,
+ "cx_vdd_limit" -> for vdd limit,
+ "modem" -> for processor passive cooling device,
+ "modem_current" -> for current limiting device,
+ "modem_bw" -> for bus bandwidth limiting device,
+ "vbatt_low" -> BCL vbat mitigation device,
+ "mmw0" -> Millimeter wave limiting device 0,
+ "mmw1" -> Millimeter wave limiting device 1,
+ "mmw2" -> Millimeter wave limiting device 2,
+ "mmw3" -> Millimeter wave limiting device 3,
+ "modem_skin" -> Modem skin mitigation device,
+ "mmw_skin0" -> MMW skin mitigation device0,
+ "mmw_skin1" -> MMW skin mitigation device1,
+ "mmw_skin2" -> MMW skin mitigation device2,
+ "mmw_skin3" -> MMW skin mitigation device3,
+ "cpr_cold" -> for cpr restriction.
+ "wlan" -> for modem wlan mitigation device.
+
+ -#cooling-cells:
+ Usage: required
+ Value type:
+ Definition: Must be 2. Needed for of_thermal as cooling device
+ identifier. Please refer to
+ for more
+ details.
+Example:
+
+ qmi-tmd-devices {
+ compatible = "qcom,qmi-cooling-devices";
+
+ modem {
+ qcom,instance-id = <0x0>;
+
+ modem_pa: modem_pa {
+ qcom,qmi-dev-name = "pa";
+ #cooling-cells = <2>;
+ };
+
+ modem_proc: modem_proc {
+ qcom,qmi-dev-name = "modem";
+ #cooling-cells = <2>;
+ };
+
+ modem_vdd: modem_vdd {
+ qcom,qmi-dev-name = "cpuv_restriction_cold";
+ #cooling-cells = <2>;
+ };
+
+ modem_current: modem_current {
+ qcom,qmi-dev-name = "modem_current";
+ #cooling-cells = <2>;
+ };
+
+ modem_cpr_cold: modem_cpr_cold {
+ qcom,qmi-dev-name = "cpr_cold";
+ #cooling-cells = <2>;
+ };
+ };
+
+ adsp {
+ qcom,instance-id = <0x1>;
+
+ adsp_vdd: adsp_vdd {
+ qcom,qmi-dev-name = "cpuv_restriction_cold";
+ #cooling-cells = <2>;
+ };
+ };
+
+ cdsp {
+ qcom,instance-id = <0x43>;
+
+ cdsp_vdd: cdsp_vdd {
+ qcom,qmi-dev-name = "cpuv_restriction_cold";
+ #cooling-cells = <2>;
+ };
+ };
+
+ slpi {
+ qcom,instance-id = <0x53>;
+
+ slpi_vdd: slpi_vdd {
+ qcom,qmi-dev-name = "cpuv_restriction_cold";
+ #cooling-cells = <2>;
+ };
+ };
+ };
+
diff --git a/bindings/thermal/qti-qmi-sensor.txt b/bindings/thermal/qti-qmi-sensor.txt
new file mode 100644
index 000000000000..e558027e9c91
--- /dev/null
+++ b/bindings/thermal/qti-qmi-sensor.txt
@@ -0,0 +1,74 @@
+QMI thermal mitigation(TS) sensor.
+
+The QMI TS Sensor driver can list the sensors that are available in the
+remote subsystem. This driver can read the temperature, set threshold and
+get threshold notification.
+
+Each child node of the QMI TS devicetree node represents a remote
+subsystem and it can have more than one remote sensor names.
+
+Properties:
+
+- compatible:
+ Usage: required
+ Value type:
+ Definition: should be "qcom,qmi-sensors"
+
+- #thermal-sensor-cells:
+ Usage: required
+ Value type:
+ Definition: Must be 1. See thermal.txt for description.
+
+Subsystem properties:
+- qcom,instance-id:
+ Usage: required
+ Value type:
+ Definition: Remote subsystem QMI server instance id to be used for
+ communicating with QMI.
+
+- qcom,qmi-sensor-names:
+ Usage: required
+ Value type:
+ Definition: Remote sensor names. Below strings
+ are the only acceptable sensor names,
+ 1. pa
+ 2. pa_1
+ 3. pa_2
+ 4. qfe_pa0
+ 5. qfe_wtr0
+ 6. modem_tsens
+ 7. qfe_mmw0
+ 8. qfe_mmw1
+ 9. qfe_mmw2
+ 10. qfe_mmw3
+ 11. xo_therm
+ 12. qfe_pa_mdm
+ 13. qfe_pa_wtr
+ 14. qfe_mmw_streamer0
+ 15. qfe_mmw0_mod
+ 16. qfe_mmw1_mod
+ 17. qfe_mmw2_mod
+ 18. qfe_mmw3_mod
+ 19. qfe_ret_pa0
+ 20. qfe_wtr_pa0
+ 21. qfe_wtr_pa1
+ 22. qfe_wtr_pa2
+ 23. qfe_wtr_pa3
+ 24. sys_therm1
+ 25. sys_therm2
+ 26. modem_tsens1
+
+Example:
+
+qmi_sensor: qmi-ts-sensors {
+ compatible = "qcom,qmi-sensors";
+ #thermal-sensor-cells = <1>;
+
+ modem {
+ qcom,instance-id = <0x0>;
+ qcom,qmi-sensor-names = "pa",
+ "pa_1",
+ "qfe_pa0",
+ "qfe_wtr0";
+ };
+};