162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ci# Copyright (C) 2020 Renesas Electronics Corp.
362306a36Sopenharmony_ci%YAML 1.2
462306a36Sopenharmony_ci---
562306a36Sopenharmony_ci$id: http://devicetree.org/schemas/thermal/rcar-thermal.yaml#
662306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
762306a36Sopenharmony_ci
862306a36Sopenharmony_cititle: Renesas R-Car Thermal
962306a36Sopenharmony_ci
1062306a36Sopenharmony_cimaintainers:
1162306a36Sopenharmony_ci  - Niklas Söderlund <niklas.soderlund@ragnatech.se>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciproperties:
1462306a36Sopenharmony_ci  compatible:
1562306a36Sopenharmony_ci    oneOf:
1662306a36Sopenharmony_ci      - items:
1762306a36Sopenharmony_ci          - enum:
1862306a36Sopenharmony_ci              - renesas,thermal-r8a73a4 # R-Mobile APE6
1962306a36Sopenharmony_ci              - renesas,thermal-r8a7779 # R-Car H1
2062306a36Sopenharmony_ci          - const: renesas,rcar-thermal # Generic without thermal-zone
2162306a36Sopenharmony_ci      - items:
2262306a36Sopenharmony_ci          - enum:
2362306a36Sopenharmony_ci              - renesas,thermal-r8a7742 # RZ/G1H
2462306a36Sopenharmony_ci              - renesas,thermal-r8a7743 # RZ/G1M
2562306a36Sopenharmony_ci              - renesas,thermal-r8a7744 # RZ/G1N
2662306a36Sopenharmony_ci          - const: renesas,rcar-gen2-thermal # Generic thermal-zone
2762306a36Sopenharmony_ci      - items:
2862306a36Sopenharmony_ci          - enum:
2962306a36Sopenharmony_ci              - renesas,thermal-r8a7790 # R-Car H2
3062306a36Sopenharmony_ci              - renesas,thermal-r8a7791 # R-Car M2-W
3162306a36Sopenharmony_ci              - renesas,thermal-r8a7792 # R-Car V2H
3262306a36Sopenharmony_ci              - renesas,thermal-r8a7793 # R-Car M2-N
3362306a36Sopenharmony_ci          - const: renesas,rcar-gen2-thermal # Generic thermal-zone
3462306a36Sopenharmony_ci          - const: renesas,rcar-thermal # Generic without thermal-zone
3562306a36Sopenharmony_ci      - items:
3662306a36Sopenharmony_ci          - enum:
3762306a36Sopenharmony_ci              - renesas,thermal-r8a774c0 # RZ/G2E
3862306a36Sopenharmony_ci              - renesas,thermal-r8a77970 # R-Car V3M
3962306a36Sopenharmony_ci              - renesas,thermal-r8a77990 # R-Car E3
4062306a36Sopenharmony_ci              - renesas,thermal-r8a77995 # R-Car D3
4162306a36Sopenharmony_ci  reg:
4262306a36Sopenharmony_ci    description:
4362306a36Sopenharmony_ci      Address ranges of the thermal registers. If more then one range is given
4462306a36Sopenharmony_ci      the first one must be the common registers followed by each sensor
4562306a36Sopenharmony_ci      according to the datasheet.
4662306a36Sopenharmony_ci    minItems: 1
4762306a36Sopenharmony_ci    maxItems: 4
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci  interrupts:
5062306a36Sopenharmony_ci    minItems: 1
5162306a36Sopenharmony_ci    maxItems: 3
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci  clocks:
5462306a36Sopenharmony_ci    maxItems: 1
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci  power-domains:
5762306a36Sopenharmony_ci    maxItems: 1
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci  resets:
6062306a36Sopenharmony_ci    maxItems: 1
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci  "#thermal-sensor-cells":
6362306a36Sopenharmony_ci    const: 0
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_cirequired:
6662306a36Sopenharmony_ci  - compatible
6762306a36Sopenharmony_ci  - reg
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ciallOf:
7062306a36Sopenharmony_ci  - if:
7162306a36Sopenharmony_ci      not:
7262306a36Sopenharmony_ci        properties:
7362306a36Sopenharmony_ci          compatible:
7462306a36Sopenharmony_ci            contains:
7562306a36Sopenharmony_ci              enum:
7662306a36Sopenharmony_ci                - renesas,thermal-r8a73a4 # R-Mobile APE6
7762306a36Sopenharmony_ci                - renesas,thermal-r8a7779 # R-Car H1
7862306a36Sopenharmony_ci    then:
7962306a36Sopenharmony_ci      required:
8062306a36Sopenharmony_ci        - resets
8162306a36Sopenharmony_ci        - '#thermal-sensor-cells'
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ci  - if:
8462306a36Sopenharmony_ci      not:
8562306a36Sopenharmony_ci        properties:
8662306a36Sopenharmony_ci          compatible:
8762306a36Sopenharmony_ci            contains:
8862306a36Sopenharmony_ci              const: renesas,thermal-r8a7779 # R-Car H1
8962306a36Sopenharmony_ci    then:
9062306a36Sopenharmony_ci      required:
9162306a36Sopenharmony_ci        - interrupts
9262306a36Sopenharmony_ci        - clocks
9362306a36Sopenharmony_ci        - power-domains
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ciadditionalProperties: false
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ciexamples:
9862306a36Sopenharmony_ci  # Example (non interrupt support)
9962306a36Sopenharmony_ci  - |
10062306a36Sopenharmony_ci    thermal@ffc48000 {
10162306a36Sopenharmony_ci            compatible = "renesas,thermal-r8a7779", "renesas,rcar-thermal";
10262306a36Sopenharmony_ci            reg = <0xffc48000 0x38>;
10362306a36Sopenharmony_ci    };
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ci  # Example (interrupt support)
10662306a36Sopenharmony_ci  - |
10762306a36Sopenharmony_ci    #include <dt-bindings/clock/r8a73a4-clock.h>
10862306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
10962306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
11062306a36Sopenharmony_ci
11162306a36Sopenharmony_ci    thermal@e61f0000 {
11262306a36Sopenharmony_ci            compatible = "renesas,thermal-r8a73a4", "renesas,rcar-thermal";
11362306a36Sopenharmony_ci            reg = <0xe61f0000 0x14>, <0xe61f0100 0x38>,
11462306a36Sopenharmony_ci                  <0xe61f0200 0x38>, <0xe61f0300 0x38>;
11562306a36Sopenharmony_ci            interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
11662306a36Sopenharmony_ci            clocks = <&mstp5_clks R8A73A4_CLK_THERMAL>;
11762306a36Sopenharmony_ci            power-domains = <&pd_c5>;
11862306a36Sopenharmony_ci    };
11962306a36Sopenharmony_ci
12062306a36Sopenharmony_ci  # Example (with thermal-zone)
12162306a36Sopenharmony_ci  - |
12262306a36Sopenharmony_ci    #include <dt-bindings/clock/r8a7790-cpg-mssr.h>
12362306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
12462306a36Sopenharmony_ci    #include <dt-bindings/power/r8a7790-sysc.h>
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_ci    thermal: thermal@e61f0000 {
12762306a36Sopenharmony_ci      compatible = "renesas,thermal-r8a7790",
12862306a36Sopenharmony_ci                   "renesas,rcar-gen2-thermal",
12962306a36Sopenharmony_ci                   "renesas,rcar-thermal";
13062306a36Sopenharmony_ci            reg = <0xe61f0000 0x10>, <0xe61f0100 0x38>;
13162306a36Sopenharmony_ci            interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
13262306a36Sopenharmony_ci            clocks = <&cpg CPG_MOD 522>;
13362306a36Sopenharmony_ci            power-domains = <&sysc R8A7790_PD_ALWAYS_ON>;
13462306a36Sopenharmony_ci            resets = <&cpg 522>;
13562306a36Sopenharmony_ci            #thermal-sensor-cells = <0>;
13662306a36Sopenharmony_ci    };
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_ci    thermal-zones {
13962306a36Sopenharmony_ci            cpu_thermal: cpu-thermal {
14062306a36Sopenharmony_ci                    polling-delay-passive = <1000>;
14162306a36Sopenharmony_ci                    polling-delay = <5000>;
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_ci                    thermal-sensors = <&thermal>;
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_ci                    trips {
14662306a36Sopenharmony_ci                            cpu-crit {
14762306a36Sopenharmony_ci                                    temperature = <115000>;
14862306a36Sopenharmony_ci                                    hysteresis = <0>;
14962306a36Sopenharmony_ci                                    type = "critical";
15062306a36Sopenharmony_ci                            };
15162306a36Sopenharmony_ci                    };
15262306a36Sopenharmony_ci                    cooling-maps {
15362306a36Sopenharmony_ci                    };
15462306a36Sopenharmony_ci            };
15562306a36Sopenharmony_ci    };
156