diff --git a/drivers/st/clk/stm32mp1_calib.c b/drivers/st/clk/stm32mp1_calib.c index be2d85be7fc71ecc62ca5912d068db17840e6fce..b764c971ce0a6f7e63d7cb822852282e89d29834 100644 --- a/drivers/st/clk/stm32mp1_calib.c +++ b/drivers/st/clk/stm32mp1_calib.c @@ -509,22 +509,6 @@ static void init_csi_cal(void) rcc_calibration(&stm32mp1_clk_cal_csi); } -void stm32mp1_calib_init_late(void) -{ - int irq_num; - - if (!stm32mp1_rcc_is_secure()) { - return; - } - - irq_num = fdt_rcc_enable_it("wakeup"); - if (irq_num < 0) { - panic(); - } - - plat_ic_set_interrupt_priority(irq_num, STM32MP1_IRQ_RCC_SEC_PRIO); -} - void stm32mp1_calib_init(void) { init_hsi_cal(); diff --git a/include/drivers/st/stm32mp1_calib.h b/include/drivers/st/stm32mp1_calib.h index 5f14f523b60888ad2709e7aa3978d0f0c159be9f..ef69cb4563f9c20bf3eb7e86bb05a99d83da5de6 100644 --- a/include/drivers/st/stm32mp1_calib.h +++ b/include/drivers/st/stm32mp1_calib.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018, STMicroelectronics - All Rights Reserved + * Copyright (c) 2018-2019, STMicroelectronics - All Rights Reserved * * SPDX-License-Identifier: BSD-3-Clause */ @@ -16,6 +16,5 @@ void stm32mp1_calib_it_handler(uint32_t id); int stm32mp1_calib_start_hsi_cal(void); int stm32mp1_calib_start_csi_cal(void); void stm32mp1_calib_init(void); -void stm32mp1_calib_init_late(void); #endif /* STM32MP1_CLK_H */ diff --git a/plat/st/common/stm32mp_dt.c b/plat/st/common/stm32mp_dt.c index b1132049b863218421d20c67be0453033d689089..a8aec50f54e5f219dd1dfa1706ac5eb08aaf8432 100644 --- a/plat/st/common/stm32mp_dt.c +++ b/plat/st/common/stm32mp_dt.c @@ -132,12 +132,9 @@ int fdt_get_interrupt(int node, const fdt32_t **array, int *len, bool *extended) } break; - case DT_SHARED: + default: *array = fdt_getprop(fdt, node, "secure-interrupts", len); break; - - default: - return -FDT_ERR_NOTFOUND; } if (*array == NULL) { diff --git a/plat/st/stm32mp1/sp_min/sp_min_setup.c b/plat/st/stm32mp1/sp_min/sp_min_setup.c index 51ead6d6c59a3b3e3d723a5ded920bcddf8fc3d2..cc9a78fd862ce42bcd1e92adc35206da0bc72364 100644 --- a/plat/st/stm32mp1/sp_min/sp_min_setup.c +++ b/plat/st/stm32mp1/sp_min/sp_min_setup.c @@ -25,6 +25,7 @@ #include <drivers/st/stm32_rtc.h> #include <drivers/st/stm32_tamp.h> #include <drivers/st/stm32_timer.h> +#include <drivers/st/stm32mp_clkfunc.h> #include <drivers/st/stm32mp_pmic.h> #include <drivers/st/stm32mp1_clk.h> #include <dt-bindings/clock/stm32mp1-clks.h> @@ -80,6 +81,18 @@ static void stm32_sgi1_it_handler(void) stm32mp_wait_cpu_reset(); } +static void configure_wakeup_interrupt(void) +{ + int irq_num = fdt_rcc_enable_it("wakeup"); + + if (irq_num < 0) { + ERROR("irq_num = %d\n", irq_num); + panic(); + } + + plat_ic_set_interrupt_priority(irq_num, STM32MP1_IRQ_RCC_SEC_PRIO); +} + /******************************************************************************* * Interrupt handler for FIQ (secure IRQ) ******************************************************************************/ @@ -359,6 +372,8 @@ void sp_min_platform_setup(void) panic(); } + configure_wakeup_interrupt(); + stm32mp_lock_periph_registering(); stm32mp1_init_scmi_server(); diff --git a/plat/st/stm32mp1/stm32mp1_shared_resources.c b/plat/st/stm32mp1/stm32mp1_shared_resources.c index 8279646cb62307f029d8a2b44a8add506892e7a2..14e4fcc031818d77411ae94b9e365db0d948e101 100644 --- a/plat/st/stm32mp1/stm32mp1_shared_resources.c +++ b/plat/st/stm32mp1/stm32mp1_shared_resources.c @@ -691,8 +691,6 @@ static void check_rcc_secure_configuration(void) bool mckprot = stm32mp1_rcc_is_mckprot(); bool secure = stm32mp1_rcc_is_secure(); - stm32mp1_calib_init_late(); - for (n = 0U; n < ARRAY_SIZE(shres_state); n++) { if (shres_state[n] != SHRES_SECURE) { continue;