summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRyan Zhang <Ryan.Zhang@quantatw.com>2015-12-04 10:21:15 +0800
committerchrome-bot <chrome-bot@chromium.org>2015-12-06 20:41:33 -0800
commit565db4519c7f13f8df1c331b6864ffc313179f85 (patch)
treeedf7207e1b466c4a9533966f1cceabb20a2037b0
parent5c8edccb941bf7fa76fac7a6cf3b16c1c0765577 (diff)
downloadchrome-ec-565db4519c7f13f8df1c331b6864ffc313179f85.tar.gz
Lars: Add PWM keyboard backlight support
+ pwm settings BUG=None BRANCH=lars TEST=`make BOARD=lars -j`, OS can boot up normally Change-Id: I8703261736802a81323077a85262da7d7a80cbc1 Signed-off-by: Ryan Zhang <Ryan.Zhang@quantatw.com> Reviewed-on: https://chromium-review.googlesource.com/315911 Reviewed-by: Shawn N <shawnn@chromium.org>
-rw-r--r--board/lars/board.c8
-rw-r--r--board/lars/board.h8
-rw-r--r--board/lars/gpio.inc4
3 files changed, 19 insertions, 1 deletions
diff --git a/board/lars/board.c b/board/lars/board.c
index 5eaea71f36..c747ae4d73 100644
--- a/board/lars/board.c
+++ b/board/lars/board.c
@@ -26,6 +26,8 @@
#include "pi3usb9281.h"
#include "power.h"
#include "power_button.h"
+#include "pwm.h"
+#include "pwm_chip.h"
#include "spi.h"
#include "switch.h"
#include "system.h"
@@ -103,6 +105,12 @@ const struct adc_t adc_channels[] = {
};
BUILD_ASSERT(ARRAY_SIZE(adc_channels) == ADC_CH_COUNT);
+/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
+const struct pwm_t pwm_channels[] = {
+ {1, 0},
+};
+BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
+
const struct i2c_port_t i2c_ports[] = {
{"pmic", MEC1322_I2C0_0, 400, GPIO_I2C0_0_SCL, GPIO_I2C0_0_SDA},
{"muxes", MEC1322_I2C0_1, 400, GPIO_I2C0_1_SCL, GPIO_I2C0_1_SDA},
diff --git a/board/lars/board.h b/board/lars/board.h
index 97b981c712..7ac2d5f3fd 100644
--- a/board/lars/board.h
+++ b/board/lars/board.h
@@ -59,6 +59,8 @@
#define CONFIG_POWER_BUTTON_X86
#define CONFIG_POWER_COMMON
#define CONFIG_POWER_SHUTDOWN_PAUSE_IN_S5
+#define CONFIG_PWM
+#define CONFIG_PWM_KBLIGHT
/* All data won't fit in data RAM. So, moving boundary slightly. */
#undef CONFIG_RO_SIZE
#define CONFIG_RO_SIZE (104 * 1024)
@@ -150,6 +152,12 @@ enum als_id {
ALS_COUNT,
};
+enum pwm_channel {
+ PWM_CH_KBLIGHT,
+ /* Number of PWM channels */
+ PWM_CH_COUNT,
+};
+
/* power signal definitions */
enum power_signal {
X86_RSMRST_L_PWRGD = 0,
diff --git a/board/lars/gpio.inc b/board/lars/gpio.inc
index 529b3c0ff8..eafaec98d6 100644
--- a/board/lars/gpio.inc
+++ b/board/lars/gpio.inc
@@ -50,7 +50,6 @@ GPIO(WLAN_OFF_L, PIN(132), GPIO_OUT_HIGH) /* Empty */
GPIO(PWRLED_L, PIN(133), GPIO_OUT_LOW)
/* RCIN# line to PCH for 8042 emulation */
GPIO(PCH_RCIN_L, PIN(135), GPIO_ODR_HIGH)
-GPIO(NC_136, PIN(136), GPIO_INPUT | GPIO_PULL_UP)
GPIO(LDO_EN, PIN(211), GPIO_OUT_LOW)
GPIO(NC_145, PIN(145), GPIO_INPUT | GPIO_PULL_UP)
GPIO(NC_147, PIN(147), GPIO_INPUT | GPIO_PULL_UP)
@@ -140,6 +139,9 @@ ALTERNATE(PIN_MASK(14, 0x01), 3, MODULE_PWM, 0)
/* TACH2PWM_OUT - GPIO034 */
ALTERNATE(PIN_MASK(3, 0x10), 3, MODULE_PWM, 0)
+/* PWM for KBLight */
+ALTERNATE(PIN_MASK(13, 0x40), 1, MODULE_PWM_KBLIGHT, 0) /* GP136 PWM1 */
+
/* ADC pins */
/* ADC1 - GPIO057 / PPVAR_BOOSTIN_SENSE */
ALTERNATE(PIN_MASK(5, 0x80), 1, MODULE_ADC, GPIO_ANALOG)