diff options
author | Vic Yang <victoryang@chromium.org> | 2012-07-18 14:10:33 +0800 |
---|---|---|
committer | Gerrit <chrome-bot@google.com> | 2012-07-18 22:36:40 -0700 |
commit | 35c349cca3a53d30cdc98839ece6decd0a001f8a (patch) | |
tree | cb48b646d816eec8f75853dcbd6749713338aad7 | |
parent | 5251382d0b7d42ccd98b14e06c1337b53b961663 (diff) | |
download | chrome-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.h | 20 | ||||
-rw-r--r-- | board/link/board_temp_sensor.c | 30 |
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}, }; |