summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSumeet Pawnikar <sumeet.r.pawnikar@intel.com>2018-06-23 23:44:13 +0530
committerChromeOS Commit Bot <chromeos-commit-bot@chromium.org>2018-06-28 20:20:28 +0000
commit5801674fd513de1cddbc93804f87f816a205d463 (patch)
tree51e5a143130f409560533657497fc9aab88aa755
parent1a233a90991444106fe1d724932133de21815f7a (diff)
downloadchrome-ec-5801674fd513de1cddbc93804f87f816a205d463.tar.gz
nocturne: Add on-board temperature sensors
This patch adds on-board temeprature sensors. BUG=None BRANCH=master TEST=`temps` on EC console shows temperature of sensors. Change-Id: Ia61b695a6892b2aa042915a427b0d224d09e698e Signed-off-by: Sumeet Pawnikar <sumeet.r.pawnikar@intel.com> Reviewed-on: https://chromium-review.googlesource.com/1112896 Commit-Ready: Aseda Aboagye <aaboagye@chromium.org> Tested-by: Aseda Aboagye <aaboagye@chromium.org> Reviewed-by: Furquan Shaikh <furquan@chromium.org> (cherry picked from commit 750aa8819a330dc52b5df89a0e5e6e905c9f78fb) Reviewed-on: https://chromium-review.googlesource.com/1119126 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org> Commit-Queue: Aseda Aboagye <aaboagye@chromium.org>
-rw-r--r--board/nocturne/board.c17
-rw-r--r--board/nocturne/board.h13
2 files changed, 30 insertions, 0 deletions
diff --git a/board/nocturne/board.c b/board/nocturne/board.c
index 4d5ee9c2db..d140e58c6c 100644
--- a/board/nocturne/board.c
+++ b/board/nocturne/board.c
@@ -18,6 +18,7 @@
#include "driver/ppc/sn5s330.h"
#include "driver/sync.h"
#include "driver/tcpm/ps8xxx.h"
+#include "driver/temp_sensor/bd99992gw.h"
#include "ec_commands.h"
#include "extpower.h"
#include "gpio.h"
@@ -35,6 +36,7 @@
#include "switch.h"
#include "task.h"
#include "tcpci.h"
+#include "temp_sensor.h"
#include "usb_mux.h"
#include "usb_pd_tcpm.h"
#include "usbc_ppc.h"
@@ -435,6 +437,21 @@ void board_overcurrent_event(int port)
CPRINTS("C%d: overcurrent!", port);
}
+const struct temp_sensor_t temp_sensors[] = {
+ {"Battery", TEMP_SENSOR_TYPE_BATTERY, charge_get_battery_temp, 0, 4},
+
+ /* These BD99992GW temp sensors are only readable in S0 */
+ {"Ambient", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
+ BD99992GW_ADC_CHANNEL_SYSTHERM0, 4},
+ {"Charger", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
+ BD99992GW_ADC_CHANNEL_SYSTHERM1, 4},
+ {"DRAM", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
+ BD99992GW_ADC_CHANNEL_SYSTHERM2, 4},
+ {"eMMC", TEMP_SENSOR_TYPE_BOARD, bd99992gw_get_val,
+ BD99992GW_ADC_CHANNEL_SYSTHERM3, 4},
+};
+BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT);
+
/*
* Check if PMIC fault registers indicate VR fault. If yes, print out fault
* register info to console. Additionally, set panic reason so that the OS can
diff --git a/board/nocturne/board.h b/board/nocturne/board.h
index 0852b4fbb1..2da6136d31 100644
--- a/board/nocturne/board.h
+++ b/board/nocturne/board.h
@@ -101,6 +101,9 @@
#define CONFIG_ACCELGYRO_BMI160_INT_EVENT TASK_EVENT_CUSTOM(4)
#define CONFIG_SYNC
#define CONFIG_SYNC_INT_EVENT TASK_EVENT_CUSTOM(8)
+#define CONFIG_TEMP_SENSOR
+#define CONFIG_TEMP_SENSOR_BD99992GW
+#define CONFIG_THERMISTOR_NCP15WB
/* SoC */
#define CONFIG_BOARD_HAS_RTC_RESET
@@ -160,6 +163,7 @@
#define I2C_PORT_ACCEL I2C_PORT_ALS_GYRO
#define I2C_PORT_USB_C0 NPCX_I2C_PORT1_0
#define I2C_PORT_USB_C1 NPCX_I2C_PORT2_0
+#define I2C_PORT_THERMAL I2C_PORT_PMIC
#define GPIO_USB_C0_SCL GPIO_EC_I2C1_USB_C0_SCL
#define GPIO_USB_C0_SDA GPIO_EC_I2C1_USB_C0_SDA
@@ -215,6 +219,15 @@ enum power_signal {
POWER_SIGNAL_COUNT
};
+enum temp_sensor_id {
+ TEMP_SENSOR_BATTERY, /* BD99956GW TSENSE */
+ TEMP_SENSOR_AMBIENT, /* BD99992GW SYSTHERM0 */
+ TEMP_SENSOR_CHARGER, /* BD99992GW SYSTHERM1 */
+ TEMP_SENSOR_DRAM, /* BD99992GW SYSTHERM2 */
+ TEMP_SENSOR_EMMC, /* BD99992GW SYSTHERM3 */
+ TEMP_SENSOR_COUNT
+};
+
enum pwm_channel {
PWM_CH_DB0_LED_RED = 0,
PWM_CH_DB0_LED_GREEN,