summaryrefslogtreecommitdiff
path: root/board/peppy
diff options
context:
space:
mode:
authorVic Yang <victoryang@chromium.org>2013-08-05 11:17:35 +0800
committerchrome-internal-fetch <chrome-internal-fetch@google.com>2013-08-27 23:20:33 +0000
commit5d014fd2dd5e92ad35a4f2dd1b58e0b1baebb65e (patch)
tree2078f9831177392f22ba202cbea4b09d69a9a710 /board/peppy
parent99f06c39aabd262653c96c589c5cd26fc1fb8389 (diff)
downloadchrome-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.c8
-rw-r--r--board/peppy/board.h18
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,