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