From 8cd9856cf8ef193ea094cf91c67e9aff25b2b521 Mon Sep 17 00:00:00 2001 From: Bill Richardson Date: Tue, 21 Oct 2014 14:21:45 -0700 Subject: samus: change fan RPM values, enable fast-start Updating the fan speeds according to the manufacturer's specs. The fan vendor recommends that the minimum fan speed be a 20% duty cycle. Since the built-in fan controller has a tach-based feedback loop, I'm using the RPM value instead of the duty cycle (20% is 2286 RPM, according to the vendor). The vendor also wants a 30% duty cycle to start turning, but the built-in fan controller provides support for fast-start too. The controller's minimum fast-start duty cycle is 50%, but it also has a programmable number of revolutions that it will wait before backing off. Holding my ear down close to the fans while they start and stop, it seems that the minimum 2 revolution start period is sufficient and provides the least noise. Of course, since I've never had any problems starting the fans directly at 1000 RPM this noise is a little more noticeable than that. It's quite possible that the built-in controller is smart enough to make 1000 RPM work by bumping the duty cycle up until the fans turn even if the fans don't like it. BUG=chrome-os-partner:32892 BRANCH=ToT,samus TEST=manual Listen closely and run the EC console "faninfo" command to see the fans start and stop as the system boots and idles. Change-Id: I47c9e7cef3f9f4bd815a13032fe10234decd62ed Signed-off-by: Bill Richardson Reviewed-on: https://chromium-review.googlesource.com/224830 Reviewed-by: Randall Spangler --- include/fan.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'include/fan.h') diff --git a/include/fan.h b/include/fan.h index 0813535592..a8352987d8 100644 --- a/include/fan.h +++ b/include/fan.h @@ -21,8 +21,11 @@ struct fan_t { int enable_gpio; }; -/* Values for the flags field */ -#define FAN_USE_RPM_MODE (1 << 0) +/* Values for .flags field */ +/* Enable automatic RPM control using tach input */ +#define FAN_USE_RPM_MODE (1 << 0) +/* Require a higher duty cycle to start up than to keep running */ +#define FAN_USE_FAST_START (1 << 1) /* The list of fans is instantiated in board.c. */ extern const struct fan_t fans[]; @@ -82,9 +85,6 @@ enum fan_status { }; enum fan_status fan_get_status(int ch); -/* Flag to enable automatic RPM control using tach input */ -#define FAN_USE_RPM_MODE (1 << 0) - /* Initialize the HW according to the desired flags */ void fan_channel_setup(int ch, unsigned int flags); -- cgit v1.2.1