summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVic Yang <victoryang@chromium.org>2012-07-18 14:10:33 +0800
committerGerrit <chrome-bot@google.com>2012-07-18 22:36:40 -0700
commit35c349cca3a53d30cdc98839ece6decd0a001f8a (patch)
treecb48b646d816eec8f75853dcbd6749713338aad7
parent5251382d0b7d42ccd98b14e06c1337b53b961663 (diff)
downloadchrome-ec-35c349cca3a53d30cdc98839ece6decd0a001f8a.tar.gz
Add new TMP006 sensors
Signed-off-by: Vic Yang <victoryang@chromium.org> BUG=chrome-os-partner:11491 TEST=Build success. System still works fine except with error when reading currently non-existing sensors. Change-Id: I2fa1298ab11296f8b492534b5a8893588df34c82 Reviewed-on: https://gerrit.chromium.org/gerrit/27766 Reviewed-by: Randall Spangler <rspangler@chromium.org> Tested-by: Vic Yang <victoryang@chromium.org> Commit-Ready: Vic Yang <victoryang@chromium.org>
-rw-r--r--board/link/board.h20
-rw-r--r--board/link/board_temp_sensor.c30
2 files changed, 47 insertions, 3 deletions
diff --git a/board/link/board.h b/board/link/board.h
index 41809b5357..05ab9adebf 100644
--- a/board/link/board.h
+++ b/board/link/board.h
@@ -216,14 +216,28 @@ enum temp_sensor_id {
TEMP_SENSOR_EC_INTERNAL,
/* CPU die temperature via PECI */
TEMP_SENSOR_CPU_PECI,
-
- /* TODO: I2C remote temperature sensors. */
+ /* Die temperature of U15 TMP006 temperature sensor */
+ TEMP_SENSOR_I2C_U15_DIE,
+ /* Object temperature of U15 TMP006 temperature sensor */
+ TEMP_SENSOR_I2C_U15_OBJECT,
+ /* Die temperature of U20 TMP006 temperature sensor */
+ TEMP_SENSOR_I2C_U20_DIE,
+ /* Object temperature of U20 TMP006 temperature sensor */
+ TEMP_SENSOR_I2C_U20_OBJECT,
+ /* Die temperature of U27 TMP006 temperature sensor */
+ TEMP_SENSOR_I2C_U27_DIE,
+ /* Object temperature of U27 TMP006 temperature sensor */
+ TEMP_SENSOR_I2C_U27_OBJECT,
+ /* Die temperature of U29 TMP006 temperature sensor */
+ TEMP_SENSOR_I2C_U29_DIE,
+ /* Object temperature of U29 TMP006 temperature sensor */
+ TEMP_SENSOR_I2C_U29_OBJECT,
TEMP_SENSOR_COUNT
};
/* The number of TMP006 sensor chips on the board. */
-#define TMP006_COUNT 4
+#define TMP006_COUNT 8
/* Target value for BOOTCFG. This is set to PE2/USB1_CTL1, which has an external
* pullup. If this signal is pulled to ground when the EC boots, the EC will get
diff --git a/board/link/board_temp_sensor.c b/board/link/board_temp_sensor.c
index 10ced1984f..2bd4d1d87c 100644
--- a/board/link/board_temp_sensor.c
+++ b/board/link/board_temp_sensor.c
@@ -17,11 +17,19 @@
#define TEMP_PCH_REG_ADDR ((0x41 << 1) | I2C_FLAG_BIG_ENDIAN)
#define TEMP_DDR_REG_ADDR ((0x45 << 1) | I2C_FLAG_BIG_ENDIAN)
#define TEMP_CHARGER_REG_ADDR ((0x43 << 1) | I2C_FLAG_BIG_ENDIAN)
+#define TEMP_U15_REG_ADDR ((0x47 << 1) | I2C_FLAG_BIG_ENDIAN)
+#define TEMP_U20_REG_ADDR ((0x46 << 1) | I2C_FLAG_BIG_ENDIAN)
+#define TEMP_U27_REG_ADDR ((0x44 << 1) | I2C_FLAG_BIG_ENDIAN)
+#define TEMP_U29_REG_ADDR ((0x42 << 1) | I2C_FLAG_BIG_ENDIAN)
#define TEMP_CPU_ADDR TMP006_ADDR(I2C_PORT_THERMAL, TEMP_CPU_REG_ADDR)
#define TEMP_PCH_ADDR TMP006_ADDR(I2C_PORT_THERMAL, TEMP_PCH_REG_ADDR)
#define TEMP_DDR_ADDR TMP006_ADDR(I2C_PORT_THERMAL, TEMP_DDR_REG_ADDR)
#define TEMP_CHARGER_ADDR TMP006_ADDR(I2C_PORT_THERMAL, TEMP_CHARGER_REG_ADDR)
+#define TEMP_U15_ADDR TMP006_ADDR(I2C_PORT_THERMAL, TEMP_U15_REG_ADDR)
+#define TEMP_U20_ADDR TMP006_ADDR(I2C_PORT_THERMAL, TEMP_U20_REG_ADDR)
+#define TEMP_U27_ADDR TMP006_ADDR(I2C_PORT_THERMAL, TEMP_U27_REG_ADDR)
+#define TEMP_U29_ADDR TMP006_ADDR(I2C_PORT_THERMAL, TEMP_U29_REG_ADDR)
/* Temperature sensors data. Must be in the same order as enum
* temp_sensor_id.
@@ -53,6 +61,24 @@ const struct temp_sensor_t temp_sensors[TEMP_SENSOR_COUNT] = {
{"PECI", TEMP_SENSOR_POWER_CPU, TEMP_SENSOR_TYPE_CPU,
peci_temp_sensor_get_val, 0, 2},
#endif
+#ifdef CONFIG_TMP006
+ {"I2C_U15-Die", TEMP_SENSOR_POWER_VS, TEMP_SENSOR_TYPE_IGNORED,
+ tmp006_get_val, 8, 7},
+ {"I2C_U15-Object", TEMP_SENSOR_POWER_VS, TEMP_SENSOR_TYPE_IGNORED,
+ tmp006_get_val, 9, 7},
+ {"I2C_U20-Die", TEMP_SENSOR_POWER_VS, TEMP_SENSOR_TYPE_IGNORED,
+ tmp006_get_val, 10, 7},
+ {"I2C_U20-Object", TEMP_SENSOR_POWER_VS, TEMP_SENSOR_TYPE_IGNORED,
+ tmp006_get_val, 11, 7},
+ {"I2C_U27-Die", TEMP_SENSOR_POWER_VS, TEMP_SENSOR_TYPE_IGNORED,
+ tmp006_get_val, 12, 7},
+ {"I2C_U27-Object", TEMP_SENSOR_POWER_VS, TEMP_SENSOR_TYPE_IGNORED,
+ tmp006_get_val, 13, 7},
+ {"I2C_U29-Die", TEMP_SENSOR_POWER_VS, TEMP_SENSOR_TYPE_IGNORED,
+ tmp006_get_val, 14, 7},
+ {"I2C_U29-Object", TEMP_SENSOR_POWER_VS, TEMP_SENSOR_TYPE_IGNORED,
+ tmp006_get_val, 15, 7},
+#endif
};
const struct tmp006_t tmp006_sensors[TMP006_COUNT] = {
@@ -61,4 +87,8 @@ const struct tmp006_t tmp006_sensors[TMP006_COUNT] = {
{"PCH", TEMP_PCH_ADDR, 14169},
{"DDR", TEMP_DDR_ADDR, 6400},
{"Charger", TEMP_CHARGER_ADDR, 10521},
+ {"U15", TEMP_U15_ADDR, 6400},
+ {"U20", TEMP_U20_ADDR, 6400},
+ {"U27", TEMP_U27_ADDR, 6400},
+ {"U29", TEMP_U29_ADDR, 6400},
};