# SPDX-License-Identifier: GPL-2.0-only # Copyright (C) 2020 Renesas Electronics Corp. %YAML 1.2 --- $id: http://devicetree.org/schemas/thermal/rcar-thermal.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Renesas R-Car Thermal maintainers: - Niklas Söderlund <niklas.soderlund@ragnatech.se> properties: compatible: oneOf: - items: - enum: - renesas,thermal-r8a73a4 # R-Mobile APE6 - renesas,thermal-r8a7779 # R-Car H1 - const: renesas,rcar-thermal # Generic without thermal-zone - items: - enum: - renesas,thermal-r8a7742 # RZ/G1H - renesas,thermal-r8a7743 # RZ/G1M - renesas,thermal-r8a7744 # RZ/G1N - const: renesas,rcar-gen2-thermal # Generic thermal-zone - items: - enum: - renesas,thermal-r8a7790 # R-Car H2 - renesas,thermal-r8a7791 # R-Car M2-W - renesas,thermal-r8a7792 # R-Car V2H - renesas,thermal-r8a7793 # R-Car M2-N - const: renesas,rcar-gen2-thermal # Generic thermal-zone - const: renesas,rcar-thermal # Generic without thermal-zone - items: - enum: - renesas,thermal-r8a774c0 # RZ/G2E - renesas,thermal-r8a77970 # R-Car V3M - renesas,thermal-r8a77990 # R-Car E3 - renesas,thermal-r8a77995 # R-Car D3 reg: description: Address ranges of the thermal registers. If more then one range is given the first one must be the common registers followed by each sensor according to the datasheet. minItems: 1 maxItems: 4 interrupts: minItems: 1 maxItems: 3 clocks: maxItems: 1 power-domains: maxItems: 1 resets: maxItems: 1 "#thermal-sensor-cells": const: 0 required: - compatible - reg allOf: - if: not: properties: compatible: contains: enum: - renesas,thermal-r8a73a4 # R-Mobile APE6 - renesas,thermal-r8a7779 # R-Car H1 then: required: - resets - '#thermal-sensor-cells' - if: not: properties: compatible: contains: const: renesas,thermal-r8a7779 # R-Car H1 then: required: - interrupts - clocks - power-domains additionalProperties: false examples: # Example (non interrupt support) - | thermal@ffc48000 { compatible = "renesas,thermal-r8a7779", "renesas,rcar-thermal"; reg = <0xffc48000 0x38>; }; # Example (interrupt support) - | #include <dt-bindings/clock/r8a73a4-clock.h> #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/interrupt-controller/irq.h> thermal@e61f0000 { compatible = "renesas,thermal-r8a73a4", "renesas,rcar-thermal"; reg = <0xe61f0000 0x14>, <0xe61f0100 0x38>, <0xe61f0200 0x38>, <0xe61f0300 0x38>; interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; clocks = <&mstp5_clks R8A73A4_CLK_THERMAL>; power-domains = <&pd_c5>; }; # Example (with thermal-zone) - | #include <dt-bindings/clock/r8a7790-cpg-mssr.h> #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/power/r8a7790-sysc.h> thermal: thermal@e61f0000 { compatible = "renesas,thermal-r8a7790", "renesas,rcar-gen2-thermal", "renesas,rcar-thermal"; reg = <0xe61f0000 0x10>, <0xe61f0100 0x38>; interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>; clocks = <&cpg CPG_MOD 522>; power-domains = <&sysc R8A7790_PD_ALWAYS_ON>; resets = <&cpg 522>; #thermal-sensor-cells = <0>; }; thermal-zones { cpu_thermal: cpu-thermal { polling-delay-passive = <1000>; polling-delay = <5000>; thermal-sensors = <&thermal>; trips { cpu-crit { temperature = <115000>; hysteresis = <0>; type = "critical"; }; }; cooling-maps { }; }; };