diff --git a/arch/avr/src/at91uc3/at91uc3_internal.h b/arch/avr/src/at91uc3/at91uc3_internal.h index 7825fd8eedf..d429df50a8c 100755 --- a/arch/avr/src/at91uc3/at91uc3_internal.h +++ b/arch/avr/src/at91uc3/at91uc3_internal.h @@ -277,7 +277,7 @@ EXTERN bool at91uc3_gpioread(uint16_t pinset); ****************************************************************************/ #ifdef CONFIG_AVR32_GPIOIRQ -EXTERN void gpio_irqinitialize(void); +EXTERN void weak_function gpio_irqinitialize(void); #endif /**************************************************************************** diff --git a/arch/avr/src/at91uc3/at91uc3_irq.c b/arch/avr/src/at91uc3/at91uc3_irq.c index c5bdeafbd7a..85945c03092 100644 --- a/arch/avr/src/at91uc3/at91uc3_irq.c +++ b/arch/avr/src/at91uc3/at91uc3_irq.c @@ -230,7 +230,12 @@ void up_irqinitialize(void) /* Initialize GPIO interrupt facilities */ #ifdef CONFIG_AVR32_GPIOIRQ - gpio_irqinitialize(); +#ifdef CONFIG_HAVE_WEAKFUNCTIONS + if (gpio_irqinitialize != NULL) +#endif + { + gpio_irqinitialize(); + } #endif /* And finally, enable interrupts */