[coreboot-gerrit] Change in coreboot[master]: superio/ite/common: Add options to enable beeps

Vagiz Tarkhanov (Code Review) gerrit at coreboot.org
Mon Oct 23 18:47:17 CEST 2017


Vagiz Tarkhanov has uploaded this change for review. ( https://review.coreboot.org/22141


Change subject: superio/ite/common: Add options to enable beeps
......................................................................

superio/ite/common: Add options to enable beeps

Add device tree options to enable beeps when exceeding temperature,
voltage, and fan limits. As of this commit, setting voltage and fan
limits is not implemented.

Change-Id: I57ce622ee4498b75f00e678c2e6d72e499925bce
Signed-off-by: Vagiz Trakhanov <rakkin at autistici.org>
---
M src/superio/ite/common/env_ctrl.c
M src/superio/ite/common/env_ctrl.h
M src/superio/ite/common/env_ctrl_chip.h
3 files changed, 36 insertions(+), 3 deletions(-)



  git pull ssh://review.coreboot.org:29418/coreboot refs/changes/41/22141/1

diff --git a/src/superio/ite/common/env_ctrl.c b/src/superio/ite/common/env_ctrl.c
index 44926bc..b78d250 100644
--- a/src/superio/ite/common/env_ctrl.c
+++ b/src/superio/ite/common/env_ctrl.c
@@ -232,6 +232,32 @@
 	ite_ec_write(base, ITE_EC_FAN_MAIN_CTL, reg);
 }
 
+static void enable_beeps(const u16 base, const struct ite_ec_config *const conf)
+{
+	u8 reg;
+	reg = 0;
+	u8 freq;
+	freq = ITE_EC_BEEP_TONE_DIVISOR(10) | ITE_EC_BEEP_FREQ_DIVISOR(10);
+
+	if (conf->tmpin_beep) {
+		reg |= ITE_EC_BEEP_ON_TMP_LIMIT;
+		ite_ec_write(base, ITE_EC_BEEP_FREQ_DIV_OF_TMPIN, freq);
+	}
+	if (conf->fan_beep) {
+		reg |= ITE_EC_BEEP_ON_FAN_LIMIT;
+		ite_ec_write(base, ITE_EC_BEEP_FREQ_DIV_OF_FAN, freq);
+	}
+	if (conf->vin_beep) {
+		reg |= ITE_EC_BEEP_ON_VIN_LIMIT;
+		ite_ec_write(base, ITE_EC_BEEP_FREQ_DIV_OF_VIN, freq);
+	}
+
+	if (reg) {
+		reg |= ite_ec_read(base, ITE_EC_BEEP_ENABLE);
+		ite_ec_write(base, ITE_EC_BEEP_ENABLE, reg);
+	}
+}
+
 void ite_ec_init(const u16 base, const struct ite_ec_config *const conf)
 {
 	size_t i;
@@ -254,6 +280,9 @@
 	for (i = 0; i < ITE_EC_FAN_CNT; ++i)
 		enable_fan(base, i + 1, &conf->fan[i]);
 
+	/* Enable beeps if configured */
+	enable_beeps(base, conf);
+
 	/*
 	 * System may get wrong temperature data when SIO is in
 	 * busy state. Therefore, check the status and terminate
diff --git a/src/superio/ite/common/env_ctrl.h b/src/superio/ite/common/env_ctrl.h
index 8ce682e..020f383 100644
--- a/src/superio/ite/common/env_ctrl.h
+++ b/src/superio/ite/common/env_ctrl.h
@@ -114,8 +114,10 @@
 #define   ITE_EC_BEEP_ON_VIN_LIMIT		(1 << 1)
 #define   ITE_EC_BEEP_ON_FAN_LIMIT		(1 << 0)
 #define ITE_EC_BEEP_FREQ_DIV_OF_FAN		0x5D
-#define ITE_EC_BEEP_FREQ_DIV_OF_VOLT		0x5E
-#define ITE_EC_BEEP_FREQ_DIV_OF_TEMP		0x5F
+#define ITE_EC_BEEP_FREQ_DIV_OF_VIN		0x5E
+#define ITE_EC_BEEP_FREQ_DIV_OF_TMPIN		0x5F
+#define   ITE_EC_BEEP_TONE_DIVISOR(x)		(((x) & 0x0f) << 4)
+#define   ITE_EC_BEEP_FREQ_DIVISOR(x)		(((x) & 0x0f) << 0)
 
 #define ITE_EC_FAN_CTL_TEMP_LIMIT_OFF(x)	(0x60 + ((x)-1) * 8)
 #define ITE_EC_FAN_CTL_TEMP_LIMIT_START(x)	(0x61 + ((x)-1) * 8)
diff --git a/src/superio/ite/common/env_ctrl_chip.h b/src/superio/ite/common/env_ctrl_chip.h
index a3c6ae4..f8f2e1e 100644
--- a/src/superio/ite/common/env_ctrl_chip.h
+++ b/src/superio/ite/common/env_ctrl_chip.h
@@ -92,7 +92,9 @@
 	 */
 	struct ite_ec_fan_config fan[ITE_EC_FAN_CNT];
 
-	/* FIXME: enable beep when exceeding TMPIN, VIN, FAN limits */
+	bool tmpin_beep;
+	bool fan_beep;
+	bool vin_beep;
 };
 
 /* Some shorthands for device trees */

-- 
To view, visit https://review.coreboot.org/22141
To unsubscribe, visit https://review.coreboot.org/settings

Gerrit-Project: coreboot
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I57ce622ee4498b75f00e678c2e6d72e499925bce
Gerrit-Change-Number: 22141
Gerrit-PatchSet: 1
Gerrit-Owner: Vagiz Tarkhanov <rakkin at autistici.org>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.coreboot.org/pipermail/coreboot-gerrit/attachments/20171023/8f11e302/attachment.html>


More information about the coreboot-gerrit mailing list