summaryrefslogtreecommitdiff
path: root/board/fennel
diff options
context:
space:
mode:
authorMike Lee <mike5@huaqin.corp-partner.google.com>2020-09-16 20:06:56 +0800
committerCommit Bot <commit-bot@chromium.org>2020-09-24 04:34:49 +0000
commitf4fbd68a2664e8d830fb00222023b841f6debac0 (patch)
tree8e0a48fc20bf7c3c2ea84e8cff9e59670d69cdd5 /board/fennel
parent48509706db2ab4e3987a600ea6676f581317e5fb (diff)
downloadchrome-ec-f4fbd68a2664e8d830fb00222023b841f6debac0.tar.gz
Fennel: Modify it8801 keyboard backlight driver and Enable keyboard backlight
1.Modify it8801 keyboard backlight driver code 2.Enable keyboard backlight setting with it8801 keyboard backlight driver BUG=b:162902808 BRANCH=firmware-kukui-12573.B TEST=Manual. Build and flash BIOS&EC on fennel board. Verify the keyboard backlight function. Signed-off-by: Mike Lee <mike5@huaqin.corp-partner.google.com> Change-Id: I73dd7ffc7b6ee80ed7ca39ac4d05afe65f666181 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2413675 Reviewed-by: Zhuohao Lee <zhuohao@chromium.org>
Diffstat (limited to 'board/fennel')
-rw-r--r--board/fennel/board.c33
-rw-r--r--board/fennel/board.h7
-rw-r--r--board/fennel/gpio.inc1
3 files changed, 41 insertions, 0 deletions
diff --git a/board/fennel/board.c b/board/fennel/board.c
index a36db6011a..7a68dfbb1a 100644
--- a/board/fennel/board.c
+++ b/board/fennel/board.c
@@ -30,6 +30,7 @@
#include "i2c_bitbang.h"
#include "it8801.h"
#include "keyboard_scan.h"
+#include "keyboard_backlight.h"
#include "lid_switch.h"
#include "power.h"
#include "power_button.h"
@@ -419,6 +420,38 @@ struct motion_sensor_t motion_sensors[] = {
};
const unsigned int motion_sensor_count = ARRAY_SIZE(motion_sensors);
+const struct it8801_pwm_t it8801_pwm_channels[] = {
+ [IT8801_PWM_CH_KBLIGHT] = {.index = 4},
+};
+
+void board_kblight_init(void)
+{
+ kblight_register(&kblight_it8801);
+}
+
+bool board_has_kb_backlight(void)
+{
+ /* Default enable keyboard backlight */
+ return true;
+}
+
+/* Called on AP S0iX -> S0 transition */
+static void board_chipset_resume(void)
+{
+ if (board_has_kb_backlight())
+ ioex_set_level(IOEX_KB_BL_EN, 1);
+}
+DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT);
+DECLARE_HOOK(HOOK_INIT, board_chipset_resume, HOOK_PRIO_DEFAULT);
+
+/* Called on AP S0 -> S0iX transition */
+static void board_chipset_suspend(void)
+{
+ if (board_has_kb_backlight())
+ ioex_set_level(IOEX_KB_BL_EN, 0);
+}
+DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT);
+
#endif /* !VARIANT_KUKUI_NO_SENSORS */
/* Called on AP S5 -> S3 transition */
diff --git a/board/fennel/board.h b/board/fennel/board.h
index bd711b9359..27d6c52bdb 100644
--- a/board/fennel/board.h
+++ b/board/fennel/board.h
@@ -63,6 +63,9 @@
#define CONFIG_ACCEL_FORCE_MODE_MASK BIT(LID_ACCEL)
+#define CONFIG_IO_EXPANDER_IT8801_PWM
+#define CONFIG_KEYBOARD_BACKLIGHT
+
#endif /* VARIANT_KUKUI_NO_SENSORS */
/* I2C ports */
@@ -125,6 +128,10 @@ enum battery_type {
BATTERY_TYPE_COUNT,
};
+enum pwm_channel {
+ IT8801_PWM_CH_KBLIGHT = 0,
+};
+
#include "gpio_signal.h"
#include "registers.h"
diff --git a/board/fennel/gpio.inc b/board/fennel/gpio.inc
index 6f531634a1..7aed6abfc2 100644
--- a/board/fennel/gpio.inc
+++ b/board/fennel/gpio.inc
@@ -87,6 +87,7 @@ GPIO(USB_C0_DISCHARGE, PIN(B, 6), GPIO_OUT_LOW)
IOEX(LED_BLUE, EXPIN(0, 1, 4), GPIO_OUT_HIGH) /* LED BLUE */
IOEX(LED_GREEN, EXPIN(0, 1, 3), GPIO_OUT_HIGH) /* LED GREEN */
IOEX(LED_ORANGE, EXPIN(0, 1, 2), GPIO_OUT_HIGH) /* LED ORANGE */
+IOEX(KB_BL_EN, EXPIN(0, 0, 7), GPIO_OUT_LOW)
/*
* TODO(b:138352732): On IT88801 expander, To be readded once IT8801 driver and