soc/mediatek/mt8196: Add unmask eint event for bootblock
EINT event mask register is used to mask EINT wakeup source. All wakeup sources are masked by default. Since most MediaTek SoCs do not have this design, we can't modify the kernel EINT upstream driver to solve the issue "Can't wake using power button (cros_ec) or touchpad". So we add a driver here to unmask all wakeup sources. TEST=write eint data successfully. BUG=b:317009620 Change-Id: I4bf3820a89172186b8f51591f8760787affbb7a3 Signed-off-by: Chhao Chang <ot_chhao.chang@mediatek.corp-partner.google.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/84025 Reviewed-by: Yidi Lin <yidilin@google.com> Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Yu-Ping Wu <yupingso@google.com>
This commit is contained in:
parent
1c24ae5550
commit
0b1779718e
3 changed files with 16 additions and 0 deletions
|
|
@ -15,6 +15,7 @@ bootblock-y += bootblock.c
|
|||
bootblock-y += ../common/bootblock.c bootblock.c
|
||||
bootblock-y += cksys.c
|
||||
bootblock-y += ../common/early_init.c
|
||||
bootblock-y += ../common/eint_event.c eint_event_info.c
|
||||
bootblock-y += ../common/lastbus_v2.c lastbus.c
|
||||
bootblock-y += mminfra.c
|
||||
bootblock-y += ../common/mmu_operations.c
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
#include <bootblock_common.h>
|
||||
#include <soc/cksys.h>
|
||||
#include <soc/early_init.h>
|
||||
#include <soc/eint_event.h>
|
||||
#include <soc/lastbus_v2.h>
|
||||
#include <soc/mminfra.h>
|
||||
#include <soc/mmu_operations.h>
|
||||
|
|
@ -26,4 +27,5 @@ void bootblock_soc_init(void)
|
|||
mt_pll_post_init();
|
||||
mtcmos_post_init();
|
||||
early_init_clear();
|
||||
unmask_eint_event_mask();
|
||||
}
|
||||
|
|
|
|||
13
src/soc/mediatek/mt8196/eint_event_info.c
Normal file
13
src/soc/mediatek/mt8196/eint_event_info.c
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
/* SPDX-License-Identifier: GPL-2.0-only OR MIT */
|
||||
|
||||
#include <soc/addressmap.h>
|
||||
#include <soc/eint_event.h>
|
||||
|
||||
const struct eint_event_info eint_event[] = {
|
||||
{EINT_E_BASE, 75},
|
||||
{EINT_S_BASE, 29},
|
||||
{EINT_W_BASE, 58},
|
||||
{EINT_N_BASE, 47},
|
||||
{EINT_C_BASE, 25},
|
||||
{},
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue