/* * Copyright (c) 2023 Nuvoton Technology Corporation. * * SPDX-License-Identifier: Apache-2.0 */ #include #include #include #include #include LOG_MODULE_REGISTER(soc, CONFIG_SOC_LOG_LEVEL); #define NPCX_FIU_INST_INIT(node_id) DT_REG_ADDR(node_id), static uintptr_t fiu_insts[] = { DT_FOREACH_STATUS_OKAY(nuvoton_npcx_fiu_qspi, NPCX_FIU_INST_INIT) }; static int soc_npcx4_init(void) { /* * Make sure UMA_ADDR_SIZE field of UMA_ECTS register is zero in npcx4 * series. There should be no address field in UMA mode by default. */ for (int i = 0; i < ARRAY_SIZE(fiu_insts); i++) { struct fiu_reg *const inst = (struct fiu_reg *)(fiu_insts[i]); SET_FIELD(inst->UMA_ECTS, NPCX_UMA_ECTS_UMA_ADDR_SIZE, 0); } return 0; } SYS_INIT(soc_npcx4_init, PRE_KERNEL_1, 0);