diff options
author | Vic Yang <victoryang@chromium.org> | 2013-08-05 11:17:35 +0800 |
---|---|---|
committer | chrome-internal-fetch <chrome-internal-fetch@google.com> | 2013-08-27 23:20:33 +0000 |
commit | 5d014fd2dd5e92ad35a4f2dd1b58e0b1baebb65e (patch) | |
tree | 2078f9831177392f22ba202cbea4b09d69a9a710 /board/peppy | |
parent | 99f06c39aabd262653c96c589c5cd26fc1fb8389 (diff) | |
download | chrome-ec-5d014fd2dd5e92ad35a4f2dd1b58e0b1baebb65e.tar.gz |
Refactor PWM module
This unifies the PWM module interface for LM4 and STM32. Now PWM
channels are defined in board.h/board.c. Instead of calling functions
named pwm_set_fan_duty(x), one can now use pwm_set_duty(PWM_CH_FAN, x),
which prevents additional functions added when we have a new PWM
channel.
BUG=chrome-os-partner:18343
TEST=Limit input current on Spring.
TEST=Check power LED in S0/S3/S5 on Snow.
TEST=Check keyboard backlight functionality on Link.
TEST=Check fan speed control/detecting on Link.
BRANCH=None
Change-Id: Ibac4d79f72e65c94776d503558a7592f7db859dc
Signed-off-by: Vic Yang <victoryang@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/64450
Reviewed-by: Randall Spangler <rspangler@chromium.org>
Diffstat (limited to 'board/peppy')
-rw-r--r-- | board/peppy/board.c | 8 | ||||
-rw-r--r-- | board/peppy/board.h | 18 |
2 files changed, 21 insertions, 5 deletions
diff --git a/board/peppy/board.c b/board/peppy/board.c index 9b30ac8865..0a782230bf 100644 --- a/board/peppy/board.c +++ b/board/peppy/board.c @@ -20,6 +20,8 @@ #include "lm4_adc.h" #include "peci.h" #include "power_button.h" +#include "pwm.h" +#include "pwm_data.h" #include "registers.h" #include "switch.h" #include "temp_sensor.h" @@ -172,6 +174,12 @@ const struct adc_t adc_channels[] = { }; BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT); +/* PWM channels */ +const struct pwm_t pwm_channels[] = { + [PWM_CH_FAN] = {FAN_CH_CPU, PWM_CONFIG_HAS_RPM_MODE}, +}; +BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT); + /* I2C ports */ const struct i2c_port_t i2c_ports[] = { /* Note: battery and charger share a port. Only include it once in diff --git a/board/peppy/board.h b/board/peppy/board.h index 7c3a385071..2be2988aa6 100644 --- a/board/peppy/board.h +++ b/board/peppy/board.h @@ -19,15 +19,16 @@ #define CONFIG_CHIPSET_HASWELL #define CONFIG_CHIPSET_X86 #define CONFIG_EXTPOWER_GPIO +#define CONFIG_FAN +#define CONFIG_FAN_EN_GPIO GPIO_PP5000_FAN_EN +#define CONFIG_FAN_RPM_MIN 1000 +#define CONFIG_FAN_RPM_MAX 5050 +#define CONFIG_FAN_POWER_GOOD GPIO_PP5000_PGOOD #define CONFIG_KEYBOARD_BOARD_CONFIG #define CONFIG_KEYBOARD_PROTOCOL_8042 #define CONFIG_POWER_BUTTON #define CONFIG_POWER_BUTTON_X86 -#define CONFIG_PWM_FAN -#define CONFIG_PWM_FAN_EN_GPIO GPIO_PP5000_FAN_EN -#define CONFIG_PWM_FAN_RPM_MIN 1000 -#define CONFIG_PWM_FAN_RPM_MAX 5050 -#define CONFIG_PWM_FAN_POWER_GOOD GPIO_PP5000_PGOOD +#define CONFIG_PWM #define CONFIG_TEMP_SENSOR #define CONFIG_TEMP_SENSOR_G781 #define CONFIG_UART_HOST 2 @@ -181,6 +182,13 @@ enum adc_channel { ADC_CH_COUNT }; +enum pwm_channel { + PWM_CH_FAN, + + /* Number of PWM channels */ + PWM_CH_COUNT +}; + enum temp_sensor_id { /* CPU die temperature via PECI */ TEMP_SENSOR_CPU_PECI = 0, |