diff options
Diffstat (limited to 'c/src/lib/libbsp/arm/raspberrypi/irq/irq.c')
-rw-r--r-- | c/src/lib/libbsp/arm/raspberrypi/irq/irq.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/arm/raspberrypi/irq/irq.c b/c/src/lib/libbsp/arm/raspberrypi/irq/irq.c index 7b3b2be3cb..f792c57ffc 100644 --- a/c/src/lib/libbsp/arm/raspberrypi/irq/irq.c +++ b/c/src/lib/libbsp/arm/raspberrypi/irq/irq.c @@ -91,6 +91,11 @@ void bsp_interrupt_dispatch(void) { vector = BCM2835_IRQ_ID_SPI; } + /* USB */ + else if ( BCM2835_REG(BCM2835_IRQ_PENDING1) & BCM2835_BIT(9) ) + { + vector = BCM2835_IRQ_ID_USB; + } if ( vector < 255 ) { @@ -144,6 +149,11 @@ rtems_status_code bsp_interrupt_vector_enable(rtems_vector_number vector) { BCM2835_REG(BCM2835_IRQ_ENABLE2) = BCM2835_BIT(22); } + /* USB */ + else if ( vector == BCM2835_IRQ_ID_USB ) + { + BCM2835_REG(BCM2835_IRQ_ENABLE1) = BCM2835_BIT(9); + } rtems_interrupt_enable(level); @@ -194,6 +204,11 @@ rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector) { BCM2835_REG(BCM2835_IRQ_DISABLE2) = BCM2835_BIT(22); } + /* USB */ + else if ( vector == BCM2835_IRQ_ID_USB ) + { + BCM2835_REG(BCM2835_IRQ_DISABLE1) = BCM2835_BIT(9); + } rtems_interrupt_enable(level); |