diff options
author | Mike Lee <mike5@huaqin.corp-partner.google.com> | 2020-09-16 20:06:56 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2020-09-24 04:34:49 +0000 |
commit | f4fbd68a2664e8d830fb00222023b841f6debac0 (patch) | |
tree | 8e0a48fc20bf7c3c2ea84e8cff9e59670d69cdd5 /board/fennel | |
parent | 48509706db2ab4e3987a600ea6676f581317e5fb (diff) | |
download | chrome-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.c | 33 | ||||
-rw-r--r-- | board/fennel/board.h | 7 | ||||
-rw-r--r-- | board/fennel/gpio.inc | 1 |
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 |