1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2# Copyright 2021 Linaro Ltd.
3%YAML 1.2
4---
5$id: http://devicetree.org/schemas/thermal/qcom-lmh.yaml#
6$schema: http://devicetree.org/meta-schemas/core.yaml#
7
8title: Qualcomm Limits Management Hardware(LMh)
9
10maintainers:
11  - Thara Gopinath <thara.gopinath@linaro.org>
12
13description:
14  Limits Management Hardware(LMh) is a hardware infrastructure on some
15  Qualcomm SoCs that can enforce temperature and current limits as
16  programmed by software for certain IPs like CPU.
17
18properties:
19  compatible:
20    enum:
21      - qcom,sdm845-lmh
22      - qcom,sm8150-lmh
23
24  reg:
25    items:
26      - description: core registers
27
28  interrupts:
29    maxItems: 1
30
31  '#interrupt-cells':
32    const: 1
33
34  interrupt-controller: true
35
36  cpus:
37    description:
38      phandle of the first cpu in the LMh cluster
39    $ref: /schemas/types.yaml#/definitions/phandle
40
41  qcom,lmh-temp-arm-millicelsius:
42    description:
43      An integer expressing temperature threshold at which the LMh thermal
44      FSM is engaged.
45
46  qcom,lmh-temp-low-millicelsius:
47    description:
48      An integer expressing temperature threshold at which the state machine
49      will attempt to remove frequency throttling.
50
51  qcom,lmh-temp-high-millicelsius:
52    description:
53      An integer expressing temperature threshold at which the state machine
54      will attempt to throttle the frequency.
55
56required:
57  - compatible
58  - reg
59  - interrupts
60  - '#interrupt-cells'
61  - interrupt-controller
62  - cpus
63  - qcom,lmh-temp-arm-millicelsius
64  - qcom,lmh-temp-low-millicelsius
65  - qcom,lmh-temp-high-millicelsius
66
67additionalProperties: false
68
69examples:
70  - |
71    #include <dt-bindings/interrupt-controller/arm-gic.h>
72
73    lmh@17d70800 {
74      compatible = "qcom,sdm845-lmh";
75      reg = <0x17d70800 0x400>;
76      interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
77      cpus = <&CPU4>;
78      qcom,lmh-temp-arm-millicelsius = <65000>;
79      qcom,lmh-temp-low-millicelsius = <94500>;
80      qcom,lmh-temp-high-millicelsius = <95000>;
81      interrupt-controller;
82      #interrupt-cells = <1>;
83    };
84