summaryrefslogtreecommitdiff
path: root/src/superio/ite
diff options
context:
space:
mode:
authorVagiz Trakhanov <rakkin@autistici.org>2017-09-28 14:25:59 +0000
committerMartin Roth <martinroth@google.com>2017-10-22 02:19:56 +0000
commitcc9c0cbc7eca6f423f83583a80dc5bd83c54ffaa (patch)
tree91bc6b0c6e7596f99b67296399dd5120d5ce1ae0 /src/superio/ite
parent17c577153042b6559bf7a9dca6ae9f644b18d770 (diff)
downloadcoreboot-cc9c0cbc7eca6f423f83583a80dc5bd83c54ffaa.tar.xz
superio/ite/common: Add temperature limits
Add devicetree options to set temperature limits that are used to alarm user when temperature exceeds defined values. Audio alerts by superio are not implemented yet, but since limits are visible to userland, some software might use them as is. For instance, lm-sensors displays "ALERT" when temperature exceeds limits. Change-Id: I56e041fb78f518d6a9640dc2b3985459991242b9 Signed-off-by: Vagiz Tarkhanov <rakkin@autistici.org> Reviewed-on: https://review.coreboot.org/21844 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de>
Diffstat (limited to 'src/superio/ite')
-rw-r--r--src/superio/ite/common/env_ctrl.c6
-rw-r--r--src/superio/ite/common/env_ctrl.h3
-rw-r--r--src/superio/ite/common/env_ctrl_chip.h3
3 files changed, 12 insertions, 0 deletions
diff --git a/src/superio/ite/common/env_ctrl.c b/src/superio/ite/common/env_ctrl.c
index c8274db6c8..932f827223 100644
--- a/src/superio/ite/common/env_ctrl.c
+++ b/src/superio/ite/common/env_ctrl.c
@@ -129,6 +129,12 @@ static void enable_tmpin(const u16 base, const u8 tmpin,
ite_ec_write(base, ITE_EC_TEMP_ADJUST[tmpin-1], conf->offset);
}
+ /* Set temperature limits */
+ u8 max = conf->max;
+ ite_ec_write(base, ITE_EC_HIGH_TEMP_LIMIT(tmpin),
+ max ? max : 127);
+ ite_ec_write(base, ITE_EC_LOW_TEMP_LIMIT(tmpin), conf->min);
+
/* Enable the startup of monitoring operation */
reg = ite_ec_read(base, ITE_EC_CONFIGURATION);
reg |= ITE_EC_CONFIGURATION_START;
diff --git a/src/superio/ite/common/env_ctrl.h b/src/superio/ite/common/env_ctrl.h
index 1be6436310..64603c66a7 100644
--- a/src/superio/ite/common/env_ctrl.h
+++ b/src/superio/ite/common/env_ctrl.h
@@ -86,6 +86,9 @@
#define ITE_EC_FAN_CTL_TEMPIN_MASK (3 << 0)
#define ITE_EC_FAN_CTL_TEMPIN(x) (((x)-1) & 3)
+#define ITE_EC_HIGH_TEMP_LIMIT(x) (0x40 + ((x-1) * 2))
+#define ITE_EC_LOW_TEMP_LIMIT(x) (0x41 + ((x-1) * 2))
+
#define ITE_EC_ADC_VOLTAGE_CHANNEL_ENABLE 0x50
#define ITE_EC_ADC_TEMP_CHANNEL_ENABLE 0x51
#define ITE_EC_ADC_TEMP_EXT_REPORTS_TO(x) (((x) & 3) << 6)
diff --git a/src/superio/ite/common/env_ctrl_chip.h b/src/superio/ite/common/env_ctrl_chip.h
index 8eb908e77a..a535af6dfa 100644
--- a/src/superio/ite/common/env_ctrl_chip.h
+++ b/src/superio/ite/common/env_ctrl_chip.h
@@ -32,6 +32,9 @@ struct ite_ec_thermal_config {
enum ite_ec_thermal_mode mode;
/* Offset is used for diode sensors and PECI */
u8 offset;
+ /* Limits */
+ u8 min;
+ u8 max;
};
/* Bit mask for voltage pins VINx */