77 lines
2.3 KiB
C
77 lines
2.3 KiB
C
/*
|
|
* Copyright (c) 2021-2022 Amlogic, Inc. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: MIT
|
|
*/
|
|
|
|
#ifndef N200_ECLIC_H
|
|
#define N200_ECLIC_H
|
|
|
|
// Need to know the following info from the soc.h, so include soc.h here
|
|
// SOC_ECLIC_CTRL_ADDR : what is the base address of ECLIC in this SoC
|
|
// SOC_ECLIC_NUM_INTERRUPTS : how much of irq configured in total for the ECLIC in this SoC
|
|
#include "soc.h"
|
|
|
|
//#define CLICINTCTLBITS 3
|
|
|
|
//ECLIC memory map
|
|
// Offset
|
|
// 0x0000 1B RW cliccfg
|
|
#define ECLIC_CFG_OFFSET 0x0
|
|
// 0x0004 4B R clicinfo
|
|
#define ECLIC_INFO_OFFSET 0x4
|
|
// 0x000B 1B RW mintthresh
|
|
#define ECLIC_MTH_OFFSET 0xB
|
|
//
|
|
// 0x1000+4*i 1B/input RW clicintip[i]
|
|
#define ECLIC_INT_IP_OFFSET _AC(0x1000, UL)
|
|
// 0x1001+4*i 1B/input RW clicintie[i]
|
|
#define ECLIC_INT_IE_OFFSET _AC(0x1001, UL)
|
|
// 0x1002+4*i 1B/input RW clicintattr[i]
|
|
#define ECLIC_INT_ATTR_OFFSET _AC(0x1002, UL)
|
|
|
|
#define ECLIC_INT_ATTR_SHV 0x01
|
|
#define ECLIC_INT_ATTR_TRIG_LEVEL 0x00
|
|
#define ECLIC_INT_ATTR_TRIG_EDGE 0x02
|
|
#define ECLIC_INT_ATTR_TRIG_POS 0x00
|
|
#define ECLIC_INT_ATTR_TRIG_NEG 0x04
|
|
#define ECLIC_INT_ATTR_MACH_MODE 0xC0
|
|
|
|
// 0x1003+4*i 1B/input RW clicintctl[i]
|
|
#define ECLIC_INT_CTRL_OFFSET _AC(0x1003, UL)
|
|
//
|
|
// ...
|
|
//
|
|
#define ECLIC_ADDR_BASE SOC_ECLIC_CTRL_ADDR
|
|
|
|
#define ECLIC_INTERNAL_NUM_INTERRUPTS 19
|
|
#define ECLIC_NUM_INTERRUPTS (SOC_ECLIC_NUM_INTERRUPTS + ECLIC_INTERNAL_NUM_INTERRUPTS)
|
|
|
|
#define ECLIC_CFG_NLBITS_MASK _AC(0x1E, UL)
|
|
#define ECLIC_CFG_NLBITS_LSB (1u)
|
|
#define ECLIC_INFO_CLICINTCTLBITS_MASK _AC(0x1E00000, UL)
|
|
#define ECLIC_INFO_CLICINTCTLBITS_LSB (21u)
|
|
|
|
#define ECLIC_INT_MSIP 3
|
|
#define ECLIC_INT_MTIP 7
|
|
#define ECLIC_INT_MEIP 11
|
|
#define ECLIC_INT_BUS_RESP_ERR 17
|
|
|
|
#define BUS_RESP_ERR_HANDLER eclic_inner_irq17_handler
|
|
#define BUTTON_1_HANDLER eclic_irq49_handler
|
|
|
|
#define MTIME_HANDLER eclic_mtip_handler
|
|
#define SSIP_HANDLER eclic_ssip_handler
|
|
#define MSIP_HANDLER eclic_msip_handler
|
|
#define UTIP_HANDLER eclic_utip_handler
|
|
#define STIP_HANDLER eclic_stip_handler
|
|
#define IRQ7_HANDLER eclic_irq7_handler
|
|
#define UEIP_HANDLER eclic_ueip_handler
|
|
#define SEIP_HANDLER eclic_seip_handler
|
|
#define MEIP_HANDLER eclic_meip_handler
|
|
#define IMECCI_HANDLER eclic_imecci_handler
|
|
#define BWEI_HANDLER eclic_bwei_handler
|
|
#define PMOVI_HANDLER eclic_pmovi_handler
|
|
|
|
#endif
|