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