^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) # SPDX-License-Identifier: GPL-2.0-only
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) # Copyright (C) 2020 Renesas Electronics Corp.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) %YAML 1.2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) ---
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) $id: http://devicetree.org/schemas/thermal/rcar-thermal.yaml#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) $schema: http://devicetree.org/meta-schemas/core.yaml#
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) title: Renesas R-Car Thermal
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) maintainers:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) - Niklas Söderlund <niklas.soderlund@ragnatech.se>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13) properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) compatible:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) oneOf:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) - items:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) - enum:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) - renesas,thermal-r8a73a4 # R-Mobile APE6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) - renesas,thermal-r8a7779 # R-Car H1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) - const: renesas,rcar-thermal # Generic without thermal-zone
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) - items:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) - enum:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) - renesas,thermal-r8a7742 # RZ/G1H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) - renesas,thermal-r8a7743 # RZ/G1M
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) - renesas,thermal-r8a7744 # RZ/G1N
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) - const: renesas,rcar-gen2-thermal # Generic thermal-zone
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) - items:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) - enum:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) - renesas,thermal-r8a7790 # R-Car H2
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) - renesas,thermal-r8a7791 # R-Car M2-W
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) - renesas,thermal-r8a7792 # R-Car V2H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) - renesas,thermal-r8a7793 # R-Car M2-N
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) - const: renesas,rcar-gen2-thermal # Generic thermal-zone
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) - const: renesas,rcar-thermal # Generic without thermal-zone
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) - items:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) - enum:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) - renesas,thermal-r8a774c0 # RZ/G2E
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) - renesas,thermal-r8a77970 # R-Car V3M
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) - renesas,thermal-r8a77990 # R-Car E3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) - renesas,thermal-r8a77995 # R-Car D3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) reg:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) description:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) Address ranges of the thermal registers. If more then one range is given
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) the first one must be the common registers followed by each sensor
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) according the the datasheet.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) minItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) maxItems: 4
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) interrupts:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) minItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) maxItems: 3
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) clocks:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) maxItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) power-domains:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) maxItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) resets:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) maxItems: 1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) "#thermal-sensor-cells":
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) const: 0
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) if:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) properties:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) compatible:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) contains:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) enum:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) - renesas,thermal-r8a73a4 # R-Mobile APE6
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) - renesas,thermal-r8a7779 # R-Car H1
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) then:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) required:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) - compatible
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) - reg
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) else:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77) required:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) - compatible
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) - reg
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) - interrupts
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) - clocks
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) - power-domains
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) - resets
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) additionalProperties: false
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) examples:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) # Example (non interrupt support)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) - |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) thermal@ffc48000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) compatible = "renesas,thermal-r8a7779", "renesas,rcar-thermal";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) reg = <0xffc48000 0x38>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) # Example (interrupt support)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) - |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) #include <dt-bindings/clock/r8a73a4-clock.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) #include <dt-bindings/interrupt-controller/arm-gic.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) #include <dt-bindings/interrupt-controller/irq.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) thermal@e61f0000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102) compatible = "renesas,thermal-r8a73a4", "renesas,rcar-thermal";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) reg = <0xe61f0000 0x14>, <0xe61f0100 0x38>,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) <0xe61f0200 0x38>, <0xe61f0300 0x38>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) clocks = <&mstp5_clks R8A73A4_CLK_THERMAL>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) power-domains = <&pd_c5>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) # Example (with thermal-zone)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) - |
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) #include <dt-bindings/clock/r8a7790-cpg-mssr.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) #include <dt-bindings/interrupt-controller/arm-gic.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) #include <dt-bindings/power/r8a7790-sysc.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) thermal: thermal@e61f0000 {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117) compatible = "renesas,thermal-r8a7790",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) "renesas,rcar-gen2-thermal",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) "renesas,rcar-thermal";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) reg = <0xe61f0000 0x10>, <0xe61f0100 0x38>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) clocks = <&cpg CPG_MOD 522>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) resets = <&cpg 522>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) #thermal-sensor-cells = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) thermal-zones {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) cpu_thermal: cpu-thermal {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) polling-delay-passive = <1000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) polling-delay = <5000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) thermal-sensors = <&thermal>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135) trips {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) cpu-crit {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) temperature = <115000>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) hysteresis = <0>;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) type = "critical";
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142) cooling-maps {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) };
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) };