#include "interrupts.h"
-/*
- * module static interrupt variable
- */
-
+// 'module global' interrupt variable
static t_interrupt interrupt;
/*
VICIntEnable=(1<<src_number);
switch(mode) {
- case INTERRUPT_FIQ:
+ case INTERRUPT_MODE_FIQ:
VICIntSelect|=(1<<src_number);
break;
- case INTERRUPT_VIRQ:
+ case INTERRUPT_MODE_VIRQ:
if(addr[p]&0x3f)
return INTERRUP_PRIORITY_USED;
*((volatile u32 *)(addr+p))=callback_addr;
*((volatile u32 *)(cntl+p))=src_number&0x1f+(1<<5);
- case INTERRUPT_IRQ:
+ case INTERRUPT_MODE_IRQ:
case default:
}
return INTERRUPT_SET;
}
+void interrupt_ext_ir_config(u8 eint,u8 wakeup,u8 mode,u8 polarity) {
+
+ if(eint>3)
+ return;
+
+ if(wakeup)
+ EXTWAKE=(EXTWAKE&0xf)|(1<<eint);
+
+ EXTMODE=(EXTMODE&0xf)|(mode<<eint);
+ EXTPOLAR=(EXTPOLAR&0xf)|(polarity<<eint);
+ EXTINT=(EXTINT&0xf)|(1<<eint);
+}
+
/*
* the actual exception handlers (as defined in startup.s)
*/