Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 63745aa7 authored by Zhang Rui's avatar Zhang Rui
Browse files

Merge branches 'armada-375-380-soc-support', 'eduardo-thermal-soc-fixes',...

Merge branches 'armada-375-380-soc-support', 'eduardo-thermal-soc-fixes', 'intel-soc-dts-thermal' and 'thermal-soc-fixes' of .git into next
Loading
Loading
Loading
Loading
+47 −3
Original line number Diff line number Diff line
@@ -6,16 +6,35 @@
	       "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"
- 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 each instance of TMU and second set belongs to common TMU
	registers.
	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 clock for TMU device
- clocks : The main clocks for TMU device
	-- 1. operational clock for TMU channel
	-- 2. optional clock to access the shared registers of TMU channel
- 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
- 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.
@@ -43,6 +62,31 @@ Example 2):
		clock-names = "tmu_apbif";
	};

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";
	};

	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";
	};

	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";
	};

Note: For multi-instance tmu each instance should have an alias correctly
numbered in "aliases" node.

+13 −1
Original line number Diff line number Diff line
@@ -222,12 +222,24 @@ config ACPI_INT3403_THERMAL
	  the Intel Thermal Daemon can use this information to allow the user
	  to select his laptop to run without turning on the fans.

config INTEL_SOC_DTS_THERMAL
	tristate "Intel SoCs DTS thermal driver"
	depends on X86 && IOSF_MBI
	help
	  Enable this to register Intel SoCs (e.g. Bay Trail) platform digital
	  temperature sensor (DTS). These SoCs have two additional DTSs in
	  addition to DTSs on CPU cores. Each DTS will be registered as a
	  thermal zone. There are two trip points. One of the trip point can
	  be set by user mode programs to get notifications via Linux thermal
	  notification methods.The other trip is a critical trip point, which
	  was set by the driver based on the TJ MAX temperature.

menu "Texas Instruments thermal drivers"
source "drivers/thermal/ti-soc-thermal/Kconfig"
endmenu

menu "Samsung thermal drivers"
depends on PLAT_SAMSUNG
depends on ARCH_EXYNOS
source "drivers/thermal/samsung/Kconfig"
endmenu

+1 −0
Original line number Diff line number Diff line
@@ -29,5 +29,6 @@ obj-$(CONFIG_IMX_THERMAL) += imx_thermal.o
obj-$(CONFIG_DB8500_CPUFREQ_COOLING)	+= db8500_cpufreq_cooling.o
obj-$(CONFIG_INTEL_POWERCLAMP)	+= intel_powerclamp.o
obj-$(CONFIG_X86_PKG_TEMP_THERMAL)	+= x86_pkg_temp_thermal.o
obj-$(CONFIG_INTEL_SOC_DTS_THERMAL)	+= intel_soc_dts_thermal.o
obj-$(CONFIG_TI_SOC_THERMAL)	+= ti-soc-thermal/
obj-$(CONFIG_ACPI_INT3403_THERMAL)	+= int3403_thermal.o
+7 −1
Original line number Diff line number Diff line
@@ -62,7 +62,13 @@ static int sys_get_trip_hyst(struct thermal_zone_device *tzone,
	if (ACPI_FAILURE(status))
		return -EIO;

	*temp = DECI_KELVIN_TO_MILLI_CELSIUS(hyst, KELVIN_OFFSET);
	/*
	 * Thermal hysteresis represents a temperature difference.
	 * Kelvin and Celsius have same degree size. So the
	 * conversion here between tenths of degree Kelvin unit
	 * and Milli-Celsius unit is just to multiply 100.
	 */
	*temp = hyst * 100;

	return 0;
}
+2 −0
Original line number Diff line number Diff line
@@ -681,8 +681,10 @@ static const struct x86_cpu_id intel_powerclamp_ids[] = {
	{ X86_VENDOR_INTEL, 6, 0x2d},
	{ X86_VENDOR_INTEL, 6, 0x2e},
	{ X86_VENDOR_INTEL, 6, 0x2f},
	{ X86_VENDOR_INTEL, 6, 0x37},
	{ X86_VENDOR_INTEL, 6, 0x3a},
	{ X86_VENDOR_INTEL, 6, 0x3c},
	{ X86_VENDOR_INTEL, 6, 0x3d},
	{ X86_VENDOR_INTEL, 6, 0x3e},
	{ X86_VENDOR_INTEL, 6, 0x3f},
	{ X86_VENDOR_INTEL, 6, 0x45},
Loading