# 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 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': const: 0 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 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 tmu@10068000 { compatible = "samsung,exynos5420-tmu-ext-triminfo"; reg = <0x10068000 0x100>, <0x1006c000 0x4>; interrupts = ; #thermal-sensor-cells = <0>; clocks = <&clock 318>, <&clock 318>; /* CLK_TMU */ clock-names = "tmu_apbif", "tmu_triminfo_apbif"; vtmu-supply = <&ldo7_reg>; }; - | #include tmu@10060000 { compatible = "samsung,exynos5433-tmu"; reg = <0x10060000 0x200>; interrupts = ; #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>; };