xref: /openbmc/linux/Documentation/devicetree/bindings/thermal/samsung,exynos-thermal.yaml (revision 0fb74d0d21aaea1513eb8bfdbbde60113be4fcbc)
1*0fb74d0dSKrzysztof Kozlowski# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*0fb74d0dSKrzysztof Kozlowski%YAML 1.2
3*0fb74d0dSKrzysztof Kozlowski---
4*0fb74d0dSKrzysztof Kozlowski$id: http://devicetree.org/schemas/thermal/samsung,exynos-thermal.yaml#
5*0fb74d0dSKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
6*0fb74d0dSKrzysztof Kozlowski
7*0fb74d0dSKrzysztof Kozlowskititle: Samsung Exynos SoC Thermal Management Unit (TMU)
8*0fb74d0dSKrzysztof Kozlowski
9*0fb74d0dSKrzysztof Kozlowskimaintainers:
10*0fb74d0dSKrzysztof Kozlowski  - Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
11*0fb74d0dSKrzysztof Kozlowski
12*0fb74d0dSKrzysztof Kozlowskidescription: |
13*0fb74d0dSKrzysztof Kozlowski  For multi-instance tmu each instance should have an alias correctly numbered
14*0fb74d0dSKrzysztof Kozlowski  in "aliases" node.
15*0fb74d0dSKrzysztof Kozlowski
16*0fb74d0dSKrzysztof Kozlowskiproperties:
17*0fb74d0dSKrzysztof Kozlowski  compatible:
18*0fb74d0dSKrzysztof Kozlowski    enum:
19*0fb74d0dSKrzysztof Kozlowski      - samsung,exynos3250-tmu
20*0fb74d0dSKrzysztof Kozlowski      - samsung,exynos4412-tmu
21*0fb74d0dSKrzysztof Kozlowski      - samsung,exynos4210-tmu
22*0fb74d0dSKrzysztof Kozlowski      - samsung,exynos5250-tmu
23*0fb74d0dSKrzysztof Kozlowski      - samsung,exynos5260-tmu
24*0fb74d0dSKrzysztof Kozlowski        # For TMU channel 0, 1 on Exynos5420:
25*0fb74d0dSKrzysztof Kozlowski      - samsung,exynos5420-tmu
26*0fb74d0dSKrzysztof Kozlowski        # For TMU channels 2, 3 and 4 of Exynos5420:
27*0fb74d0dSKrzysztof Kozlowski      - samsung,exynos5420-tmu-ext-triminfo
28*0fb74d0dSKrzysztof Kozlowski      - samsung,exynos5433-tmu
29*0fb74d0dSKrzysztof Kozlowski      - samsung,exynos7-tmu
30*0fb74d0dSKrzysztof Kozlowski
31*0fb74d0dSKrzysztof Kozlowski  clocks:
32*0fb74d0dSKrzysztof Kozlowski    minItems: 1
33*0fb74d0dSKrzysztof Kozlowski    maxItems: 3
34*0fb74d0dSKrzysztof Kozlowski
35*0fb74d0dSKrzysztof Kozlowski  clock-names:
36*0fb74d0dSKrzysztof Kozlowski    minItems: 1
37*0fb74d0dSKrzysztof Kozlowski    maxItems: 3
38*0fb74d0dSKrzysztof Kozlowski
39*0fb74d0dSKrzysztof Kozlowski  interrupts:
40*0fb74d0dSKrzysztof Kozlowski    description: |
41*0fb74d0dSKrzysztof Kozlowski      The Exynos TMU supports generating interrupts when reaching given
42*0fb74d0dSKrzysztof Kozlowski      temperature thresholds. Number of supported thermal trip points depends
43*0fb74d0dSKrzysztof Kozlowski      on the SoC (only first trip points defined in DT will be configured)::
44*0fb74d0dSKrzysztof Kozlowski       - most of SoC: 4
45*0fb74d0dSKrzysztof Kozlowski       - samsung,exynos5433-tmu: 8
46*0fb74d0dSKrzysztof Kozlowski       - samsung,exynos7-tmu: 8
47*0fb74d0dSKrzysztof Kozlowski    maxItems: 1
48*0fb74d0dSKrzysztof Kozlowski
49*0fb74d0dSKrzysztof Kozlowski  reg:
50*0fb74d0dSKrzysztof Kozlowski    items:
51*0fb74d0dSKrzysztof Kozlowski      - description: TMU instance registers.
52*0fb74d0dSKrzysztof Kozlowski      - description: |
53*0fb74d0dSKrzysztof Kozlowski          Shared TMU registers.
54*0fb74d0dSKrzysztof Kozlowski
55*0fb74d0dSKrzysztof Kozlowski          Note:: On Exynos5420, the TRIMINFO register is misplaced for TMU
56*0fb74d0dSKrzysztof Kozlowski          channels 2, 3 and 4 Use "samsung,exynos5420-tmu-ext-triminfo" in
57*0fb74d0dSKrzysztof Kozlowski          cases, there is a misplaced register, also provide clock to access
58*0fb74d0dSKrzysztof Kozlowski          that base.
59*0fb74d0dSKrzysztof Kozlowski          TRIMINFO at 0x1006c000 contains data for TMU channel 3
60*0fb74d0dSKrzysztof Kozlowski          TRIMINFO at 0x100a0000 contains data for TMU channel 4
61*0fb74d0dSKrzysztof Kozlowski          TRIMINFO at 0x10068000 contains data for TMU channel 2
62*0fb74d0dSKrzysztof Kozlowski    minItems: 1
63*0fb74d0dSKrzysztof Kozlowski
64*0fb74d0dSKrzysztof Kozlowski  '#thermal-sensor-cells': true
65*0fb74d0dSKrzysztof Kozlowski
66*0fb74d0dSKrzysztof Kozlowski  vtmu-supply:
67*0fb74d0dSKrzysztof Kozlowski    description: The regulator node supplying voltage to TMU.
68*0fb74d0dSKrzysztof Kozlowski
69*0fb74d0dSKrzysztof Kozlowskirequired:
70*0fb74d0dSKrzysztof Kozlowski  - compatible
71*0fb74d0dSKrzysztof Kozlowski  - clocks
72*0fb74d0dSKrzysztof Kozlowski  - clock-names
73*0fb74d0dSKrzysztof Kozlowski  - interrupts
74*0fb74d0dSKrzysztof Kozlowski  - reg
75*0fb74d0dSKrzysztof Kozlowski
76*0fb74d0dSKrzysztof KozlowskiallOf:
77*0fb74d0dSKrzysztof Kozlowski  - $ref: /schemas/thermal/thermal-sensor.yaml
78*0fb74d0dSKrzysztof Kozlowski  - if:
79*0fb74d0dSKrzysztof Kozlowski      properties:
80*0fb74d0dSKrzysztof Kozlowski        compatible:
81*0fb74d0dSKrzysztof Kozlowski          contains:
82*0fb74d0dSKrzysztof Kozlowski            const: samsung,exynos5420-tmu-ext-triminfo
83*0fb74d0dSKrzysztof Kozlowski    then:
84*0fb74d0dSKrzysztof Kozlowski      properties:
85*0fb74d0dSKrzysztof Kozlowski        clocks:
86*0fb74d0dSKrzysztof Kozlowski          items:
87*0fb74d0dSKrzysztof Kozlowski            - description:
88*0fb74d0dSKrzysztof Kozlowski                Operational clock for TMU channel.
89*0fb74d0dSKrzysztof Kozlowski            - description:
90*0fb74d0dSKrzysztof Kozlowski                Optional clock to access the shared registers (e.g. TRIMINFO) of TMU
91*0fb74d0dSKrzysztof Kozlowski                channel.
92*0fb74d0dSKrzysztof Kozlowski        clock-names:
93*0fb74d0dSKrzysztof Kozlowski          items:
94*0fb74d0dSKrzysztof Kozlowski            - const: tmu_apbif
95*0fb74d0dSKrzysztof Kozlowski            - const: tmu_triminfo_apbif
96*0fb74d0dSKrzysztof Kozlowski        reg:
97*0fb74d0dSKrzysztof Kozlowski          minItems: 2
98*0fb74d0dSKrzysztof Kozlowski          maxItems: 2
99*0fb74d0dSKrzysztof Kozlowski  - if:
100*0fb74d0dSKrzysztof Kozlowski      properties:
101*0fb74d0dSKrzysztof Kozlowski        compatible:
102*0fb74d0dSKrzysztof Kozlowski          contains:
103*0fb74d0dSKrzysztof Kozlowski            enum:
104*0fb74d0dSKrzysztof Kozlowski              - samsung,exynos5433-tmu
105*0fb74d0dSKrzysztof Kozlowski              - samsung,exynos7-tmu
106*0fb74d0dSKrzysztof Kozlowski    then:
107*0fb74d0dSKrzysztof Kozlowski      properties:
108*0fb74d0dSKrzysztof Kozlowski        clocks:
109*0fb74d0dSKrzysztof Kozlowski          items:
110*0fb74d0dSKrzysztof Kozlowski            - description:
111*0fb74d0dSKrzysztof Kozlowski                Operational clock for TMU channel.
112*0fb74d0dSKrzysztof Kozlowski            - description:
113*0fb74d0dSKrzysztof Kozlowski                Optional special clock for functional operation of TMU channel.
114*0fb74d0dSKrzysztof Kozlowski        clock-names:
115*0fb74d0dSKrzysztof Kozlowski          items:
116*0fb74d0dSKrzysztof Kozlowski            - const: tmu_apbif
117*0fb74d0dSKrzysztof Kozlowski            - const: tmu_sclk
118*0fb74d0dSKrzysztof Kozlowski        reg:
119*0fb74d0dSKrzysztof Kozlowski          minItems: 1
120*0fb74d0dSKrzysztof Kozlowski          maxItems: 1
121*0fb74d0dSKrzysztof Kozlowski
122*0fb74d0dSKrzysztof Kozlowski  - if:
123*0fb74d0dSKrzysztof Kozlowski      properties:
124*0fb74d0dSKrzysztof Kozlowski        compatible:
125*0fb74d0dSKrzysztof Kozlowski          contains:
126*0fb74d0dSKrzysztof Kozlowski            enum:
127*0fb74d0dSKrzysztof Kozlowski              - samsung,exynos3250-tmu
128*0fb74d0dSKrzysztof Kozlowski              - samsung,exynos4412-tmu
129*0fb74d0dSKrzysztof Kozlowski              - samsung,exynos4210-tmu
130*0fb74d0dSKrzysztof Kozlowski              - samsung,exynos5250-tmu
131*0fb74d0dSKrzysztof Kozlowski              - samsung,exynos5260-tmu
132*0fb74d0dSKrzysztof Kozlowski              - samsung,exynos5420-tmu
133*0fb74d0dSKrzysztof Kozlowski    then:
134*0fb74d0dSKrzysztof Kozlowski      properties:
135*0fb74d0dSKrzysztof Kozlowski        clocks:
136*0fb74d0dSKrzysztof Kozlowski          minItems: 1
137*0fb74d0dSKrzysztof Kozlowski          maxItems: 1
138*0fb74d0dSKrzysztof Kozlowski        reg:
139*0fb74d0dSKrzysztof Kozlowski          minItems: 1
140*0fb74d0dSKrzysztof Kozlowski          maxItems: 1
141*0fb74d0dSKrzysztof Kozlowski
142*0fb74d0dSKrzysztof KozlowskiadditionalProperties: false
143*0fb74d0dSKrzysztof Kozlowski
144*0fb74d0dSKrzysztof Kozlowskiexamples:
145*0fb74d0dSKrzysztof Kozlowski  - |
146*0fb74d0dSKrzysztof Kozlowski    #include <dt-bindings/clock/exynos4.h>
147*0fb74d0dSKrzysztof Kozlowski
148*0fb74d0dSKrzysztof Kozlowski    tmu@100c0000 {
149*0fb74d0dSKrzysztof Kozlowski        compatible = "samsung,exynos4412-tmu";
150*0fb74d0dSKrzysztof Kozlowski        reg = <0x100C0000 0x100>;
151*0fb74d0dSKrzysztof Kozlowski        interrupt-parent = <&combiner>;
152*0fb74d0dSKrzysztof Kozlowski        interrupts = <2 4>;
153*0fb74d0dSKrzysztof Kozlowski        #thermal-sensor-cells = <0>;
154*0fb74d0dSKrzysztof Kozlowski        clocks = <&clock CLK_TMU_APBIF>;
155*0fb74d0dSKrzysztof Kozlowski        clock-names = "tmu_apbif";
156*0fb74d0dSKrzysztof Kozlowski        vtmu-supply = <&ldo10_reg>;
157*0fb74d0dSKrzysztof Kozlowski    };
158*0fb74d0dSKrzysztof Kozlowski
159*0fb74d0dSKrzysztof Kozlowski  - |
160*0fb74d0dSKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/arm-gic.h>
161*0fb74d0dSKrzysztof Kozlowski
162*0fb74d0dSKrzysztof Kozlowski    tmu@10068000 {
163*0fb74d0dSKrzysztof Kozlowski        compatible = "samsung,exynos5420-tmu-ext-triminfo";
164*0fb74d0dSKrzysztof Kozlowski        reg = <0x10068000 0x100>, <0x1006c000 0x4>;
165*0fb74d0dSKrzysztof Kozlowski        interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
166*0fb74d0dSKrzysztof Kozlowski        #thermal-sensor-cells = <0>;
167*0fb74d0dSKrzysztof Kozlowski        clocks = <&clock 318>, <&clock 318>; /* CLK_TMU */
168*0fb74d0dSKrzysztof Kozlowski        clock-names = "tmu_apbif", "tmu_triminfo_apbif";
169*0fb74d0dSKrzysztof Kozlowski        vtmu-supply = <&ldo7_reg>;
170*0fb74d0dSKrzysztof Kozlowski    };
171*0fb74d0dSKrzysztof Kozlowski
172*0fb74d0dSKrzysztof Kozlowski  - |
173*0fb74d0dSKrzysztof Kozlowski    #include <dt-bindings/interrupt-controller/arm-gic.h>
174*0fb74d0dSKrzysztof Kozlowski
175*0fb74d0dSKrzysztof Kozlowski    tmu@10060000 {
176*0fb74d0dSKrzysztof Kozlowski        compatible = "samsung,exynos5433-tmu";
177*0fb74d0dSKrzysztof Kozlowski        reg = <0x10060000 0x200>;
178*0fb74d0dSKrzysztof Kozlowski        interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
179*0fb74d0dSKrzysztof Kozlowski        #thermal-sensor-cells = <0>;
180*0fb74d0dSKrzysztof Kozlowski        clocks = <&cmu_peris 3>, /* CLK_PCLK_TMU0_APBIF */
181*0fb74d0dSKrzysztof Kozlowski                 <&cmu_peris 35>; /* CLK_SCLK_TMU0 */
182*0fb74d0dSKrzysztof Kozlowski        clock-names = "tmu_apbif", "tmu_sclk";
183*0fb74d0dSKrzysztof Kozlowski        vtmu-supply = <&ldo3_reg>;
184*0fb74d0dSKrzysztof Kozlowski    };
185