diff options
author | Rob Barnes <robbarnes@google.com> | 2021-01-05 17:10:31 -0700 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-01-19 05:51:26 +0000 |
commit | 06da8cbc7593528981c14ae23dd4b2748bd66b89 (patch) | |
tree | f0aaf608d86582a3bd3358965db12434070c1170 /baseboard/guybrush/baseboard.c | |
parent | 510297b805e9d76c99b72ac6e25053b153cab38d (diff) | |
download | chrome-ec-06da8cbc7593528981c14ae23dd4b2748bd66b89.tar.gz |
guybrush: hookup temp_sensors read function
get_temp_3v3_30k9_47k_4050b matches the voltage and resistance used in
guybrush. Memory and charger thermistors are powered when EC is
powered. SOC thermistor is not powered in G3 so an extra function is
needed to guard against this case.
BUG=None
BRANCH=None
TEST=Build
Signed-off-by: Rob Barnes <robbarnes@google.com>
Change-Id: I471d840c0442a022260c7e04704b46b8dc143767
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2611519
Reviewed-by: Diana Z <dzigterman@chromium.org>
Diffstat (limited to 'baseboard/guybrush/baseboard.c')
-rw-r--r-- | baseboard/guybrush/baseboard.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/baseboard/guybrush/baseboard.c b/baseboard/guybrush/baseboard.c index 42804dbe68..b166167761 100644 --- a/baseboard/guybrush/baseboard.c +++ b/baseboard/guybrush/baseboard.c @@ -17,6 +17,7 @@ #include "driver/ppc/aoz1380.h" #include "driver/ppc/nx20p348x.h" #include "driver/tcpm/nct38xx.h" +#include "driver/temp_sensor/sb_tsi.h" #include "gpio.h" #include "hooks.h" #include "i2c.h" @@ -27,6 +28,7 @@ #include "power.h" #include "temp_sensor.h" #include "thermal.h" +#include "thermistor.h" #include "usb_mux.h" #include "usb_pd_tcpm.h" #include "usbc_ppc.h" @@ -160,30 +162,31 @@ const struct adc_t adc_channels[] = { BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT); /* Temp Sensors */ +static int board_get_soc_temp(int, int *); const struct temp_sensor_t temp_sensors[] = { [TEMP_SENSOR_SOC] = { .name = "SOC", .type = TEMP_SENSOR_TYPE_BOARD, - .read = baseboard_get_temp, + .read = board_get_soc_temp, .idx = TEMP_SENSOR_SOC, }, [TEMP_SENSOR_CHARGER] = { .name = "Charger", .type = TEMP_SENSOR_TYPE_BOARD, - .read = baseboard_get_temp, + .read = get_temp_3v3_30k9_47k_4050b, .idx = TEMP_SENSOR_CHARGER, }, [TEMP_SENSOR_MEMORY] = { .name = "Memory", .type = TEMP_SENSOR_TYPE_BOARD, - .read = baseboard_get_temp, + .read = get_temp_3v3_30k9_47k_4050b, .idx = TEMP_SENSOR_MEMORY, }, [TEMP_SENSOR_CPU] = { .name = "CPU", .type = TEMP_SENSOR_TYPE_CPU, - .read = baseboard_get_temp, - .idx = TEMP_SENSOR_CPU, + .read = sb_tsi_get_val, + .idx = 0, }, }; BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT); @@ -236,6 +239,7 @@ struct ec_thermal_config thermal_params[TEMP_SENSOR_COUNT] = { }; BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT); + /* * Battery info for all Guybrush battery types. Note that the fields * start_charging_min/max and charging_min/max are not used for the charger. @@ -603,10 +607,11 @@ void bc12_interrupt(enum gpio_signal signal) } } -int baseboard_get_temp(int idx, int *temp_ptr) +static int board_get_soc_temp(int idx, int *temp_k) { - /* TODO */ - return 0; + if (chipset_in_state(CHIPSET_STATE_HARD_OFF)) + return EC_ERROR_NOT_POWERED; + return get_temp_3v3_30k9_47k_4050b(idx, temp_k); } /** |