summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTing Shen <phoenixshen@google.com>2021-03-25 18:47:00 +0800
committerCommit Bot <commit-bot@chromium.org>2021-04-22 09:54:59 +0000
commita1d6eed22f8b364a9eed261eb6f165a7d22698af (patch)
treeabc2dec3430347fce6b0a6d0799f487ba4d53768
parent759032cb3cc5a4839aab8781bd818b273186b041 (diff)
downloadchrome-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.c17
-rw-r--r--baseboard/cherry/baseboard.h2
-rw-r--r--board/cherry/gpio.inc2
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 */