version 1.4, 2007/11/02 12:36:13 |
version 1.5, 2007/11/02 13:27:42 |
|
|
#include <arch/testarm/dev/tairqcreg.h> |
#include <arch/testarm/dev/tairqcreg.h> |
#include <libkern/printf.h> |
#include <libkern/printf.h> |
|
|
|
#define TAIRQC_DEBUG |
|
|
|
#ifdef TAIRQC_DEBUG |
|
#define DPRINTF(x...) do { printf(x); } while (0) |
|
#else |
|
#define DPRINTF(x...) { } |
|
#endif |
|
|
/* |
/* |
* testarm Interrupt Controller Unit support. |
* testarm Interrupt Controller Unit support. |
*/ |
*/ |
|
|
tairqc_mask_intr(uint8_t intrno) |
tairqc_mask_intr(uint8_t intrno) |
{ |
{ |
bus_write_1(irqcdd->td_bushandlep, irqcdd->td_ioaddr + TAIRQC_OFF_IRQMASK, intrno); |
bus_write_1(irqcdd->td_bushandlep, irqcdd->td_ioaddr + TAIRQC_OFF_IRQMASK, intrno); |
|
DPRINTF("tairqc_mask_intr: masked interrupt no. %d (status=0x%x)\n", intrno, tairqc_intrstatus()); |
} |
} |
|
|
|
|
|
|
tairqc_unmask_intr(uint8_t intrno) |
tairqc_unmask_intr(uint8_t intrno) |
{ |
{ |
bus_write_1(irqcdd->td_bushandlep, irqcdd->td_ioaddr + TAIRQC_OFF_IRQUNMASK, intrno); |
bus_write_1(irqcdd->td_bushandlep, irqcdd->td_ioaddr + TAIRQC_OFF_IRQUNMASK, intrno); |
|
DPRINTF("tairqc_unmask_intr: unmasked interrupt no. %d (status=0x%x)\n", intrno, tairqc_intrstatus()); |
} |
} |
|
|
|
|
|
|
/* read intr status; one bit per intr source */ |
/* read intr status; one bit per intr source */ |
irqstatus = tairqc_intrstatus(); |
irqstatus = tairqc_intrstatus(); |
|
|
printf("irqc: irq status 0x%x\n", irqstatus); |
DPRINTF("tairqc_itq: got interrupt (status=0x%x)\n", irqstatus); |
} |
} |
|
|