summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Chao <scott_chao@wistron.corp-partner.google.com>2021-06-04 13:12:58 +0800
committerCommit Bot <commit-bot@chromium.org>2021-06-10 01:32:41 +0000
commit9ee8a0b237fc2988d380c5fd493950bfb49f7834 (patch)
treeb834278d8c8417e92250c67e9d6b64cf4a50a4a5
parentc159c29657a2e1fa005bb60ccb3b5c5eb7294421 (diff)
downloadchrome-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.h10
-rw-r--r--board/primus/gpio.inc4
-rw-r--r--board/primus/sensors.c60
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);