diff options
author | Ting Shen <phoenixshen@google.com> | 2021-03-25 18:47:00 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-04-22 09:54:59 +0000 |
commit | a1d6eed22f8b364a9eed261eb6f165a7d22698af (patch) | |
tree | abc2dec3430347fce6b0a6d0799f487ba4d53768 | |
parent | 759032cb3cc5a4839aab8781bd818b273186b041 (diff) | |
download | chrome-ec-a1d6eed22f8b364a9eed261eb6f165a7d22698af.tar.gz |
cherry: add pwm keyboard backlight control
BUG=b:181838424
TEST=keyboard backlight works
BRANCH=main
Signed-off-by: Ting Shen <phoenixshen@google.com>
Change-Id: I7fd20808c6e8e6a1e22c060bb14c145256201756
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2785511
Tested-by: Ting Shen <phoenixshen@chromium.org>
Auto-Submit: Ting Shen <phoenixshen@chromium.org>
Reviewed-by: Eric Yilun Lin <yllin@google.com>
Commit-Queue: Ting Shen <phoenixshen@chromium.org>
-rw-r--r-- | baseboard/cherry/baseboard.c | 17 | ||||
-rw-r--r-- | baseboard/cherry/baseboard.h | 2 | ||||
-rw-r--r-- | board/cherry/gpio.inc | 2 |
3 files changed, 17 insertions, 4 deletions
diff --git a/baseboard/cherry/baseboard.c b/baseboard/cherry/baseboard.c index ebc6584083..e75b1dd3b4 100644 --- a/baseboard/cherry/baseboard.c +++ b/baseboard/cherry/baseboard.c @@ -180,19 +180,25 @@ const struct pwm_t pwm_channels[] = { .channel = 0, .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW, .freq_hz = 324, /* maximum supported frequency */ - .pcfsr_sel = PWM_PRESCALER_C4 + .pcfsr_sel = PWM_PRESCALER_C4, }, [PWM_CH_LED2] = { .channel = 1, .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW, .freq_hz = 324, /* maximum supported frequency */ - .pcfsr_sel = PWM_PRESCALER_C4 + .pcfsr_sel = PWM_PRESCALER_C4, }, [PWM_CH_LED3] = { .channel = 2, .flags = PWM_CONFIG_DSLEEP | PWM_CONFIG_ACTIVE_LOW, .freq_hz = 324, /* maximum supported frequency */ - .pcfsr_sel = PWM_PRESCALER_C4 + .pcfsr_sel = PWM_PRESCALER_C4, + }, + [PWM_CH_KBLIGHT] = { + .channel = 4, + .flags = 0, + .freq_hz = 10000, /* SYV226 supports 10~100kHz */ + .pcfsr_sel = PWM_PRESCALER_C6, }, }; BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT); @@ -202,6 +208,9 @@ BUILD_ASSERT(ARRAY_SIZE(pwm_channels) == PWM_CH_COUNT); static void board_chipset_resume(void) { gpio_set_level(GPIO_EC_BL_EN_OD, 1); + if (IS_ENABLED(CONFIG_PWM_KBLIGHT)) + gpio_set_level(GPIO_EN_KB_BL, 1); + } DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT); @@ -209,6 +218,8 @@ DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT); static void board_chipset_suspend(void) { gpio_set_level(GPIO_EC_BL_EN_OD, 0); + if (IS_ENABLED(CONFIG_PWM_KBLIGHT)) + gpio_set_level(GPIO_EN_KB_BL, 0); } DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT); diff --git a/baseboard/cherry/baseboard.h b/baseboard/cherry/baseboard.h index 5cadf928b3..f9ce133922 100644 --- a/baseboard/cherry/baseboard.h +++ b/baseboard/cherry/baseboard.h @@ -36,6 +36,7 @@ #define CONFIG_POWER_BUTTON #define CONFIG_POWER_COMMON #define CONFIG_PWM +#define CONFIG_PWM_KBLIGHT #define CONFIG_VBOOT_HASH #define CONFIG_VOLUME_BUTTONS #define CONFIG_WP_ACTIVE_HIGH @@ -196,6 +197,7 @@ enum pwm_channel { PWM_CH_LED1, PWM_CH_LED2, PWM_CH_LED3, + PWM_CH_KBLIGHT, PWM_CH_COUNT, }; diff --git a/board/cherry/gpio.inc b/board/cherry/gpio.inc index 17a9625a5a..05f9928e30 100644 --- a/board/cherry/gpio.inc +++ b/board/cherry/gpio.inc @@ -86,7 +86,7 @@ GPIO(EN_PP900_NVME_X, PIN(J, 5), GPIO_OUTPUT | GPIO_PULL_DOWN) GPIO(PG_NVME_OD, PIN(H, 3), GPIO_INPUT) /* Misc Signals */ -GPIO(EN_KB_BL, PIN(A, 5), GPIO_OUTPUT) +GPIO(EN_KB_BL, PIN(A, 5), GPIO_OUT_LOW) GPIO(EC_BATT_PRES_ODL, PIN(C, 0), GPIO_INPUT) GPIO(EN_EC_ID_ODL, PIN(H, 5), GPIO_ODR_LOW) GPIO(ENTERING_RW, PIN(C, 5), GPIO_OUT_LOW) /* EC_ENTERING_RW */ |