diff options
author | Daisuke Nojiri <dnojiri@chromium.org> | 2023-05-10 10:11:16 -0700 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2023-05-15 20:22:46 +0000 |
commit | 9b983d87013e63d4c0de79a0ca9b95725f1200eb (patch) | |
tree | 44141cd9d1e28fe063874d3958202ed3b01b5962 | |
parent | 322687ee44e3a4d5fec5cdf0c240c655e1b7f47c (diff) | |
download | chrome-ec-9b983d87013e63d4c0de79a0ca9b95725f1200eb.tar.gz |
NPCX9: Allow boards to customize MIWU interrupt priority
This CL will add macros used to set MIWU interrupt priorities. These
macro can be set by each board to adjust priorities as needed.
BUG=b:279918234
TEST=build agah
Change-Id: Ide840e4ab8cc9aa8deb83b6ad76fa64bc0d83972
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4518230
Auto-Submit: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-by: Tarun Tuli <taruntuli@google.com>
Tested-by: Daisuke Nojiri <dnojiri@chromium.org>
Reviewed-by: Mulin Chao <mlchao@nuvoton.com>
Commit-Queue: Daisuke Nojiri <dnojiri@chromium.org>
-rw-r--r-- | chip/npcx/gpio-npcx9.c | 33 | ||||
-rw-r--r-- | chip/npcx/registers.h | 50 |
2 files changed, 67 insertions, 16 deletions
diff --git a/chip/npcx/gpio-npcx9.c b/chip/npcx/gpio-npcx9.c index 5de8ea3b0a..3a7378083c 100644 --- a/chip/npcx/gpio-npcx9.c +++ b/chip/npcx/gpio-npcx9.c @@ -181,21 +181,22 @@ GPIO_IRQ_FUNC(__gpio_wk1e_interrupt, WUI_INT(MIWU_TABLE_1, MIWU_GROUP_5)); GPIO_IRQ_FUNC(__gpio_wk1f_interrupt, WUI_INT(MIWU_TABLE_1, MIWU_GROUP_6)); GPIO_IRQ_FUNC(__gpio_wk1g_interrupt, WUI_INT(MIWU_TABLE_1, MIWU_GROUP_7)); -DECLARE_IRQ(NPCX_IRQ_CR_SIN2_WKINTA_0, __gpio_cr_sin2_interrupt, 3); -DECLARE_IRQ(NPCX_IRQ_TWD_WKINTB_0, __gpio_wk0b_interrupt, 3); -DECLARE_IRQ(NPCX_IRQ_WKINTC_0, __gpio_wk0c_interrupt, 3); -DECLARE_IRQ(NPCX_IRQ_MTC_WKINTD_0, __gpio_rtc_interrupt, 3); -DECLARE_IRQ(NPCX_IRQ_WKINTE_0, __gpio_host_interrupt, 3); -DECLARE_IRQ(NPCX_IRQ_WKINTF_0, __gpio_wk0f_interrupt, 3); -DECLARE_IRQ(NPCX_IRQ_WKINTG_0, __gpio_wk0g_interrupt, 3); -DECLARE_IRQ(NPCX_IRQ_WKINTH_0, __gpio_wk0h_interrupt, 3); -DECLARE_IRQ(NPCX_IRQ_WKINTA_1, __gpio_wk1a_interrupt, 3); -DECLARE_IRQ(NPCX_IRQ_WKINTB_1, __gpio_wk1b_interrupt, 3); +DECLARE_IRQ(NPCX_IRQ_CR_SIN2_WKINTA_0, __gpio_cr_sin2_interrupt, + NPCX_MIWU0_GROUP_A); +DECLARE_IRQ(NPCX_IRQ_TWD_WKINTB_0, __gpio_wk0b_interrupt, NPCX_MIWU0_GROUP_B); +DECLARE_IRQ(NPCX_IRQ_WKINTC_0, __gpio_wk0c_interrupt, NPCX_MIWU0_GROUP_C); +DECLARE_IRQ(NPCX_IRQ_MTC_WKINTD_0, __gpio_rtc_interrupt, NPCX_MIWU0_GROUP_D); +DECLARE_IRQ(NPCX_IRQ_WKINTE_0, __gpio_host_interrupt, NPCX_MIWU0_GROUP_E); +DECLARE_IRQ(NPCX_IRQ_WKINTF_0, __gpio_wk0f_interrupt, NPCX_MIWU0_GROUP_F); +DECLARE_IRQ(NPCX_IRQ_WKINTG_0, __gpio_wk0g_interrupt, NPCX_MIWU0_GROUP_G); +DECLARE_IRQ(NPCX_IRQ_WKINTH_0, __gpio_wk0h_interrupt, NPCX_MIWU0_GROUP_H); +DECLARE_IRQ(NPCX_IRQ_WKINTA_1, __gpio_wk1a_interrupt, NPCX_MIWU1_GROUP_A); +DECLARE_IRQ(NPCX_IRQ_WKINTB_1, __gpio_wk1b_interrupt, NPCX_MIWU1_GROUP_B); #ifdef NPCX_SELECT_KSI_TO_GPIO -DECLARE_IRQ(NPCX_IRQ_KSI_WKINTC_1, __gpio_wk1c_interrupt, 3); +DECLARE_IRQ(NPCX_IRQ_KSI_WKINTC_1, __gpio_wk1c_interrupt, NPCX_MIWU1_GROUP_C); #endif -DECLARE_IRQ(NPCX_IRQ_WKINTD_1, __gpio_wk1d_interrupt, 3); -DECLARE_IRQ(NPCX_IRQ_WKINTE_1, __gpio_wk1e_interrupt, 3); +DECLARE_IRQ(NPCX_IRQ_WKINTD_1, __gpio_wk1d_interrupt, NPCX_MIWU1_GROUP_D); +DECLARE_IRQ(NPCX_IRQ_WKINTE_1, __gpio_wk1e_interrupt, NPCX_MIWU1_GROUP_E); #ifdef CONFIG_HOST_INTERFACE_SHI /* * HACK: Make CS GPIO P2 to improve SHI reliability. @@ -204,10 +205,10 @@ DECLARE_IRQ(NPCX_IRQ_WKINTE_1, __gpio_wk1e_interrupt, 3); */ DECLARE_IRQ(NPCX_IRQ_WKINTF_1, __gpio_wk1f_interrupt, 2); #else -DECLARE_IRQ(NPCX_IRQ_WKINTF_1, __gpio_wk1f_interrupt, 3); +DECLARE_IRQ(NPCX_IRQ_WKINTF_1, __gpio_wk1f_interrupt, NPCX_MIWU1_GROUP_F); #endif -DECLARE_IRQ(NPCX_IRQ_WKINTG_1, __gpio_wk1g_interrupt, 3); -DECLARE_IRQ(NPCX_IRQ_WKINTH_1, __gpio_wk1h_interrupt, 3); +DECLARE_IRQ(NPCX_IRQ_WKINTG_1, __gpio_wk1g_interrupt, NPCX_MIWU1_GROUP_G); +DECLARE_IRQ(NPCX_IRQ_WKINTH_1, __gpio_wk1h_interrupt, NPCX_MIWU1_GROUP_H); DECLARE_IRQ(NPCX_IRQ_LCT_WKINTF_2, __gpio_lct_interrupt, 3); #undef GPIO_IRQ_FUNC diff --git a/chip/npcx/registers.h b/chip/npcx/registers.h index a583fb1c64..c99fb76bf3 100644 --- a/chip/npcx/registers.h +++ b/chip/npcx/registers.h @@ -275,6 +275,56 @@ enum { MIWU_EDGE_ANYING, }; +#define NPCX_MIWU_DEFAULT_PRIORITY 3 +#ifndef NPCX_MIWU0_GROUP_A +#define NPCX_MIWU0_GROUP_A NPCX_MIWU_DEFAULT_PRIORITY +#endif +#ifndef NPCX_MIWU0_GROUP_B +#define NPCX_MIWU0_GROUP_B NPCX_MIWU_DEFAULT_PRIORITY +#endif +#ifndef NPCX_MIWU0_GROUP_C +#define NPCX_MIWU0_GROUP_C NPCX_MIWU_DEFAULT_PRIORITY +#endif +#ifndef NPCX_MIWU0_GROUP_D +#define NPCX_MIWU0_GROUP_D NPCX_MIWU_DEFAULT_PRIORITY +#endif +#ifndef NPCX_MIWU0_GROUP_E +#define NPCX_MIWU0_GROUP_E NPCX_MIWU_DEFAULT_PRIORITY +#endif +#ifndef NPCX_MIWU0_GROUP_F +#define NPCX_MIWU0_GROUP_F NPCX_MIWU_DEFAULT_PRIORITY +#endif +#ifndef NPCX_MIWU0_GROUP_G +#define NPCX_MIWU0_GROUP_G NPCX_MIWU_DEFAULT_PRIORITY +#endif +#ifndef NPCX_MIWU0_GROUP_H +#define NPCX_MIWU0_GROUP_H NPCX_MIWU_DEFAULT_PRIORITY +#endif +#ifndef NPCX_MIWU1_GROUP_A +#define NPCX_MIWU1_GROUP_A NPCX_MIWU_DEFAULT_PRIORITY +#endif +#ifndef NPCX_MIWU1_GROUP_B +#define NPCX_MIWU1_GROUP_B NPCX_MIWU_DEFAULT_PRIORITY +#endif +#ifndef NPCX_MIWU1_GROUP_C +#define NPCX_MIWU1_GROUP_C NPCX_MIWU_DEFAULT_PRIORITY +#endif +#ifndef NPCX_MIWU1_GROUP_D +#define NPCX_MIWU1_GROUP_D NPCX_MIWU_DEFAULT_PRIORITY +#endif +#ifndef NPCX_MIWU1_GROUP_E +#define NPCX_MIWU1_GROUP_E NPCX_MIWU_DEFAULT_PRIORITY +#endif +#ifndef NPCX_MIWU1_GROUP_F +#define NPCX_MIWU1_GROUP_F NPCX_MIWU_DEFAULT_PRIORITY +#endif +#ifndef NPCX_MIWU1_GROUP_G +#define NPCX_MIWU1_GROUP_G NPCX_MIWU_DEFAULT_PRIORITY +#endif +#ifndef NPCX_MIWU1_GROUP_H +#define NPCX_MIWU1_GROUP_H NPCX_MIWU_DEFAULT_PRIORITY +#endif + /* MIWU utilities */ #define MIWU_TABLE_WKKEY MIWU_TABLE_1 #define MIWU_GROUP_WKKEY MIWU_GROUP_3 |