1 /** 2 * 3 * Copyright (C) 2018, Marvell International Ltd. and its affiliates 4 * 5 * SPDX-License-Identifier: BSD-2-Clause-Patent 6 * 7 **/ 8 #ifndef __ARMADA_ICU_LIB_H__ 9 #define __ARMADA_ICU_LIB_H__ 10 11 typedef enum { 12 IcuIrqTypeLevel = 0, 13 IcuIrqTypeEdge = 1 14 } ICU_IRQ_TYPE; 15 16 typedef struct { 17 UINTN IcuId; 18 UINTN SpiId; 19 ICU_IRQ_TYPE IrqType; 20 } ICU_IRQ; 21 22 typedef struct { 23 CONST ICU_IRQ *Map; 24 UINTN Size; 25 } ICU_CONFIG_ENTRY; 26 27 typedef struct { 28 ICU_CONFIG_ENTRY NonSecure; 29 ICU_CONFIG_ENTRY Sei; 30 ICU_CONFIG_ENTRY Rei; 31 } ICU_CONFIG; 32 33 EFI_STATUS 34 EFIAPI 35 ArmadaIcuInitialize ( 36 VOID 37 ); 38 39 #endif /* __ARMADA_ICU_LIB_H__ */ 40