Loading...
Searching...
No Matches
VIC.h
1/*
2 * SPDX-FileCopyrightText: 2005-2008 by Thomas Hillebrandt and Heiko Will
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
8#include <stdbool.h>
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
18
19#define I_Bit 0x80
20#define F_Bit 0x40
21
22#define SYS32Mode 0x1F
23#define IRQ32Mode 0x12
24#define FIQ32Mode 0x11
25
26#define INTMode (FIQ32Mode | IRQ32Mode)
27
32#define HIGHEST_PRIORITY 0x01
33#define IRQP_RTIMER 1 /* FIQ_PRIORITY // TODO: investigate problems with rtimer and FIQ */
34#define IRQP_TIMER1 1
35#define IRQP_WATCHDOG 1
36#define IRQP_CLOCK 3
37#define IRQP_GPIO 4
38#define IRQP_RTC 8
39#define LOWEST_PRIORITY 0x0F
41
42#define WDT_INT 0
43#define SWI_INT 1
44#define ARM_CORE0_INT 2
45#define ARM_CORE1_INT 3
46#define TIMER0_INT 4
47#define TIMER1_INT 5
48#define UART0_INT 6
49#define UART1_INT 7
50#define PWM0_1_INT 8
51#define I2C0_INT 9
52#define SPI0_INT 10 /* SPI and SSP0 share VIC slot */
53#define SSP0_INT 10
54#define SSP1_INT 11
55#define PLL_INT 12
56#define RTC_INT 13
57#define EINT0_INT 14
58#define EINT1_INT 15
59#define EINT2_INT 16
60#define EINT3_INT 17
61#define ADC0_INT 18
62#define I2C1_INT 19
63#define BOD_INT 20
64#define EMAC_INT 21
65#define USB_INT 22
66#define CAN_INT 23
67#define MCI_INT 24
68#define GPDMA_INT 25
69#define TIMER2_INT 26
70#define TIMER3_INT 27
71#define UART2_INT 28
72#define UART3_INT 29
73#define I2C2_INT 30
74#define I2S_INT 31
75
76#define VECT_ADDR_INDEX 0x100
77#define VECT_CNTL_INDEX 0x200
78
79bool cpu_install_irq(int IntNumber, void *HandlerAddr, int Priority);
80
81#ifdef __cplusplus
82}
83#endif
84