# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/thermal/qti-cpu-hotplug-cdev.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm Technologies, Inc. CPU Hotplug Cooling Device

maintainers:
  - Rashid Zafar <quic_rzafar@quicinc.com>

description: |
  The CPU hotplug cooling device will be used for hotplugging 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:
    const: qcom,cpu-hotplug

patternProperties:
  "^cpu([0-9]*)-hotplug$":
    type: object
    description: |
      This child nodes describes the CPU which will be hotplugged when the cooling
      device is mitigated.

    properties:
      qcom,cpu:
        $ref: /schemas/types.yaml#/definitions/phandle
        description: |
          Phandle to the CPU device that this cooling device will
          mitigate.

      "#cooling-cells":
        const: 2
        description: |
          Must be 2. Needed for of_thermal as cooling device identifier.
          Please refer to <devicetree/bindings/thermal/thermal.txt> for
          more details.

    required:
      - qcom,cpu
      - "#cooling-cells"

    additionalProperties: false

required:
  - compatible

additionalProperties: false

examples:
  - |
    #include <dt-bindings/interrupt-controller/arm-gic.h>

    qcom,cpu-hotplug {
      compatible = "qcom,cpu-hotplug";

        cpu0_hotplug: cpu0-hotplug {
            qcom,cpu = <&CPU0>;
            #cooling-cells = <2>;
        };
        cpu1_hotplug: cpu1-hotplug {
            qcom,cpu = <&CPU1>;
            #cooling-cells = <2>;
        };
        cpu2_hotplug: cpu2-hotplug {
            qcom,cpu = <&CPU2>;
            #cooling-cells = <2>;
        };
        cpu3_hotplug: cpu3-hotplug {
            qcom,cpu = <&CPU3>;
            #cooling-cells = <2>;
        };
    };
