185 lines
4.9 KiB
YAML
185 lines
4.9 KiB
YAML
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||
|
%YAML 1.2
|
||
|
---
|
||
|
$id: http://devicetree.org/schemas/thermal/samsung,exynos-thermal.yaml#
|
||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||
|
|
||
|
title: Samsung Exynos SoC Thermal Management Unit (TMU)
|
||
|
|
||
|
maintainers:
|
||
|
- Krzysztof Kozlowski <krzk@kernel.org>
|
||
|
|
||
|
description: |
|
||
|
For multi-instance tmu each instance should have an alias correctly numbered
|
||
|
in "aliases" node.
|
||
|
|
||
|
properties:
|
||
|
compatible:
|
||
|
enum:
|
||
|
- samsung,exynos3250-tmu
|
||
|
- samsung,exynos4412-tmu
|
||
|
- samsung,exynos4210-tmu
|
||
|
- samsung,exynos5250-tmu
|
||
|
- samsung,exynos5260-tmu
|
||
|
# For TMU channel 0, 1 on Exynos5420:
|
||
|
- samsung,exynos5420-tmu
|
||
|
# For TMU channels 2, 3 and 4 of Exynos5420:
|
||
|
- samsung,exynos5420-tmu-ext-triminfo
|
||
|
- samsung,exynos5433-tmu
|
||
|
- samsung,exynos7-tmu
|
||
|
|
||
|
clocks:
|
||
|
minItems: 1
|
||
|
maxItems: 3
|
||
|
|
||
|
clock-names:
|
||
|
minItems: 1
|
||
|
maxItems: 3
|
||
|
|
||
|
interrupts:
|
||
|
description: |
|
||
|
The Exynos TMU supports generating interrupts when reaching given
|
||
|
temperature thresholds. Number of supported thermal trip points depends
|
||
|
on the SoC (only first trip points defined in DT will be configured)::
|
||
|
- most of SoC: 4
|
||
|
- samsung,exynos5433-tmu: 8
|
||
|
- samsung,exynos7-tmu: 8
|
||
|
maxItems: 1
|
||
|
|
||
|
reg:
|
||
|
items:
|
||
|
- description: TMU instance registers.
|
||
|
- description: |
|
||
|
Shared TMU registers.
|
||
|
|
||
|
Note:: On Exynos5420, the TRIMINFO register is misplaced for TMU
|
||
|
channels 2, 3 and 4 Use "samsung,exynos5420-tmu-ext-triminfo" in
|
||
|
cases, there is a misplaced register, also provide clock to access
|
||
|
that base.
|
||
|
TRIMINFO at 0x1006c000 contains data for TMU channel 3
|
||
|
TRIMINFO at 0x100a0000 contains data for TMU channel 4
|
||
|
TRIMINFO at 0x10068000 contains data for TMU channel 2
|
||
|
minItems: 1
|
||
|
|
||
|
'#thermal-sensor-cells': true
|
||
|
|
||
|
vtmu-supply:
|
||
|
description: The regulator node supplying voltage to TMU.
|
||
|
|
||
|
required:
|
||
|
- compatible
|
||
|
- clocks
|
||
|
- clock-names
|
||
|
- interrupts
|
||
|
- reg
|
||
|
|
||
|
allOf:
|
||
|
- $ref: /schemas/thermal/thermal-sensor.yaml
|
||
|
- if:
|
||
|
properties:
|
||
|
compatible:
|
||
|
contains:
|
||
|
const: samsung,exynos5420-tmu-ext-triminfo
|
||
|
then:
|
||
|
properties:
|
||
|
clocks:
|
||
|
items:
|
||
|
- description:
|
||
|
Operational clock for TMU channel.
|
||
|
- description:
|
||
|
Optional clock to access the shared registers (e.g. TRIMINFO) of TMU
|
||
|
channel.
|
||
|
clock-names:
|
||
|
items:
|
||
|
- const: tmu_apbif
|
||
|
- const: tmu_triminfo_apbif
|
||
|
reg:
|
||
|
minItems: 2
|
||
|
maxItems: 2
|
||
|
- if:
|
||
|
properties:
|
||
|
compatible:
|
||
|
contains:
|
||
|
enum:
|
||
|
- samsung,exynos5433-tmu
|
||
|
- samsung,exynos7-tmu
|
||
|
then:
|
||
|
properties:
|
||
|
clocks:
|
||
|
items:
|
||
|
- description:
|
||
|
Operational clock for TMU channel.
|
||
|
- description:
|
||
|
Optional special clock for functional operation of TMU channel.
|
||
|
clock-names:
|
||
|
items:
|
||
|
- const: tmu_apbif
|
||
|
- const: tmu_sclk
|
||
|
reg:
|
||
|
minItems: 1
|
||
|
maxItems: 1
|
||
|
|
||
|
- if:
|
||
|
properties:
|
||
|
compatible:
|
||
|
contains:
|
||
|
enum:
|
||
|
- samsung,exynos3250-tmu
|
||
|
- samsung,exynos4412-tmu
|
||
|
- samsung,exynos4210-tmu
|
||
|
- samsung,exynos5250-tmu
|
||
|
- samsung,exynos5260-tmu
|
||
|
- samsung,exynos5420-tmu
|
||
|
then:
|
||
|
properties:
|
||
|
clocks:
|
||
|
minItems: 1
|
||
|
maxItems: 1
|
||
|
reg:
|
||
|
minItems: 1
|
||
|
maxItems: 1
|
||
|
|
||
|
additionalProperties: false
|
||
|
|
||
|
examples:
|
||
|
- |
|
||
|
#include <dt-bindings/clock/exynos4.h>
|
||
|
|
||
|
tmu@100c0000 {
|
||
|
compatible = "samsung,exynos4412-tmu";
|
||
|
reg = <0x100C0000 0x100>;
|
||
|
interrupt-parent = <&combiner>;
|
||
|
interrupts = <2 4>;
|
||
|
#thermal-sensor-cells = <0>;
|
||
|
clocks = <&clock CLK_TMU_APBIF>;
|
||
|
clock-names = "tmu_apbif";
|
||
|
vtmu-supply = <&ldo10_reg>;
|
||
|
};
|
||
|
|
||
|
- |
|
||
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||
|
|
||
|
tmu@10068000 {
|
||
|
compatible = "samsung,exynos5420-tmu-ext-triminfo";
|
||
|
reg = <0x10068000 0x100>, <0x1006c000 0x4>;
|
||
|
interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
|
||
|
#thermal-sensor-cells = <0>;
|
||
|
clocks = <&clock 318>, <&clock 318>; /* CLK_TMU */
|
||
|
clock-names = "tmu_apbif", "tmu_triminfo_apbif";
|
||
|
vtmu-supply = <&ldo7_reg>;
|
||
|
};
|
||
|
|
||
|
- |
|
||
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||
|
|
||
|
tmu@10060000 {
|
||
|
compatible = "samsung,exynos5433-tmu";
|
||
|
reg = <0x10060000 0x200>;
|
||
|
interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
|
||
|
#thermal-sensor-cells = <0>;
|
||
|
clocks = <&cmu_peris 3>, /* CLK_PCLK_TMU0_APBIF */
|
||
|
<&cmu_peris 35>; /* CLK_SCLK_TMU0 */
|
||
|
clock-names = "tmu_apbif", "tmu_sclk";
|
||
|
vtmu-supply = <&ldo3_reg>;
|
||
|
};
|