diff options
author | Andrew McRae <amcrae@google.com> | 2022-03-11 01:58:13 +1100 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2022-03-15 05:19:30 +0000 |
commit | 4de0a08e5d3da0dd7997efdd6a35fe33b2af6397 (patch) | |
tree | 80ea67aefbbd0c89a67d4c7337c373c33dc064dc /zephyr/projects/brya | |
parent | 421c1d9174ed8a9a24b0d58aaf9f75b004965a63 (diff) | |
download | chrome-ec-4de0a08e5d3da0dd7997efdd6a35fe33b2af6397.tar.gz |
zephyr: Convert HOOK_CHIPSET calls to AP power callbacks
Convert HOOK_CHIPSET_ hooks to AP power callback handling.
BUG=b:223800037
TEST=zmake testall
BRANCH=none
Signed-off-by: Andrew McRae <amcrae@google.com>
Change-Id: I1a9574cacd5746467494facf9133f360a31cc3d5
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3518465
Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
Diffstat (limited to 'zephyr/projects/brya')
-rw-r--r-- | zephyr/projects/brya/brya/kblight_hooks.c | 41 |
1 files changed, 27 insertions, 14 deletions
diff --git a/zephyr/projects/brya/brya/kblight_hooks.c b/zephyr/projects/brya/brya/kblight_hooks.c index e2732533d5..c56aeb5907 100644 --- a/zephyr/projects/brya/brya/kblight_hooks.c +++ b/zephyr/projects/brya/brya/kblight_hooks.c @@ -6,6 +6,7 @@ #include <drivers/gpio.h> #include <stdbool.h> +#include <ap_power/ap_power.h> #include "cbi.h" #include "hooks.h" @@ -20,34 +21,46 @@ static inline void kbd_backlight_enable(bool enable) !enable); } -/* Called on AP S3 -> S0 transition */ -static void board_chipset_resume(void) +static void board_backlight_handler(struct ap_power_ev_callback *cb, + struct ap_power_ev_data data) { - /* Allow keyboard backlight to be enabled */ + bool enable; - kbd_backlight_enable(true); -} -DECLARE_HOOK(HOOK_CHIPSET_RESUME, board_chipset_resume, HOOK_PRIO_DEFAULT); + switch (data.event) { + default: + return; -/* Called on AP S0 -> S3 transition */ -static void board_chipset_suspend(void) -{ - /* Turn off the keyboard backlight if it's on. */ + case AP_POWER_RESUME: + /* Called on AP S3 -> S0 transition */ + enable = true; + break; - kbd_backlight_enable(false); + case AP_POWER_SUSPEND: + /* Called on AP S0 -> S3 transition */ + enable = false; + break; + } + kbd_backlight_enable(enable); } -DECLARE_HOOK(HOOK_CHIPSET_SUSPEND, board_chipset_suspend, HOOK_PRIO_DEFAULT); /* * Explicitly apply the board ID 1 *gpio.inc settings to pins that * were reassigned on current boards. */ - static void set_board_id_1_gpios(void) { + static struct ap_power_ev_callback cb; + + /* + * Add a callback for suspend/resume to + * control the keyboard backlight. + */ + ap_power_ev_init_callback(&cb, board_backlight_handler, + AP_POWER_RESUME | AP_POWER_SUSPEND); + ap_power_ev_add_callback(&cb); + if (get_board_id() != 1) return; - gpio_pin_configure_dt(GPIO_DT_FROM_NODELABEL(gpio_id_1_ec_kb_bl_en), GPIO_OUTPUT_LOW); } |