diff options
author | Bill Richardson <wfrichar@chromium.org> | 2014-11-05 12:43:57 -0800 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2014-11-06 02:28:22 +0000 |
commit | 41cde665166da1aced2ece17f7b503c78cdb5c8f (patch) | |
tree | 6e95a130dadbd38846ad8cf32124ccdbb49ff353 /board | |
parent | f0809a23997d66265e625d23ebef8dba1465732f (diff) | |
download | chrome-ec-41cde665166da1aced2ece17f7b503c78cdb5c8f.tar.gz |
Samus: Handle fan startup in the EC, not the fan controller
The fans on samus have a recommended minimum duty cycle of 20%
while running, but 30% in order to start. We've been using the
EC's built-in fan controller for the start requirement, but it
has a minimum fast-start duty cycle of 50%. It turns out that
that speed is noticeably noisy.
This change handles the startup with logic in the EC instead, so
that the fan only tries to spin at 30% initially (or if it drops
too much below the minimum turning speed).
BUG=chrome-os-partner:33429
BRANCH=ToT,samus
TEST=make buildall -j
Boot the system, let it idle with the browser windows closed, the
browse a bit, then idle. Listen for changes to the fans.
Before, I could hear the fans kick in and out as the AP load
changed. Now it's much quieter.
Change-Id: Id35215520c064eb6843686ec8bb5f3618dac6cf6
Signed-off-by: Bill Richardson <wfrichar@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/227658
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Diffstat (limited to 'board')
-rw-r--r-- | board/auron/board.c | 1 | ||||
-rw-r--r-- | board/falco/board.c | 1 | ||||
-rw-r--r-- | board/host/fan.c | 3 | ||||
-rw-r--r-- | board/link/board.c | 1 | ||||
-rw-r--r-- | board/mec1322_evb/board.c | 1 | ||||
-rw-r--r-- | board/peppy/board.c | 1 | ||||
-rw-r--r-- | board/samus/board.c | 6 |
7 files changed, 11 insertions, 3 deletions
diff --git a/board/auron/board.c b/board/auron/board.c index 9c91c8845d..1a56ac5492 100644 --- a/board/auron/board.c +++ b/board/auron/board.c @@ -69,6 +69,7 @@ BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT); const struct fan_t fans[] = { {.flags = FAN_USE_RPM_MODE, .rpm_min = 1000, + .rpm_start = 1000, .rpm_max = 5050, .ch = 2, .pgood_gpio = GPIO_PP5000_PGOOD, diff --git a/board/falco/board.c b/board/falco/board.c index 4d04312816..b1bd747ff2 100644 --- a/board/falco/board.c +++ b/board/falco/board.c @@ -74,6 +74,7 @@ BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT); const struct fan_t fans[] = { {.flags = FAN_USE_RPM_MODE, .rpm_min = 1000, + .rpm_start = 1000, .rpm_max = 5050, .ch = 2, .pgood_gpio = GPIO_PP5000_PGOOD, diff --git a/board/host/fan.c b/board/host/fan.c index 18127b9eb0..ee7b15ef12 100644 --- a/board/host/fan.c +++ b/board/host/fan.c @@ -11,6 +11,7 @@ const struct fan_t fans[] = { {.flags = FAN_USE_RPM_MODE, .rpm_min = 1000, + .rpm_start = 1500, .rpm_max = 5000, .ch = 0, .pgood_gpio = -1, @@ -49,7 +50,7 @@ int fan_get_rpm_mode(int ch) return mock_rpm_mode; } -static int mock_rpm; +int mock_rpm; void fan_set_rpm_target(int ch, int rpm) { mock_rpm = rpm; diff --git a/board/link/board.c b/board/link/board.c index 8e2881a664..3895885877 100644 --- a/board/link/board.c +++ b/board/link/board.c @@ -77,6 +77,7 @@ BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT); const struct fan_t fans[] = { {.flags = FAN_USE_RPM_MODE, .rpm_min = 1500, + .rpm_start = 1500, .rpm_max = 9300, .ch = 0, .pgood_gpio = GPIO_PGOOD_5VALW, diff --git a/board/mec1322_evb/board.c b/board/mec1322_evb/board.c index 7deae735b8..774abe0239 100644 --- a/board/mec1322_evb/board.c +++ b/board/mec1322_evb/board.c @@ -30,6 +30,7 @@ BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT); const struct fan_t fans[] = { {.flags = FAN_USE_RPM_MODE, .rpm_min = 1500, + .rpm_start = 1500, .rpm_max = 8000, .ch = 0, .pgood_gpio = -1, diff --git a/board/peppy/board.c b/board/peppy/board.c index 3a3a92d29f..2ab34f5029 100644 --- a/board/peppy/board.c +++ b/board/peppy/board.c @@ -69,6 +69,7 @@ BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT); const struct fan_t fans[] = { {.flags = FAN_USE_RPM_MODE, .rpm_min = 1000, + .rpm_start = 1000, .rpm_max = 5050, .ch = 2, .pgood_gpio = GPIO_PP5000_PGOOD, diff --git a/board/samus/board.c b/board/samus/board.c index e6682d4717..68c5146438 100644 --- a/board/samus/board.c +++ b/board/samus/board.c @@ -106,15 +106,17 @@ BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT); /* Physical fans. These are logically separate from pwm_channels. */ const struct fan_t fans[] = { - {.flags = FAN_USE_RPM_MODE | FAN_USE_FAST_START, + {.flags = FAN_USE_RPM_MODE, .rpm_min = 2286, + .rpm_start = 3090, .rpm_max = 6350, .ch = 2, .pgood_gpio = -1, .enable_gpio = -1, }, - {.flags = FAN_USE_RPM_MODE | FAN_USE_FAST_START, + {.flags = FAN_USE_RPM_MODE, .rpm_min = 2286, + .rpm_start = 3090, .rpm_max = 6350, .ch = 3, .pgood_gpio = -1, |