diff options
author | Scott Chao <scott_chao@wistron.corp-partner.google.com> | 2021-06-04 13:12:58 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-06-10 01:32:41 +0000 |
commit | 9ee8a0b237fc2988d380c5fd493950bfb49f7834 (patch) | |
tree | b834278d8c8417e92250c67e9d6b64cf4a50a4a5 | |
parent | c159c29657a2e1fa005bb60ccb3b5c5eb7294421 (diff) | |
download | chrome-ec-9ee8a0b237fc2988d380c5fd493950bfb49f7834.tar.gz |
primus: configurate thermal sensor
BUG=b:190459738
BRANCH=none
TEST=make buildall
Signed-off-by: Scott Chao <scott_chao@wistron.corp-partner.google.com>
Change-Id: Ic78bb80ee647e8cab5b97e344882c9671a886fdc
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2939174
Reviewed-by: caveh jalali <caveh@chromium.org>
Reviewed-by: Boris Mittelberg <bmbm@google.com>
-rw-r--r-- | board/primus/board.h | 10 | ||||
-rw-r--r-- | board/primus/gpio.inc | 4 | ||||
-rw-r--r-- | board/primus/sensors.c | 60 |
3 files changed, 62 insertions, 12 deletions
diff --git a/board/primus/board.h b/board/primus/board.h index ae8f38c2af..b13cdf5f26 100644 --- a/board/primus/board.h +++ b/board/primus/board.h @@ -172,13 +172,19 @@ enum adc_channel { ADC_TEMP_SENSOR_1_DDR_SOC, - ADC_TEMP_SENSOR_2_CHARGER, + ADC_TEMP_SENSOR_2_SSD, + ADC_TEMP_SENSOR_3_CHARGER, + ADC_TEMP_SENSOR_4_MEMORY, + ADC_TEMP_SENSOR_5_USBC, ADC_CH_COUNT }; enum temp_sensor_id { TEMP_SENSOR_1_DDR_SOC, - TEMP_SENSOR_2_CHARGER, + TEMP_SENSOR_2_SSD, + TEMP_SENSOR_3_CHARGER, + TEMP_SENSOR_4_MEMORY, + TEMP_SENSOR_5_USBC, TEMP_SENSOR_COUNT }; diff --git a/board/primus/gpio.inc b/board/primus/gpio.inc index 575f69794b..670ddc5938 100644 --- a/board/primus/gpio.inc +++ b/board/primus/gpio.inc @@ -100,8 +100,8 @@ ALTERNATE(PIN_MASK(C, 0x1c), 0, MODULE_PWM, 0) /* GPIOC4/PWM2, GPI /* ADC alternate functions */ ALTERNATE(PIN_MASK(3, 0x10), 0, MODULE_ADC, 0) /* GPIO34/PS2_DAT2/ADC6 */ -ALTERNATE(PIN_MASK(4, 0x34), 0, MODULE_ADC, 0) /* GPIO42/ADC3/RI_L, GPIO45/ADC0, GPIO44/ADC1 */ -ALTERNATE(PIN_MASK(E, 0x02), 0, MODULE_ADC, 0) /* GPIOE1/ADC7 */ +ALTERNATE(PIN_MASK(4, 0x3C), 0, MODULE_ADC, 0) /* GPIO45/ADC0, GPIO44/ADC1, GPIO43/ADC2, GPIO42/ADC3/RI_L */ +ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* GPIOF0/ADC9 */ /* KB alternate functions */ ALTERNATE(PIN_MASK(0, 0xf0), 0, MODULE_KB, GPIO_ODR_HIGH) /* KSO10&P80_CLK/GPIO07, KSO11&P80_DAT/GPIO06, KSO12/GPIO05, KSO13/GPIO04 */ diff --git a/board/primus/sensors.c b/board/primus/sensors.c index b18ce908d3..c96e32dee0 100644 --- a/board/primus/sensors.c +++ b/board/primus/sensors.c @@ -19,13 +19,34 @@ const struct adc_t adc_channels[] = { .factor_div = ADC_READ_MAX + 1, .shift = 0, }, - [ADC_TEMP_SENSOR_2_CHARGER] = { - .name = "TEMP_CHARGER", + [ADC_TEMP_SENSOR_2_SSD] = { + .name = "TEMP_SSD", .input_ch = NPCX_ADC_CH1, .factor_mul = ADC_MAX_VOLT, .factor_div = ADC_READ_MAX + 1, .shift = 0, }, + [ADC_TEMP_SENSOR_3_CHARGER] = { + .name = "TEMP_CHARGER", + .input_ch = NPCX_ADC_CH6, + .factor_mul = ADC_MAX_VOLT, + .factor_div = ADC_READ_MAX + 1, + .shift = 0, + }, + [ADC_TEMP_SENSOR_4_MEMORY] = { + .name = "TEMP_MEMORY", + .input_ch = NPCX_ADC_CH9, + .factor_mul = ADC_MAX_VOLT, + .factor_div = ADC_READ_MAX + 1, + .shift = 0, + }, + [ADC_TEMP_SENSOR_5_USBC] = { + .name = "TEMP_USBC", + .input_ch = NPCX_ADC_CH2, + .factor_mul = ADC_MAX_VOLT, + .factor_div = ADC_READ_MAX + 1, + .shift = 0, + }, }; BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT); @@ -37,17 +58,35 @@ const struct temp_sensor_t temp_sensors[] = { .read = get_temp_3v3_30k9_47k_4050b, .idx = ADC_TEMP_SENSOR_1_DDR_SOC }, - [TEMP_SENSOR_2_CHARGER] = { + [TEMP_SENSOR_2_SSD] = { .name = "Charger", .type = TEMP_SENSOR_TYPE_BOARD, .read = get_temp_3v3_30k9_47k_4050b, - .idx = ADC_TEMP_SENSOR_2_CHARGER + .idx = ADC_TEMP_SENSOR_2_SSD + }, + [TEMP_SENSOR_3_CHARGER] = { + .name = "Charger", + .type = TEMP_SENSOR_TYPE_BOARD, + .read = get_temp_3v3_30k9_47k_4050b, + .idx = ADC_TEMP_SENSOR_3_CHARGER + }, + [TEMP_SENSOR_4_MEMORY] = { + .name = "Charger", + .type = TEMP_SENSOR_TYPE_BOARD, + .read = get_temp_3v3_30k9_47k_4050b, + .idx = ADC_TEMP_SENSOR_4_MEMORY + }, + [TEMP_SENSOR_5_USBC] = { + .name = "Charger", + .type = TEMP_SENSOR_TYPE_BOARD, + .read = get_temp_3v3_30k9_47k_4050b, + .idx = ADC_TEMP_SENSOR_5_USBC }, }; BUILD_ASSERT(ARRAY_SIZE(temp_sensors) == TEMP_SENSOR_COUNT); /* - * TODO(b/180681346): update for Alder Lake/brya + * TODO(b/190459738): update for Alder Lake/primus * * Tiger Lake specifies 100 C as maximum TDP temperature. THRMTRIP# occurs at * 130 C. However, sensor is located next to DDR, so we need to use the lower @@ -66,7 +105,7 @@ static const struct ec_thermal_config thermal_cpu = { }; /* - * TODO(b/180681346): update for Alder Lake/brya + * TODO(b/190459738): update for Alder Lake/primus * * Inductor limits - used for both charger and PP3300 regulator * @@ -90,9 +129,14 @@ static const struct ec_thermal_config thermal_inductor = { .temp_fan_max = C_TO_K(55), }; -/* this should really be "const" */ +/* + * TODO(b/190459738): Thermal table need to be fine tuned. + */ struct ec_thermal_config thermal_params[] = { [TEMP_SENSOR_1_DDR_SOC] = thermal_cpu, - [TEMP_SENSOR_2_CHARGER] = thermal_inductor, + [TEMP_SENSOR_2_SSD] = thermal_inductor, + [TEMP_SENSOR_3_CHARGER] = thermal_inductor, + [TEMP_SENSOR_4_MEMORY] = thermal_inductor, + [TEMP_SENSOR_5_USBC] = thermal_inductor, }; BUILD_ASSERT(ARRAY_SIZE(thermal_params) == TEMP_SENSOR_COUNT); |