[coreboot-gerrit] Patch set updated for coreboot: da50c40 ec/kontron/it8516e: Add option for external temperature sensor

Ronald G. Minnich (rminnich@gmail.com) gerrit at coreboot.org
Wed Jul 17 17:50:33 CEST 2013


Ronald G. Minnich (rminnich at gmail.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/3772

-gerrit

commit da50c401e65745ce3c0342c7979ce00e74623d25
Author: Nico Huber <nico.huber at secunet.com>
Date:   Fri Jul 12 14:35:00 2013 +0200

    ec/kontron/it8516e: Add option for external temperature sensor
    
    The IT8516E firmware of Kontron supports some selected external sensors
    attached to the EC via SMBUS or GPIO16.
    
    Change-Id: I4c451c360a393e916430e3bea04a95847455cef7
    Signed-off-by: Nico Huber <nico.huber at secunet.com>
---
 src/ec/kontron/it8516e/chip.h | 10 +++++++---
 src/ec/kontron/it8516e/ec.c   | 15 +++++++++++++++
 src/ec/kontron/it8516e/ec.h   | 11 +++++++++++
 3 files changed, 33 insertions(+), 3 deletions(-)

diff --git a/src/ec/kontron/it8516e/chip.h b/src/ec/kontron/it8516e/chip.h
index dddc5e0..5638efd 100644
--- a/src/ec/kontron/it8516e/chip.h
+++ b/src/ec/kontron/it8516e/chip.h
@@ -26,10 +26,14 @@
 
 struct ec_kontron_it8516e_config {
 	/*
-	 * Per fan settings
-	 * Can be overwritten by fan1_mode, fan2_mode, fan1_target
-	 * and fan2_target options
+	 * Fan settings (fan1: CPU; fan2: System)
+	 * Can be overwritten by
+	 *   systemp_type,
+	 *   fan1_mode, fan2_mode,
+	 *   fan1_target, and fan2_target
+	 * nvram options.
 	 */
+	enum it8516e_systemp_types default_systemp;
 	enum it8516e_fan_modes default_fan_mode[2];
 	u16 default_fan_target[2]; /* PWM: % / Speed: RPM / Thermal: °C */
 };
diff --git a/src/ec/kontron/it8516e/ec.c b/src/ec/kontron/it8516e/ec.c
index fa7bbc8..7cf41d9 100644
--- a/src/ec/kontron/it8516e/ec.c
+++ b/src/ec/kontron/it8516e/ec.c
@@ -30,6 +30,8 @@
 typedef struct ec_kontron_it8516e_config config_t;
 
 enum { /* EC commands */
+	IT8516E_CMD_SET_SYSTEMP_TYPE	= 0x06,
+	IT8516E_CMD_GET_SYSTEMP_TYPE	= 0x07,
 	IT8516E_CMD_GET_FAN_MODE	= 0x10,
 	IT8516E_CMD_SET_FAN_MODE	= 0x11,
 	IT8516E_CMD_GET_FAN_PWM		= 0x12,
@@ -40,6 +42,13 @@ enum { /* EC commands */
 	IT8516E_CMD_SET_FAN_TEMP	= 0x17,
 };
 
+static void it8516e_set_systemp_type(const u8 type)
+{
+	if (send_ec_command(IT8516E_CMD_SET_SYSTEMP_TYPE))
+		return;
+	send_ec_data(type);
+}
+
 static void it8516e_set_fan_mode(const u8 idx, const u8 mode)
 {
 	if (send_ec_command(IT8516E_CMD_SET_FAN_MODE))
@@ -138,6 +147,12 @@ static void it8516e_pm2_init(const device_t dev)
 	ec_set_ports(find_resource(dev, PNP_IDX_IO1)->base,
 		     find_resource(dev, PNP_IDX_IO0)->base);
 
+	u8 systemp_type = config->default_systemp;
+	get_option(&systemp_type, "systemp_type");
+	if (systemp_type >= IT8516E_SYSTEMP_LASTPLUSONE)
+		systemp_type = IT8516E_SYSTEMP_NONE;
+	it8516e_set_systemp_type(systemp_type);
+
 	it8516e_set_fan_from_options(config, 0);
 	it8516e_set_fan_from_options(config, 1);
 }
diff --git a/src/ec/kontron/it8516e/ec.h b/src/ec/kontron/it8516e/ec.h
index 5bd2801..b1930e1 100644
--- a/src/ec/kontron/it8516e/ec.h
+++ b/src/ec/kontron/it8516e/ec.h
@@ -40,4 +40,15 @@ enum it8516e_fan_modes { /* Possible modes of fan control */
 	IT8516E_MODE_THERMAL	= 0x03,
 };
 
+enum it8516e_systemp_types { /* Possible sources of system temperature */
+	IT8516E_SYSTEMP_NONE	= 0x00,
+	IT8516E_SYSTEMP_AMD	= 0x01,
+	IT8516E_SYSTEMP_LM75_90	= 0x02,
+	IT8516E_SYSTEMP_GPIO16	= 0x03,
+	IT8516E_SYSTEMP_LM75_9e	= 0x04,
+
+	/* add any new types above this line. */
+	IT8516E_SYSTEMP_LASTPLUSONE,
+};
+
 #endif



More information about the coreboot-gerrit mailing list