linux/drivers/thermal
Steve Twiss 608567aac3 thermal: da9062/61: Thermal junction temperature monitoring driver
Add junction temperature monitoring supervisor device driver, compatible
with the DA9062 and DA9061 PMICs. A MODULE_DEVICE_TABLE() macro is added.

If the PMIC's internal junction temperature rises above T_WARN (125 degC)
an interrupt is issued. This T_WARN level is defined as the
THERMAL_TRIP_HOT trip-wire inside the device driver.

The thermal triggering mechanism is interrupt based and happens when the
temperature rises above a given threshold level. The component cannot
return an exact temperature, it only has knowledge if the temperature is
above or below a given threshold value. A status bit must be polled to
detect when the temperature falls below that threshold level again. A
kernel work queue is configured to repeatedly poll and detect when the
temperature falls below this trip-wire, between 1 and 10 second intervals
(defaulting at 3 seconds).

This scheme is provided as an example. It would be expected that any
final implementation will also include a notify() function and any of these
settings could be altered to match the application where appropriate.

When over-temperature is reached, the interrupt from the DA9061/2 will be
repeatedly triggered. The IRQ is therefore disabled when the first
over-temperature event happens and the status bit is polled using a
work-queue until it becomes false.

This strategy is designed to allow the periodic transmission of uevents
(HOT trip point) as the first level of temperature supervision method. It
is intended for non-invasive temperature control, where the necessary
measures for cooling the system down are left to the host software. Once
the temperature falls again, the IRQ is re-enabled so a new critical
over-temperature event can be detected.

Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>
Signed-off-by: Steve Twiss <stwiss.opensource@diasemi.com>
Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
2017-04-06 21:48:03 -07:00
..
broadcom thermal: broadcom: add Northstar thermal driver 2017-04-06 21:45:19 -07:00
int340x_thermal thermal: int340x_thermal: use permission-specific DEVICE_ATTR variants 2016-11-23 10:05:25 +08:00
qcom thermal: qcom: tsens: Fix return value check in init_common() 2016-09-27 14:02:16 +08:00
samsung thermal: exynos: Remove parsing unused samsung,tmu_cal_mode property 2017-02-18 17:22:27 -08:00
st thermal: Enhance thermal_zone_device_update for events 2016-09-27 14:35:21 +08:00
tegra thermal: tegra: add hw-throttle for Tegra132 2016-09-27 14:02:32 +08:00
ti-soc-thermal thermal: ti-soc-thermal: Remove redundant code 2017-03-29 22:15:18 -07:00
armada_thermal.c thermal: armada: Fix possible overflow in the Armada 380 thermal sensor formula 2015-10-30 11:33:23 -07:00
bcm2835_thermal.c thermal: bcm2835: add thermal driver for bcm2835 SoC 2017-04-01 09:30:28 -07:00
clock_cooling.c thermal: convert clock cooling to use an IDA 2017-01-04 12:47:28 +08:00
cpu_cooling.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux 2017-03-01 09:54:32 -08:00
da9062-thermal.c thermal: da9062/61: Thermal junction temperature monitoring driver 2017-04-06 21:48:03 -07:00
db8500_cpufreq_cooling.c thermal: db8500_cpufreq_cooling: Fix module autoload for OF platform driver 2015-09-13 20:26:19 -07:00
db8500_thermal.c thermal: db8500: Fix module autoload 2016-11-23 10:07:35 +08:00
devfreq_cooling.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux 2017-03-01 09:54:32 -08:00
dove_thermal.c thermal: consistently use int for temperatures 2015-08-03 23:15:50 +08:00
fair_share.c thermal: fix race condition when updating cooling device 2016-08-08 10:57:39 +08:00
gov_bang_bang.c thermal: bang-bang governor: act on lower trip boundary 2016-09-27 14:02:16 +08:00
hisi_thermal.c thermal: Enhance thermal_zone_device_update for events 2016-09-27 14:35:21 +08:00
imx_thermal.c thermal: imx: Fix possible NULL dereference. 2017-02-18 17:27:36 -08:00
intel_bxt_pmic_thermal.c thermal: Enhance thermal_zone_device_update for events 2016-09-27 14:35:21 +08:00
intel_pch_thermal.c thermal: intel_pch_thermal: Support skylake PCH 100 series thermal 2016-11-23 10:05:52 +08:00
intel_powerclamp.c sched/headers: Prepare for new header dependencies before moving code to <uapi/linux/sched/types.h> 2017-03-02 08:42:27 +01:00
intel_quark_dts_thermal.c x86/platform/iosf_mbi: Remove duplicate definitions 2015-12-09 01:18:34 +01:00
intel_soc_dts_iosf.c thermal: Enhance thermal_zone_device_update for events 2016-09-27 14:35:21 +08:00
intel_soc_dts_iosf.h Thermal: Intel SoC: DTS thermal IOSF core 2015-05-01 11:20:42 +08:00
intel_soc_dts_thermal.c x86, thermal: Clean up and fix CPU model detection for intel_soc_dts_thermal 2016-06-08 13:03:26 +02:00
Kconfig thermal: da9062/61: Thermal junction temperature monitoring driver 2017-04-06 21:48:03 -07:00
kirkwood_thermal.c thermal: consistently use int for temperatures 2015-08-03 23:15:50 +08:00
Makefile thermal: da9062/61: Thermal junction temperature monitoring driver 2017-04-06 21:48:03 -07:00
max77620_thermal.c thermal: max77620: Fix module autoload 2016-11-23 10:07:35 +08:00
mtk_thermal.c thermal: mtk_thermal: Staticise a number of data variables 2017-02-18 17:44:29 -08:00
of-thermal.c thermal: Enhance thermal_zone_device_update for events 2016-09-27 14:35:21 +08:00
power_allocator.c thermal: fix race condition when updating cooling device 2016-08-08 10:57:39 +08:00
qcom-spmi-temp-alarm.c thermal: qcom-spmi: Treat reg property as a single cell 2016-11-23 10:07:35 +08:00
qoriq_thermal.c thermal: qoriq: Add thermal management support 2016-09-27 14:02:16 +08:00
rcar_gen3_thermal.c thermal: rcar_gen3_thermal: add suspend and resume support 2017-03-30 21:49:03 -07:00
rcar_thermal.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux 2016-10-12 11:05:23 -07:00
rockchip_thermal.c thermal: rockchip: fixes the conversion table 2017-01-16 20:30:49 -08:00
spear_thermal.c thermal: spear: use __maybe_unused for PM functions 2016-02-09 14:12:08 -08:00
step_wise.c thermal: fix race condition when updating cooling device 2016-08-08 10:57:39 +08:00
tango_thermal.c thermal: tango: Fix module autoload 2016-11-23 10:07:35 +08:00
thermal_core.c Merge branches 'thermal-core', 'thermal-soc', 'thermal-intel' and 'ida-conversion' into next 2017-02-22 15:35:06 +08:00
thermal_core.h thermal: core: move cooling device sysfs to thermal_sysfs.c 2016-11-23 10:06:12 +08:00
thermal_helpers.c thermal: core: move slop and offset helpers to thermal_helpers.c 2016-11-23 10:06:12 +08:00
thermal_hwmon.c Revert "thermal: thermal_hwmon: Convert to hwmon_device_register_with_info()" 2017-01-25 09:51:08 +08:00
thermal_hwmon.h thermal: hwmon: move hwmon support to single file 2013-09-03 09:09:12 -04:00
thermal_sysfs.c thermal: sysfs: use kcalloc() instead of kzalloc() 2016-11-23 10:06:12 +08:00
thermal-generic-adc.c thermal: generic-adc: Add ADC based thermal sensor driver 2016-05-17 07:28:31 -07:00
user_space.c thermal: user_space gov: Add additional information in uevent 2016-09-27 14:37:10 +08:00
x86_pkg_temp_thermal.c thermal/x86 pkg temp: Convert to hotplug state machine 2016-11-30 10:25:47 +08:00
zx2967_thermal.c thermal: zx2967: add thermal driver for ZTE's zx2967 family 2017-02-18 16:36:12 -08:00