summaryrefslogtreecommitdiff
path: root/board/oak
diff options
context:
space:
mode:
authorYH Huang <yh.huang@mediatek.com>2015-06-22 16:55:53 +0800
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2015-06-25 13:14:45 +0000
commit331db691c418e607b9830ba96e6ca1b634c7cea4 (patch)
treea5e44ffb1dbe5acaa2f01259e8955300afdf9d14 /board/oak
parent8099b7b3849c43f6b0eba4dd3bd5564d254dc12e (diff)
downloadchrome-ec-331db691c418e607b9830ba96e6ca1b634c7cea4.tar.gz
oak: enable tmp432 thermal sensor
This change enables tmp432 thermal sensor. Enter "tmp432" or "temps" in ec console and get temperature information. BRANCH=none BUG=none TEST=manual Enter "tmp432" to get temperature information. Connect the battery and enter "temps" to get temperature information. Change-Id: Ie7a9fb4541c5cb3cfa6a26e95f99fe4aacb3a3d3 Signed-off-by: YH Huang <yh.huang@mediatek.com> Reviewed-on: https://chromium-review.googlesource.com/280956 Reviewed-by: Rong Chang <rongchang@chromium.org> Reviewed-by: Alec Berg <alecaberg@chromium.org>
Diffstat (limited to 'board/oak')
-rw-r--r--board/oak/board.c32
-rw-r--r--board/oak/board.h15
2 files changed, 47 insertions, 0 deletions
diff --git a/board/oak/board.c b/board/oak/board.c
index 192def312e..26de4075d5 100644
--- a/board/oak/board.c
+++ b/board/oak/board.c
@@ -13,6 +13,7 @@
#include "chipset.h"
#include "common.h"
#include "console.h"
+#include "driver/temp_sensor/tmp432.h"
#include "extpower.h"
#include "gpio.h"
#include "hooks.h"
@@ -28,6 +29,9 @@
#include "spi.h"
#include "switch.h"
#include "task.h"
+#include "temp_sensor.h"
+#include "temp_sensor_chip.h"
+#include "thermal.h"
#include "timer.h"
#include "usb_pd.h"
#include "usb_pd_tcpm.h"
@@ -132,6 +136,34 @@ struct pi3usb9281_config pi3usb9281_chips[] = {
BUILD_ASSERT(ARRAY_SIZE(pi3usb9281_chips) ==
CONFIG_USB_SWITCH_PI3USB9281_CHIP_COUNT);
+/*
+ * Temperature sensors data; must be in same order as enum temp_sensor_id.
+ * Sensor index and name must match those present in coreboot:
+ * src/mainboard/google/${board}/acpi/dptf.asl
+ */
+const struct temp_sensor_t temp_sensors[] = {
+ {"TMP432_Internal", TEMP_SENSOR_TYPE_BOARD, tmp432_get_val,
+ TMP432_IDX_LOCAL, 4},
+ {"TMP432_Sensor_1", TEMP_SENSOR_TYPE_BOARD, tmp432_get_val,
+ TMP432_IDX_REMOTE1, 4},
+ {"TMP432_Sensor_2", TEMP_SENSOR_TYPE_BOARD, tmp432_get_val,
+ TMP432_IDX_REMOTE2, 4},
+ {"Battery", TEMP_SENSOR_TYPE_BATTERY, charge_temp_sensor_get_val,
+ 0, 4},
+};
+BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
+
+/* Thermal limits for each temp sensor. All temps are in degrees K. Must be in
+ * same order as enum temp_sensor_id. To always ignore any temp, use 0.
+ */
+struct ec_thermal_config thermal_params[] = {
+ {{0, 0, 0}, 0, 0}, /* TMP432_Internal */
+ {{0, 0, 0}, 0, 0}, /* TMP432_Sensor_1 */
+ {{0, 0, 0}, 0, 0}, /* TMP432_Sensor_2 */
+ {{0, 0, 0}, 0, 0}, /* Battery Sensor */
+};
+BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT);
+
static int discharging_on_ac;
/**
diff --git a/board/oak/board.h b/board/oak/board.h
index 78c7999d1f..f653a344e9 100644
--- a/board/oak/board.h
+++ b/board/oak/board.h
@@ -73,6 +73,8 @@
#define CONFIG_BOARD_VERSION
#undef CONFIG_UART_CONSOLE
#define CONFIG_UART_CONSOLE 1
+#define CONFIG_TEMP_SENSOR
+#define CONFIG_TEMP_SENSOR_TMP432
/* UART DMA */
#undef CONFIG_UART_TX_DMA
@@ -116,6 +118,7 @@
#define I2C_PORT_BATTERY 0
#define I2C_PORT_CHARGER 0
#define I2C_PORT_PERICOM 0
+#define I2C_PORT_THERMAL 0
#define I2C_PORT_PD_MCU 1
#define I2C_PORT_USB_SWITCH 1
#define I2C_PORT_TCPC 1
@@ -146,6 +149,18 @@ enum adc_channel {
ADC_CH_COUNT
};
+enum temp_sensor_id {
+ /* TMP432 local and remote sensors */
+ TEMP_SENSOR_I2C_TMP432_LOCAL,
+ TEMP_SENSOR_I2C_TMP432_REMOTE1,
+ TEMP_SENSOR_I2C_TMP432_REMOTE2,
+
+ /* Battery temperature sensor */
+ TEMP_SENSOR_BATTERY,
+
+ TEMP_SENSOR_COUNT
+};
+
/* start as a sink in case we have no other power supply/battery */
#define PD_DEFAULT_STATE PD_STATE_SNK_DISCONNECTED