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>
This commit is contained in:
Vic Yang
2012-07-18 14:10:33 +08:00
committed by Gerrit
parent 5251382d0b
commit 35c349cca3
2 changed files with 47 additions and 3 deletions

View File

@@ -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

View File

@@ -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},
};