diff options
author | Bill Richardson <wfrichar@chromium.org> | 2013-11-01 11:11:09 -0700 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2013-11-02 01:07:16 +0000 |
commit | 88503ab4ec8f68c19d36ec4b6d3516848d71404a (patch) | |
tree | 58c3f8a491d9c30f4ec1fbe982421ffcb3ec603c /chip | |
parent | 00682eb80fe159c1d037c721f2dd15c1be44bd12 (diff) | |
download | chrome-ec-88503ab4ec8f68c19d36ec4b6d3516848d71404a.tar.gz |
Provide multiple fan support within the EC itself
This adds explicit "int fan" args to the exported functions from
common/fan.c: fan_set_percent_needed() and fan_percent_to_rpm(). Within that
file, multiple fans are handled independently.
This is not complete, though. Host commands and sysjump support still only
handle a single fan, so at the moment multiple fans are treated identically
in those cases.
BUG=chrome-os-partner:23530
BRANCH=none
TEST=manual
All boards build, "make runtests" passes.
On a multi-fan system, the EC command "faninfo" displays multiple results:
> faninfo
Fan 0 Actual: 0 rpm
Fan 0 Target: 0 rpm
Fan 0 Duty: 0%
Fan 0 Status: 0 (not spinning)
Fan 0 Mode: rpm
Fan 0 Auto: yes
Fan 0 Enable: yes
Fan 1 Actual: 0 rpm
Fan 1 Target: 0 rpm
Fan 1 Duty: 0%
Fan 1 Status: 0 (not spinning)
Fan 1 Mode: rpm
Fan 1 Auto: no
Fan 1 Enable: no
>
and the "fanduty", "fanset", and "fanauto" all require the fan number as the
first arg:
> fanduty 0 30
Setting fan 0 duty cycle to 30%
> fanset 1 2000
Setting fan 1 rpm target to 2000
> fanauto 0
> fanauto 1
On single-fan systems, there is no visible change.
Change-Id: Idb8b818122e157960d56779b2a86e5ba433bee1b
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/175368
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Diffstat (limited to 'chip')
-rw-r--r-- | chip/lm4/fan.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/chip/lm4/fan.c b/chip/lm4/fan.c index a342a49954..955113ae57 100644 --- a/chip/lm4/fan.c +++ b/chip/lm4/fan.c @@ -127,7 +127,7 @@ int fan_is_stalled(int ch) return 0; /* Check for stall condition */ - return (((LM4_FAN_FANSTS >> (2 * ch)) & 0x03) == 0) ? 1 : 0; + return fan_get_status(ch) == FAN_STATUS_STOPPED; } void fan_channel_setup(int ch, unsigned int flags) |