summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJett Rink <jettrink@chromium.org>2018-05-08 14:14:32 -0600
committerchrome-bot <chrome-bot@chromium.org>2018-05-23 12:50:54 -0700
commit36d59f752fb7526bcfac74c567593c05c97b6f10 (patch)
treecadced96074eb23ba4c7063fed2d5821532e7a42
parent535c0bf4fa8b1c44b96f1163d163b20cebdd0a92 (diff)
downloadchrome-ec-36d59f752fb7526bcfac74c567593c05c97b6f10.tar.gz
yorp: add keyboard backlight control
Enable PWM control of backlight in EC for yorp and phaser. Proto build of bip will not have backlight control in EC. BRANCH=none BUG=b:79422226 TEST=none (no hardware to test with) Change-Id: Ib6ed4af4de3145b112ed43b4ca1ec9f931f3875f Signed-off-by: Jett Rink <jettrink@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/1050785 Reviewed-by: Justin TerAvest <teravest@chromium.org>
-rw-r--r--baseboard/octopus/baseboard.c4
-rw-r--r--baseboard/octopus/baseboard.h2
-rw-r--r--baseboard/octopus/variant_ec_npcx796fb.c11
-rw-r--r--board/bip/board.h4
-rw-r--r--board/bip/gpio.inc3
-rw-r--r--board/yorp/board.h5
-rw-r--r--board/yorp/gpio.inc5
7 files changed, 33 insertions, 1 deletions
diff --git a/baseboard/octopus/baseboard.c b/baseboard/octopus/baseboard.c
index cd14adb6d3..b358864d59 100644
--- a/baseboard/octopus/baseboard.c
+++ b/baseboard/octopus/baseboard.c
@@ -135,6 +135,8 @@ static void baseboard_chipset_resume(void)
* LID_OPEN connection in hardware.
*/
gpio_set_level(GPIO_ENABLE_BACKLIGHT, 1);
+ /* Enable the keyboard backlight */
+ gpio_set_level(GPIO_KB_BL_PWR_EN, 1);
}
DECLARE_HOOK(HOOK_CHIPSET_RESUME, baseboard_chipset_resume, HOOK_PRIO_DEFAULT);
@@ -146,6 +148,8 @@ static void baseboard_chipset_suspend(void)
* LID_OPEN connection in hardware.
*/
gpio_set_level(GPIO_ENABLE_BACKLIGHT, 0);
+ /* Disable the keyboard backlight */
+ gpio_set_level(GPIO_KB_BL_PWR_EN, 0);
}
DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, baseboard_chipset_suspend,
HOOK_PRIO_DEFAULT);
diff --git a/baseboard/octopus/baseboard.h b/baseboard/octopus/baseboard.h
index 0b0018f6f0..a603690009 100644
--- a/baseboard/octopus/baseboard.h
+++ b/baseboard/octopus/baseboard.h
@@ -71,6 +71,7 @@
#define CONFIG_CROS_BOARD_INFO
#define CONFIG_BOARD_VERSION_CBI
#define CONFIG_LOW_POWER_IDLE
+#define CONFIG_PWM
/*
* We don't need CONFIG_BACKLIGHT_LID since hardware AND's LID_OPEN and AP
@@ -230,6 +231,7 @@
#define CONFIG_KEYBOARD_PROTOCOL_8042
#define CONFIG_KEYBOARD_COL2_INVERTED
#define CONFIG_KEYBOARD_PWRBTN_ASSERTS_KSI2
+#define CONFIG_PWM_KBLIGHT
#ifndef __ASSEMBLER__
diff --git a/baseboard/octopus/variant_ec_npcx796fb.c b/baseboard/octopus/variant_ec_npcx796fb.c
index 6c839cbb10..f00d39e8d6 100644
--- a/baseboard/octopus/variant_ec_npcx796fb.c
+++ b/baseboard/octopus/variant_ec_npcx796fb.c
@@ -7,9 +7,11 @@
#include "charge_manager.h"
#include "chipset.h"
+#include "config.h"
#include "gpio.h"
#include "i2c.h"
#include "power.h"
+#include "pwm_chip.h"
#include "usb_pd.h"
#include "usbc_ppc.h"
#include "util.h"
@@ -27,6 +29,15 @@ const struct i2c_port_t i2c_ports[] = {
};
const unsigned int i2c_ports_used = ARRAY_SIZE(i2c_ports);
+/******************************************************************************/
+/* PWM channels. Must be in the exactly same order as in enum pwm_channel. */
+const struct pwm_t pwm_channels[] = {
+ [PWM_CH_KBLIGHT] = { .channel = 3, .flags = 0, .freq = 100 },
+};
+BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT);
+
+/******************************************************************************/
+/* Board power callback/hooks */
#define HIBERNATE_VBUS_LEVEL_MV 5000
void board_hibernate(void)
diff --git a/board/bip/board.h b/board/bip/board.h
index 6db1145b3a..cf033b26bd 100644
--- a/board/bip/board.h
+++ b/board/bip/board.h
@@ -16,6 +16,10 @@
/* Optional features */
#define CONFIG_SYSTEM_UNLOCKED /* Allow dangerous commands while in dev. */
+/* Hardware for proto bip does not support ec keyboard backlight control. */
+#undef CONFIG_PWM
+#undef CONFIG_PWM_KBLIGHT
+
#ifndef __ASSEMBLER__
#include "gpio_signal.h"
diff --git a/board/bip/gpio.inc b/board/bip/gpio.inc
index 7e66e23afc..9b984eb480 100644
--- a/board/bip/gpio.inc
+++ b/board/bip/gpio.inc
@@ -97,6 +97,9 @@ GPIO(USB_C1_BC12_VBUS_ON, PIN(J, 5), GPIO_OUT_LOW) /* C1 BC1.2 Power */
GPIO(USB_C1_PD_RST_ODL, PIN(L, 7), GPIO_ODR_HIGH) /* C1 PD Reset */
GPIO(USB2_OTG_ID, PIN(I, 2), GPIO_OUT_LOW) /* OTG ID */
+/* Not implemented in hardware yet */
+UNIMPLEMENTED(KB_BL_PWR_EN)
+
/* Alternate functions GPIO definitions */
/* Cr50 requires no pull-ups on UART pins. */
ALTERNATE(PIN_MASK(B, 0x03), 0, MODULE_UART, 0) /* UART from EC to Servo */
diff --git a/board/yorp/board.h b/board/yorp/board.h
index 9cd7e65909..aef8b4a111 100644
--- a/board/yorp/board.h
+++ b/board/yorp/board.h
@@ -66,6 +66,11 @@ enum temp_sensor_id {
TEMP_SENSOR_COUNT
};
+enum pwm_channel {
+ PWM_CH_KBLIGHT,
+ PWM_CH_COUNT
+};
+
/* Motion sensors */
enum sensor_id {
LID_ACCEL,
diff --git a/board/yorp/gpio.inc b/board/yorp/gpio.inc
index 8ce745de0b..4a00805cad 100644
--- a/board/yorp/gpio.inc
+++ b/board/yorp/gpio.inc
@@ -103,7 +103,6 @@ GPIO(EN_USB_A_5V, PIN(6, 7), GPIO_OUT_LOW) /* Enable A0/A1 5V Charging */
GPIO(USB2_OTG_ID, PIN(A, 0), GPIO_OUT_LOW) /* OTG ID */
GPIO(USB_A_CHARGE_EN_L, PIN(A, 2), GPIO_OUT_HIGH) /* Enable A0/A1 1.5A Charging */
/* TODO(b/74254366): Break out A1 signals once they are there in HW */
-/* USB_C0_PD_RST_L isn't connected to PIN(6,2) since ANX TCPC doesn't have reset */
GPIO(USB_C0_BC12_VBUS_ON, PIN(6, 3), GPIO_OUT_LOW) /* C0 BC1.2 Power */
GPIO(USB_C0_BC12_CHG_DET_L, PIN(9, 5), GPIO_INPUT) /* C0 BC1.2 Detect */
GPIO(USB_C0_HPD_1V8_ODL, PIN(C, 5), GPIO_INPUT | /* C0 DP Hotplug Detect */
@@ -120,6 +119,9 @@ GPIO(USB_C1_HPD_1V8_ODL, PIN(C, 6), GPIO_INPUT | /* C1 DP Hotplug Detect */
GPIO(BAT_LED_ORANGE_L, PIN(C, 3), GPIO_OUT_HIGH) /* LED_1_L */
GPIO(BAT_LED_BLUE_L, PIN(C, 4), GPIO_OUT_HIGH) /* LED_2_L */
+/* Keyboard Backlight */
+GPIO(KB_BL_PWR_EN, PIN(6, 2), GPIO_OUT_LOW)
+
/* Keyboard pins */
ALTERNATE(PIN_MASK(3, 0x03), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_00-01 */
ALTERNATE(PIN_MASK(2, 0xFC), 0, MODULE_KEYBOARD_SCAN, GPIO_INPUT) /* KSI_02-07 */
@@ -140,3 +142,4 @@ ALTERNATE(PIN_MASK(B, 0x0C), 0, MODULE_I2C, 0) /* I2C7 */
ALTERNATE(PIN_MASK(4, 0x30), 0, MODULE_ADC, 0) /* ADC0-1 */
ALTERNATE(PIN_MASK(4, 0x02), 0, MODULE_ADC, 0) /* ADC4: ADC_USB_C0_VBUS */
ALTERNATE(PIN_MASK(F, 0x01), 0, MODULE_ADC, 0) /* ADC9: ADC_USB_C1_VBUS */
+ALTERNATE(PIN_MASK(8, 0x01), 0, MODULE_PWM, 0) /* PWM3: KB_BL_PWM */