diff options
author | Scott Chao <scott_chao@wistron.corp-partner.google.com> | 2021-06-04 08:34:23 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-06-11 21:26:51 +0000 |
commit | 12d9e14ed6c45c86ddbb12599602708ae32b5cbc (patch) | |
tree | daa4236aab113dde1ea93132738928b145ca58b4 /board/primus | |
parent | 6c92e8efa30f7cfb78b39f60a7bc30804b409ed9 (diff) | |
download | chrome-ec-12d9e14ed6c45c86ddbb12599602708ae32b5cbc.tar.gz |
primus: Configure PWM channel
BUG=b:190518315
BRANCH=None
TEST=make -j BOARD=primus
Signed-off-by: Scott Chao <scott_chao@wistron.corp-partner.google.com>
Change-Id: Iaee111a963f3e9a6a353d14e9fdefdfb755828ee
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2938782
Reviewed-by: Boris Mittelberg <bmbm@google.com>
Diffstat (limited to 'board/primus')
-rw-r--r-- | board/primus/board.c | 16 | ||||
-rw-r--r-- | board/primus/board.h | 4 | ||||
-rw-r--r-- | board/primus/led.c | 5 | ||||
-rw-r--r-- | board/primus/pwm.c | 10 |
4 files changed, 18 insertions, 17 deletions
diff --git a/board/primus/board.c b/board/primus/board.c index a6c74b643d..c63bbb2c80 100644 --- a/board/primus/board.c +++ b/board/primus/board.c @@ -15,6 +15,7 @@ #include "lid_switch.h" #include "power_button.h" #include "power.h" +#include "pwm.h" #include "switch.h" #include "throttle_ap.h" @@ -24,6 +25,9 @@ #define CPRINTF(format, args...) cprintf(CC_CHARGER, format, ## args) #define CPRINTS(format, args...) cprints(CC_CHARGER, format, ## args) +#define KBLIGHT_LED_ON_LVL 100 +#define KBLIGHT_LED_OFF_LVL 0 + /******************************************************************************/ /* USB-A charging control */ @@ -43,11 +47,7 @@ __override void board_cbi_init(void) static void board_chipset_resume(void) { /* Allow keyboard backlight to be enabled */ - - if (get_board_id() == 1) - gpio_set_level(GPIO_ID_1_EC_KB_BL_EN, 1); - else - gpio_set_level(GPIO_EC_KB_BL_EN_L, 0); + pwm_set_duty(PWM_CH_KBLIGHT, KBLIGHT_LED_ON_LVL); } DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT); @@ -55,11 +55,7 @@ DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT); static void board_chipset_suspend(void) { /* Turn off the keyboard backlight if it's on. */ - - if (get_board_id() == 1) - gpio_set_level(GPIO_ID_1_EC_KB_BL_EN, 0); - else - gpio_set_level(GPIO_EC_KB_BL_EN_L, 1); + pwm_set_duty(PWM_CH_KBLIGHT, KBLIGHT_LED_OFF_LVL); } DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT); diff --git a/board/primus/board.h b/board/primus/board.h index b13cdf5f26..3e59d9ee9f 100644 --- a/board/primus/board.h +++ b/board/primus/board.h @@ -211,11 +211,11 @@ enum battery_type { enum pwm_channel { PWM_CH_LED2 = 0, /* PWM0 (white charger) */ - PWM_CH_LED3, /* PWM1 (orange on DB) */ + PWM_CH_TKP_A_LED_N, /* PWM1 (LOGO led on A cover) */ PWM_CH_LED1, /* PWM2 (orange charger) */ PWM_CH_KBLIGHT, /* PWM3 */ PWM_CH_FAN, /* PWM5 */ - PWM_CH_LED4, /* PWM7 (white on DB) */ + PWM_CH_LED4, /* PWM7 (power) */ PWM_CH_COUNT }; diff --git a/board/primus/led.c b/board/primus/led.c index f9c31ee9a1..f148af6949 100644 --- a/board/primus/led.c +++ b/board/primus/led.c @@ -11,6 +11,9 @@ #include "pwm.h" #include "util.h" +/* TODO(b/190637023) + * Need to implement specific LED feature for Primus. + */ const enum ec_led_id supported_led_ids[] = { EC_LED_ID_LEFT_LED, EC_LED_ID_RIGHT_LED, @@ -42,7 +45,7 @@ struct pwm_led pwm_leds[CONFIG_LED_PWM_COUNT] = { .set_duty = &pwm_set_duty, }, { - .ch0 = PWM_CH_LED3, + .ch0 = PWM_CH_TKP_A_LED_N, .ch1 = PWM_CH_LED4, .ch2 = PWM_LED_NO_CHANNEL, .enable = &pwm_enable, diff --git a/board/primus/pwm.c b/board/primus/pwm.c index a6b65b038c..456a1d5ad4 100644 --- a/board/primus/pwm.c +++ b/board/primus/pwm.c @@ -15,7 +15,7 @@ const struct pwm_t pwm_channels[] = { .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP, .freq = 4800, }, - [PWM_CH_LED3] = { + [PWM_CH_TKP_A_LED_N] = { .channel = 1, .flags = PWM_CONFIG_ACTIVE_LOW | PWM_CONFIG_DSLEEP, .freq = 4800, @@ -53,18 +53,20 @@ static void board_pwm_init(void) { /* * Turn on all the LED at 50%. - * Turn on the fan at 100%. */ pwm_enable(PWM_CH_LED1, 1); pwm_set_duty(PWM_CH_LED1, 50); pwm_enable(PWM_CH_LED2, 1); pwm_set_duty(PWM_CH_LED2, 50); - pwm_enable(PWM_CH_LED3, 1); - pwm_set_duty(PWM_CH_LED3, 50); + pwm_enable(PWM_CH_TKP_A_LED_N, 1); + pwm_set_duty(PWM_CH_TKP_A_LED_N, 50); pwm_enable(PWM_CH_LED4, 1); pwm_set_duty(PWM_CH_LED4, 50); pwm_enable(PWM_CH_KBLIGHT, 1); + /* TODO(b/190518315) + * Check if need to turn to 100% after with chassis. + */ pwm_set_duty(PWM_CH_KBLIGHT, 50); } DECLARE_HOOK(HOOK_INIT, board_pwm_init, HOOK_PRIO_DEFAULT); |