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/snow | |
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/snow')
-rw-r--r-- | board/snow/board.c | 9 | ||||
-rw-r--r-- | board/snow/board.h | 7 |
2 files changed, 16 insertions, 0 deletions
diff --git a/board/snow/board.c b/board/snow/board.c index 55e8012972..8a4e89667e 100644 --- a/board/snow/board.c +++ b/board/snow/board.c @@ -17,6 +17,8 @@ #include "lid_switch.h" #include "pmu_tpschrome.h" #include "power_led.h" +#include "pwm.h" +#include "pwm_data.h" #include "registers.h" #include "spi.h" #include "task.h" @@ -120,6 +122,13 @@ const struct i2c_port_t i2c_ports[] = { }; BUILD_ASSERT(ARRAY_SIZE(i2c_ports) == I2C_PORTS_USED); +/* PWM channels */ +const struct pwm_t pwm_channels[] = { + [PWM_CH_POWER_LED] = {STM32_TIM(2), STM32_TIM_CH(2), + PWM_CONFIG_ACTIVE_LOW, GPIO_LED_POWER_L}, +}; +BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT); + void board_config_pre_init(void) { uint32_t val; diff --git a/board/snow/board.h b/board/snow/board.h index 2c56d9d02a..363a0490a6 100644 --- a/board/snow/board.h +++ b/board/snow/board.h @@ -28,6 +28,7 @@ #define CONFIG_KEYBOARD_SUPPRESS_NOISE #define CONFIG_PMU_HARD_RESET #define CONFIG_PMU_TPS65090 +#define CONFIG_PWM /* use STOP mode when we have nothing to do */ #define CONFIG_LOW_POWER_IDLE @@ -120,6 +121,12 @@ enum gpio_signal { GPIO_COUNT }; +enum pwm_channel { + PWM_CH_POWER_LED = 0, + /* Number of PWM channels */ + PWM_CH_COUNT +}; + #endif /* !__ASSEMBLER__ */ #endif /* __BOARD_H */ |