[PATCH] Intel Quark X1000 DTS thermal driver

From: Ong Boon Leong
Date: Wed Feb 11 2015 - 11:53:53 EST

Dear maintainers,

This patch introduces DTS thermal driver for Intel Quark X1000.
The code implementation is based on intel_soc_dts_thermal.c.

Intel Quark X1000 has one on-die DTS with two configurable trip points:
critical and hot trip points. However, todate, UEFI BIOS for Quark X1000
uses only critical trip point. UEFI BIOS always lock DTS register before
hand-over to Linux kernel.

The minimalist thermal design is meant to trigger Linux distro to gracefully
power-down the system when its DTS temperature exceeds the configured critical
trip point.

In anticipation that other variant of Quark platform may come with UEFI BIOS
that does not lock DTS register during hand-over, this DTS driver is built
with logics to handle such case too.

I have tested v1 of the patch on Intel Galileo Gen v2 board and found it
satisfactory with logs below:

root@quark:/sys/class/thermal/thermal_zone0# echo disabled > mode
[ 46.276881] intel_quark_dts_thermal: DTS is locked. Cannot disable DTS
-sh: echo: write error: Operation not permitted
root@quark:/sys/class/thermal/thermal_zone0# cat temp
root@quark:/sys/class/thermal/thermal_zone0# cat trip_point_0_temp
root@quark:/sys/class/thermal/thermal_zone0# cat trip_point_0_type
root@quark:/sys/class/thermal/thermal_zone0# cat trip_point_1_temp
root@quark:/sys/class/thermal/thermal_zone0# cat trip_point_1_type
root@quark:/sys/class/thermal/thermal_zone0# cat type

root@quark:/sys/class/thermal/thermal_zone0# echo 105 > emul_temp
[ 179.372981] thermal thermal_zone0: critical temperature reached(0 C),shutting down
root@quark:/sys/class/thermal/thermal_zone0# Stopping WPA supplicant...
[ OK ] Stopped target Multi-User System.
Stopping Telephony service...
Stopping Lightning Fast Webserver With Light System Requirements...
Stopping Target Communication Framework agent...
Stopping Galileo Arduino Layer...
[ OK ] Stopped target Login Prompts.
Stopping Getty on tty1...
Stopping Serial Getty on ttyS1...
Stopping Login Service...
Stopping D-Bus System Message Bus...
Starting Store Sound Card State...
[ OK ] Stopped Telephony service.
[ OK ] Stopped Galileo Arduino Layer.
[ OK ] Stopped Login Service.
[ OK ] Stopped D-Bus System Message Bus.
[ OK ] Stopped Target Communication Framework agent.
[ OK ] Stopped Lightning Fast Webserver With Light System Requirements.
[ OK ] Stopped WPA supplicant.
[ OK ] Stopped Getty on tty1.
[ OK ] Stopped Serial Getty on ttyS1.

Please kindly review the patch at your convenient time and provide me feedback
for improvement. Appreciate your time and effort.

Thank You
Ong Boon Leong
Intel Corp.

Ong Boon Leong (1):
thermal: intel Quark SoC X1000 DTS thermal driver

drivers/thermal/Kconfig | 10
drivers/thermal/Makefile | 1
drivers/thermal/intel_quark_dts_thermal.c | 408 +++++++++++++++++++++++++++++
3 files changed, 419 insertions(+)
create mode 100644 drivers/thermal/intel_quark_dts_thermal.c


To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/