diff --git a/chip/lm4/pwm.c b/chip/lm4/pwm.c index f15b24ae02..07eb7371ec 100644 --- a/chip/lm4/pwm.c +++ b/chip/lm4/pwm.c @@ -63,6 +63,12 @@ int pwm_get_fan_rpm(void) } +int pwm_get_fan_target_rpm(void) +{ + return (LM4_FAN_FANCMD(FAN_CH_CPU) & MAX_RPM) * CPU_FAN_SCALE; +} + + int pwm_set_fan_target_rpm(int rpm) { /* Apply fan scaling */ diff --git a/common/pwm_commands.c b/common/pwm_commands.c index 7f30af8461..e186436d79 100644 --- a/common/pwm_commands.c +++ b/common/pwm_commands.c @@ -18,7 +18,7 @@ enum lpc_status pwm_command_get_fan_rpm(uint8_t *data) struct lpc_response_pwm_get_fan_rpm *r = (struct lpc_response_pwm_get_fan_rpm *)data; - r->rpm = pwm_get_fan_rpm(); + r->rpm = pwm_get_fan_target_rpm(); return EC_LPC_STATUS_SUCCESS; } diff --git a/include/pwm.h b/include/pwm.h index cbf11c5e95..022a21399b 100644 --- a/include/pwm.h +++ b/include/pwm.h @@ -20,6 +20,9 @@ int pwm_enable_fan(int enable); /* Gets the current fan RPM. */ int pwm_get_fan_rpm(void); +/* Get the target fan RPM. */ +int pwm_get_fan_target_rpm(void); + /* Sets the target fan RPM. Pass -1 to set fan to maximum. */ int pwm_set_fan_target_rpm(int rpm);