void up_enable_irq(int irq) { uintptr_t regaddr; uint32_t regval; uint32_t bit; if (lpc17_irqinfo(irq, ®addr, &bit, NVIC_ENA_OFFSET) == 0) { /* Modify the appropriate bit in the register to enable the interrupt. * For normal interrupts, we need to set the bit in the associated * Interrupt Set Enable register. For other exceptions, we need to * set the bit in the System Handler Control and State Register. */ if (irq >= LPC17_IRQ_EXTINT) { putreg32(bit, regaddr); } else { regval = getreg32(regaddr); regval |= bit; putreg32(regval, regaddr); } } #ifdef CONFIG_GPIO_IRQ else if (irq >= LPC17_VALID_FIRST0L) { /* Maybe it is a (derived) GPIO IRQ */ lpc17_gpioirqenable(irq); } #endif lpc17_dumpnvic("enable", irq); }
void up_enable_irq(int irq) { uint32_t regaddr; uint32_t regval; uint32_t bit; if (lpc17_irqinfo(irq, ®addr, &bit) == 0) { /* Set the appropriate bit in the register to enable the interrupt */ regval = getreg32(regaddr); regval |= bit; putreg32(regval, regaddr); } #ifdef CONFIG_GPIO_IRQ else if (irq >= LPC17_VALID_FIRST0L) { /* Maybe it is a (derived) GPIO IRQ */ lpc17_gpioirqenable(irq); } #endif lpc17_dumpnvic("enable", irq); }