phaser-ags / firmware /hal /interrupt.h
SNAPKITTYWEST's picture
October 2026 main drop: mirror from GitHub
829b19c verified
Raw History Blame Contribute Delete
783 Bytes
/*
* HAL — Interrupt Controller driver for OMAP3530 AINTC
* 96 interrupt lines, mapped to ARM IRQ/FIQ
*/
#ifndef FIRMWARE_HAL_INTERRUPT_H
#define FIRMWARE_HAL_INTERRUPT_H
#include "../common/types.h"
#include "../common/platform.h"
#define INTC_NUM_IRQS 96
#define INTC_NUM_MIR_REGS 3 /* 3 × 32 = 96 */
typedef void (*irq_handler_t)(uint8_t irq_num);
void intc_init(void);
void intc_enable_irq(uint8_t irq_num);
void intc_disable_irq(uint8_t irq_num);
void intc_set_irq_handler(uint8_t irq_num, irq_handler_t handler);
uint8_t intc_get_active_irq(void);
void intc_ack_irq(void);
void intc_enable(void);
void intc_disable(void);
/* Called from ARM IRQ exception handler */
void intc_handle_irq(void);
#endif /* FIRMWARE_HAL_INTERRUPT_H */