blob: cbd41dc221d4a6f4c52b33ba54af095b78678403 [file] [log] [blame]
/*
* Copyright (c) 2021-2022, Arm Limited. All rights reserved.
* Copyright (c) 2022 Cypress Semiconductor Corporation (an Infineon
* company) or an affiliate of Cypress Semiconductor Corporation. All rights
* reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*
*/
#include <stdint.h>
#include "cmsis.h"
#include "device_definition.h"
#include "ffm/interrupt.h"
#include "load/interrupt_defs.h"
#include "spm_ipc.h"
#include "tfm_hal_interrupt.h"
#include "tfm_peripherals_def.h"
#include "tfm_plat_test.h"
static struct irq_t timer0_irq = { 0 };
void TFM_TIMER0_IRQ_Handler(void)
{
spm_handle_interrupt(timer0_irq.p_pt, timer0_irq.p_ildi);
}
enum tfm_hal_status_t tfm_timer0_irq_init(void * p_pt, const struct irq_load_info_t * p_ildi)
{
timer0_irq.p_ildi = p_ildi;
timer0_irq.p_pt = p_pt;
NVIC_SetPriority(TFM_TIMER0_IRQ, DEFAULT_IRQ_PRIORITY);
NVIC_ClearTargetState(TFM_TIMER0_IRQ);
NVIC_DisableIRQ(TFM_TIMER0_IRQ);
return TFM_HAL_SUCCESS;
}