sdk-hwV1.3/lichee/melis-v3.0/source/ekernel/arch/riscv/rv32/e907/soc.h

172 lines
9.9 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* Copyright (c) 2019-2025 Allwinner Technology Co., Ltd. ALL rights reserved.
*
* Allwinner is a trademark of Allwinner Technology Co.,Ltd., registered in
* the the People's Republic of China and other countries.
* All Allwinner Technology Co.,Ltd. trademarks are used with permission.
*
* DISCLAIMER
* THIRD PARTY LICENCES MAY BE REQUIRED TO IMPLEMENT THE SOLUTION/PRODUCT.
* IF YOU NEED TO INTEGRATE THIRD PARTYS TECHNOLOGY (SONY, DTS, DOLBY, AVS OR MPEGLA, ETC.)
* IN ALLWINNERSSDK OR PRODUCTS, YOU SHALL BE SOLELY RESPONSIBLE TO OBTAIN
* ALL APPROPRIATELY REQUIRED THIRD PARTY LICENCES.
* ALLWINNER SHALL HAVE NO WARRANTY, INDEMNITY OR OTHER OBLIGATIONS WITH RESPECT TO MATTERS
* COVERED UNDER ANY REQUIRED THIRD PARTY LICENSE.
* YOU ARE SOLELY RESPONSIBLE FOR YOUR USAGE OF THIRD PARTYS TECHNOLOGY.
*
*
* THIS SOFTWARE IS PROVIDED BY ALLWINNER"AS IS" AND TO THE MAXIMUM EXTENT
* PERMITTED BY LAW, ALLWINNER EXPRESSLY DISCLAIMS ALL WARRANTIES OF ANY KIND,
* WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING WITHOUT LIMITATION REGARDING
* THE TITLE, NON-INFRINGEMENT, ACCURACY, CONDITION, COMPLETENESS, PERFORMANCE
* OR MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
* IN NO EVENT SHALL ALLWINNER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
* LOSS OF USE, DATA, OR PROFITS, OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _SOC_H_
#define _SOC_H_
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifndef IHS_VALUE
#define IHS_VALUE (24000000)
#endif
#ifndef EHS_VALUE
#define EHS_VALUE (24000000)
#endif
/* ------------------------- Interrupt Number Definition ------------------------ */
typedef enum IRQn
{
NMI_EXPn = -2, /* NMI Exception */
/* ---------------------- SmartL Specific Interrupt Numbers --------------------- */
Machine_Software_IRQn = 3, /* Machine software interrupt */
User_Timer_IRQn = 4, /* User timer interrupt */
Supervisor_Timer_IRQn = 5, /* Supervisor timer interrupt */
CORET_IRQn = 7, /* core Timer Interrupt */
Machine_External_IRQn = 11, /* Machine external interrupt */
CPUX_MBOX_CPUX_IRQn = 16, /* CPUX MSGBOX READ IRQ FOR CPUX */
CPUX_MBOX_E907_IRQn = 17, /* CPUX MSGBOX READ IRQ FOR E907 */
UART0_IRQn = 18, /* uart0 Interrupt */
UART1_IRQn = 19, /* uart1 Interrupt */
UART2_IRQn = 20, /* uart2 Interrupt */
UART3_IRQn = 21, /* uart3 Interrupt */
TWI0_IRQn = 25, /* twi0 Interrupt */
TWI1_IRQn = 26, /* twi1 Interrupt */
TWI2_IRQn = 27, /* twi2 Interrupt */
TWI3_IRQn = 28, /* twi3 Interrupt */
TWI4_IRQn = 29, /* twi4 Interrupt */
SPI0_IRQn = 31, /* spi0 Interrupt */
SPI1_IRQn = 32, /* spi1 Interrupt */
SPI2_IRQn = 33, /* spi2 Interrupt */
PWM_IRQn = 34, /* pwm Interrupt */
SPI_FLASH_IRQn = 35, /* spi flash Interrupt */
WIEGAND_IRQn = 36, /* wiegand Interrupt */
SPI3_IRQn = 37, /* spi3 Interrupt */
DMIC_IRQn = 40, /* dmic Interrupt */
AUDIO_CODEC_IRQn = 41, /* audio codec Interrupt */
I2S_PCM0_IRQn = 42, /* i2s pcm0 Interrupt */
I2S_PCM1_IRQn = 43, /* i2s pcm1 Interrupt */
USB_OTG_IRQn = 45, /* usb otg Interrupt */
USB_EHCI_IRQn = 46, /* usb ehci Interrupt */
USB_OHCI_IRQn = 47, /* usb ohci Interrupt */
SMHC0_IRQn = 56, /* smhc0 Interrupt */
SMHC1_IRQn = 57, /* smhc1 Interrupt */
SMHC2_IRQn = 58, /* smhc2 Interrupt */
MSI_IRQn = 59, /* msi Interrupt */
SMC_IRQn = 60, /* smc Interrupt */
GMAC_IRQn = 62, /* gmac Interrupt */
CCU_FERR_IRQn = 64, /* ccu ferr Interrupt */
AHB_HREADY_TIME_OUT_IRQn = 65, /* ahb hready time out Interrupt */
DMA_CPUX_NS_IRQn = 66, /* dma cpux ns Interrupt */
DMA_CPUX_S_IRQn = 67, /* dma cpux s Interrupt */
CE_NS_IRQn = 68, /* ce ns Interrupt */
CE_S_IRQn = 69, /* ce s Interrupt */
SPINLOCK_IRQn = 70, /* spinlock Interrupt */
HSTIMER0_IRQn = 71, /* hstimer0 Interrupt */
HSTIMER1_IRQn = 72, /* hstimer1 Interrupt */
GPADC_IRQn = 73, /* gpadc Interrupt */
THS_IRQn = 74, /* ths Interrupt */
TIMER0_IRQn = 75, /* timer0 Interrupt */
TIMER1_IRQn = 76, /* timer1 Interrupt */
TIMER2_IRQn = 77, /* timer2 Interrupt */
TIMER3_IRQn = 78, /* timer3 Interrupt */
WDG_IRQn = 79, /* wdg Interrupt */
IOMMU_IRQn = 80, /* iommu Interrupt */
NPU_IRQn = 81, /* npu Interrupt */
VE_IRQn = 82, /* ve Interrupt */
GPIOA_NS_IRQn = 83, /* gpioa ns Interrupt */
GPIOA_S_IRQn = 84, /* gpioa s Interrupt */
GPIOC_NS_IRQn = 87, /* gpioc ns Interrupt */
GPIOC_S_IRQn = 88, /* gpioc s Interrupt */
GPIOD_NS_IRQn = 89, /* gpiod ns Interrupt */
GPIOD_S_IRQn = 90, /* gpiod s Interrupt */
GPIOE_NS_IRQn = 91, /* gpioe ns Interrupt */
GPIOE_S_IRQn = 92, /* gpioe s Interrupt */
GPIOF_NS_IRQn = 93, /* gpiof ns Interrupt */
GPIOF_S_IRQn = 94, /* gpiof s Interrupt */
GPIOG_NS_IRQn = 95, /* gpiog ns Interrupt */
GPIOG_S_IRQn = 96, /* gpiog s Interrupt */
GPIOH_NS_IRQn = 97, /* gpioh ns Interrupt */
GPIOH_S_IRQn = 98, /* gpioh s Interrupt */
GPIOI_NS_IRQn = 99, /* gpioi ns Interrupt */
GPIOI_S_IRQn = 100, /* gpioi s Interrupt */
DMAC_E907_NS_IRQn = 101, /* dmac e907 ns Interrupt */
DMAC_E907_S_IRQn = 102, /* dmac e907 s Interrupt */
DE_IRQn = 103, /* de Interrupt */
G2D_IRQn = 105, /* g2d Interrupt */
LCD_IRQn = 106, /* lcd Interrupt */
DSI_IRQn = 108, /* dsi Interrupt */
CSI_DMA0_IRQn = 111, /* csi dma0 Interrupt */
CSI_DMA1_IRQn = 112, /* csi dma1 Interrupt */
CSI_DMA2_IRQn = 113, /* csi dma2 Interrupt */
CSI_DMA3_IRQn = 114, /* csi dma3 Interrupt */
CSI_PARSER0_IRQn = 116, /* csi parser0 Interrupt */
CSI_PARSER1_IRQn = 117, /* csi parser1 Interrupt */
CSI_PARSER2_IRQn = 118, /* csi parser2 Interrupt */
CSI_CMB_IRQn = 120, /* csi cmb Interrupt */
CSI_TDM_IRQn = 121, /* csi tdm Interrupt */
CSI_TOP_PKT_IRQn = 122, /* csi top pkt Interrupt */
CSI_ISP0_IRQn = 124, /* csi isp0 Interrupt */
CSI_ISP1_IRQn = 125, /* csi isp1 Interrupt */
CSI_ISP2_IRQn = 126, /* csi isp2 Interrupt */
CSI_ISP3_IRQn = 127, /* csi isp3 Interrupt */
VIPP0_IRQn = 128, /* vipp0 Interrupt */
VIPP1_IRQn = 129, /* vipp1 Interrupt */
VIPP2_IRQn = 130, /* vipp2 Interrupt */
VIPP3_IRQn = 131, /* vipp3 Interrupt */
E907_MBOX_E907_IRQn = 144, /* e907 msgbox read irq for e907 Interrupt */
E907_MBOX_CPUX_IRQn = 145, /* e907 msgbox write irq for cpux Interrupt */
E907_WDG_IRQn = 146, /* e907 wdg Interrupt */
E907_TIMER0_IRQn = 147, /* e907 timer0 Interrupt */
E907_TIMER1_IRQn = 148, /* e907 timer1 Interrupt */
E907_TIMER2_IRQn = 149, /* e907 timer2 Interrupt */
E907_TIMER3_IRQn = 150, /* e907 timer3 Interrupt */
NMI_IRQn = 152, /* nmi Interrupt */
PPU_IRQn = 153, /* ppu Interrupt */
ALARM_IRQn = 154, /* alarm Interrupt */
AHBS_HREADY_TIME_OUT_IRQn = 155, /* cpus ahb ready time out irq Interrupt */
PMC_IRQn = 156, /* pmc Interrupt */
GIC_C0_IRQn = 157, /* gic c0 Interrupt */
TWD_IRQn = 158, /* twd Interrupt */
}
IRQn_Type;
#ifdef __cplusplus
}
#endif
#endif /* _SOC_H_ */