From 4a4150f727169249ee87577c3375eee787b1cdce Mon Sep 17 00:00:00 2001 From: Puthikorn Voravootivat Date: Fri, 5 Jun 2020 16:46:30 -0700 Subject: mushu: Bring up F75303 temp sensor BRANCH=None BUG=b:158676970 TEST=Force fan off/run heavy workload Use temps command in ec console, see temp > temps CHARGER : 318 K = 45 C 64% 5V : 316 K = 43 C 61% GPU : 343 K = 70 C 100% F75303_Local : 331 K = 58 C F75303_GPU : 340 K = 67 C F75303_GPU_Power : 332 K = 59 C Change-Id: I0af47849cc606eb03eee652bb261fce11896e2ab Signed-off-by: Puthikorn Voravootivat Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2240512 Reviewed-by: Bob Moragues Reviewed-by: Shelley Chen --- baseboard/hatch/baseboard.c | 3 ++- board/mushu/board.c | 51 +++++++++++++++++++++++++++++++++------------ board/mushu/board.h | 12 ++++++++++- driver/temp_sensor/f75303.h | 4 ++++ 4 files changed, 55 insertions(+), 15 deletions(-) diff --git a/baseboard/hatch/baseboard.c b/baseboard/hatch/baseboard.c index 3f24e3e690..813ff11b31 100644 --- a/baseboard/hatch/baseboard.c +++ b/baseboard/hatch/baseboard.c @@ -66,7 +66,8 @@ const struct i2c_port_t i2c_ports[] = { {"thermal", I2C_PORT_THERMAL, 100, GPIO_I2C4_SCL, GPIO_I2C4_SDA}, #endif #ifdef BOARD_MUSHU - {"gpu_temp", I2C_PORT_THERMAL, 100, GPIO_I2C4_SCL, GPIO_I2C4_SDA}, + {"f75303_temp", I2C_PORT_THERMAL, 100, GPIO_I2C0_SCL, GPIO_I2C0_SDA}, + {"gpu_temp", I2C_PORT_GPU, 100, GPIO_I2C4_SCL, GPIO_I2C4_SDA}, #endif {"power", I2C_PORT_POWER, 100, GPIO_I2C5_SCL, GPIO_I2C5_SDA}, {"eeprom", I2C_PORT_EEPROM, 100, GPIO_I2C7_SCL, GPIO_I2C7_SDA}, diff --git a/board/mushu/board.c b/board/mushu/board.c index d404e5f972..5c3aabe2ec 100644 --- a/board/mushu/board.c +++ b/board/mushu/board.c @@ -18,6 +18,8 @@ #include "driver/tcpm/anx7447.h" #include "driver/tcpm/ps8xxx.h" #include "driver/tcpm/tcpci.h" +#include "driver/temp_sensor/amd_r19me4070.h" +#include "driver/temp_sensor/f75303.h" #include "ec_commands.h" #include "extpower.h" #include "fan.h" @@ -42,7 +44,6 @@ #include "usb_pd.h" #include "usbc_ppc.h" #include "util.h" -#include "driver/temp_sensor/amd_r19me4070.h" #define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args) #define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args) @@ -409,18 +410,42 @@ const struct adc_t adc_channels[] = { BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT); const struct temp_sensor_t temp_sensors[] = { - [TEMP_CHARGER] = {.name = "CHARGER", - .type = TEMP_SENSOR_TYPE_BOARD, - .read = get_temp_3v3_30k9_47k_4050b, - .idx = ADC_TEMP_SENSOR_1}, - [TEMP_5V] = {.name = "5V", - .type = TEMP_SENSOR_TYPE_BOARD, - .read = get_temp_3v3_30k9_47k_4050b, - .idx = ADC_TEMP_SENSOR_2}, - [TEMP_GPU] = {.name = "GPU", - .type = TEMP_SENSOR_TYPE_BOARD, - .read = get_temp_R19ME4070, - .idx = R19ME4070_LOCAL}, + [TEMP_CHARGER] = { + .name = "CHARGER", + .type = TEMP_SENSOR_TYPE_BOARD, + .read = get_temp_3v3_30k9_47k_4050b, + .idx = ADC_TEMP_SENSOR_1 + }, + [TEMP_5V] = { + .name = "5V", + .type = TEMP_SENSOR_TYPE_BOARD, + .read = get_temp_3v3_30k9_47k_4050b, + .idx = ADC_TEMP_SENSOR_2 + }, + [TEMP_GPU] = { + .name = "GPU", + .type = TEMP_SENSOR_TYPE_BOARD, + .read = get_temp_R19ME4070, + .idx = R19ME4070_LOCAL + }, + [TEMP_F75303_LOCAL] = { + .name = "F75303_Local", + .type = TEMP_SENSOR_TYPE_BOARD, + .read = f75303_get_val, + .idx = F75303_IDX_LOCAL + }, + [TEMP_F75303_GPU] = { + .name = "F75303_GPU", + .type = TEMP_SENSOR_TYPE_BOARD, + .read = f75303_get_val, + .idx = F75303_IDX_REMOTE1 + }, + [TEMP_F75303_GPU_POWER] = { + .name = "F75303_GPU_Power", + .type = TEMP_SENSOR_TYPE_BOARD, + .read = f75303_get_val, + .idx = F75303_IDX_REMOTE2 + }, }; BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT); diff --git a/board/mushu/board.h b/board/mushu/board.h index d026ad598d..40c4046350 100644 --- a/board/mushu/board.h +++ b/board/mushu/board.h @@ -24,7 +24,6 @@ /* Keyboard features */ #define CONFIG_PWM_KBLIGHT -#define CONFIG_TEMP_SENSOR_AMD_R19ME4070 /* Sensors */ /* BMI160 Base accel/gyro */ @@ -47,6 +46,14 @@ #define CONFIG_ALS_TCS3400_INT_EVENT \ TASK_EVENT_MOTION_SENSOR_INTERRUPT(CLEAR_ALS) #define I2C_PORT_ALS I2C_PORT_SENSOR +#define CONFIG_TEMP_SENSOR +/* AMD SMBUS Temp sensors */ +#define CONFIG_TEMP_SENSOR_AMD_R19ME4070 +/* F75303 on I2C bus */ +#define CONFIG_TEMP_SENSOR_F75303 +/* Temp sensor is on port 4 on baseboard but on port 0 on Mushu */ +#undef I2C_PORT_THERMAL +#define I2C_PORT_THERMAL I2C_PORT_SENSOR /* GPU features */ #define I2C_PORT_GPU NPCX_I2C_PORT4_1 @@ -182,6 +189,9 @@ enum temp_sensor_id { TEMP_CHARGER, TEMP_5V, TEMP_GPU, + TEMP_F75303_LOCAL, + TEMP_F75303_GPU, + TEMP_F75303_GPU_POWER, TEMP_SENSOR_COUNT }; diff --git a/driver/temp_sensor/f75303.h b/driver/temp_sensor/f75303.h index a4bdcbf872..bdfd2624f0 100644 --- a/driver/temp_sensor/f75303.h +++ b/driver/temp_sensor/f75303.h @@ -8,7 +8,11 @@ #ifndef __CROS_EC_F75303_H #define __CROS_EC_F75303_H +#ifdef BOARD_MUSHU +#define F75303_I2C_ADDR_FLAGS 0x4D +#else #define F75303_I2C_ADDR_FLAGS 0x4C +#endif enum f75303_index { F75303_IDX_LOCAL = 0, -- cgit v1.2.1