Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / Documentation / devicetree / bindings / thermal / exynos-thermal.txt
diff --git a/kernel/Documentation/devicetree/bindings/thermal/exynos-thermal.txt b/kernel/Documentation/devicetree/bindings/thermal/exynos-thermal.txt
new file mode 100644 (file)
index 0000000..695150a
--- /dev/null
@@ -0,0 +1,121 @@
+* Exynos Thermal Management Unit (TMU)
+
+** Required properties:
+
+- compatible : One of the following:
+              "samsung,exynos3250-tmu"
+              "samsung,exynos4412-tmu"
+              "samsung,exynos4210-tmu"
+              "samsung,exynos5250-tmu"
+              "samsung,exynos5260-tmu"
+              "samsung,exynos5420-tmu" for TMU channel 0, 1 on Exynos5420
+              "samsung,exynos5420-tmu-ext-triminfo" for TMU channels 2, 3 and 4
+                       Exynos5420 (Must pass triminfo base and triminfo clock)
+              "samsung,exynos5440-tmu"
+              "samsung,exynos7-tmu"
+- interrupt-parent : The phandle for the interrupt controller
+- reg : Address range of the thermal registers. For soc's which has multiple
+       instances of TMU and some registers are shared across all TMU's like
+       interrupt related then 2 set of register has to supplied. First set
+       belongs to register set of TMU instance and second set belongs to
+       registers shared with the TMU instance.
+
+  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
+
+- interrupts : Should contain interrupt for thermal system
+- clocks : The main clocks for TMU device
+       -- 1. operational clock for TMU channel
+       -- 2. optional clock to access the shared registers of TMU channel
+       -- 3. optional special clock for functional operation
+- clock-names : Thermal system clock name
+       -- "tmu_apbif" operational clock for current TMU channel
+       -- "tmu_triminfo_apbif" clock to access the shared triminfo register
+               for current TMU channel
+       -- "tmu_sclk" clock for functional operation of the current TMU
+               channel
+- vtmu-supply: This entry is optional and provides the regulator node supplying
+               voltage to TMU. If needed this entry can be placed inside
+               board/platform specific dts file.
+Following properties are mandatory (depending on SoC):
+- samsung,tmu_gain: Gain value for internal TMU operation.
+- samsung,tmu_reference_voltage: Value of TMU IP block's reference voltage
+- samsung,tmu_noise_cancel_mode: Mode for noise cancellation
+- samsung,tmu_efuse_value: Default level of temperature - it is needed when
+                          in factory fusing produced wrong value
+- samsung,tmu_min_efuse_value: Minimum temperature fused value
+- samsung,tmu_max_efuse_value: Maximum temperature fused value
+- samsung,tmu_first_point_trim: First point trimming value
+- samsung,tmu_second_point_trim: Second point trimming value
+- samsung,tmu_default_temp_offset: Default temperature offset
+- samsung,tmu_cal_type: Callibration type
+
+Example 1):
+
+       tmu@100C0000 {
+               compatible = "samsung,exynos4412-tmu";
+               interrupt-parent = <&combiner>;
+               reg = <0x100C0000 0x100>;
+               interrupts = <2 4>;
+               clocks = <&clock 383>;
+               clock-names = "tmu_apbif";
+               status = "disabled";
+               vtmu-supply = <&tmu_regulator_node>;
+               #include "exynos4412-tmu-sensor-conf.dtsi"
+       };
+
+Example 2):
+
+       tmuctrl_0: tmuctrl@160118 {
+               compatible = "samsung,exynos5440-tmu";
+               reg = <0x160118 0x230>, <0x160368 0x10>;
+               interrupts = <0 58 0>;
+               clocks = <&clock 21>;
+               clock-names = "tmu_apbif";
+               #include "exynos5440-tmu-sensor-conf.dtsi"
+       };
+
+Example 3): (In case of Exynos5420 "with misplaced TRIMINFO register")
+       tmu_cpu2: tmu@10068000 {
+               compatible = "samsung,exynos5420-tmu-ext-triminfo";
+               reg = <0x10068000 0x100>, <0x1006c000 0x4>;
+               interrupts = <0 184 0>;
+               clocks = <&clock 318>, <&clock 318>;
+               clock-names = "tmu_apbif", "tmu_triminfo_apbif";
+               #include "exynos4412-tmu-sensor-conf.dtsi"
+       };
+
+       tmu_cpu3: tmu@1006c000 {
+               compatible = "samsung,exynos5420-tmu-ext-triminfo";
+               reg = <0x1006c000 0x100>, <0x100a0000 0x4>;
+               interrupts = <0 185 0>;
+               clocks = <&clock 318>, <&clock 319>;
+               clock-names = "tmu_apbif", "tmu_triminfo_apbif";
+               #include "exynos4412-tmu-sensor-conf.dtsi"
+       };
+
+       tmu_gpu: tmu@100a0000 {
+               compatible = "samsung,exynos5420-tmu-ext-triminfo";
+               reg = <0x100a0000 0x100>, <0x10068000 0x4>;
+               interrupts = <0 215 0>;
+               clocks = <&clock 319>, <&clock 318>;
+               clock-names = "tmu_apbif", "tmu_triminfo_apbif";
+               #include "exynos4412-tmu-sensor-conf.dtsi"
+       };
+
+Note: For multi-instance tmu each instance should have an alias correctly
+numbered in "aliases" node.
+
+Example:
+
+aliases {
+       tmuctrl0 = &tmuctrl_0;
+       tmuctrl1 = &tmuctrl_1;
+       tmuctrl2 = &tmuctrl_2;
+};