summaryrefslogtreecommitdiff
path: root/firmware/target/arm/as3525/system-as3525.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/as3525/system-as3525.c')
-rw-r--r--firmware/target/arm/as3525/system-as3525.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/firmware/target/arm/as3525/system-as3525.c b/firmware/target/arm/as3525/system-as3525.c
index 0b1884aa16..e3e41998ce 100644
--- a/firmware/target/arm/as3525/system-as3525.c
+++ b/firmware/target/arm/as3525/system-as3525.c
@@ -70,7 +70,8 @@ default_interrupt(RESERVED6); /* Interrupt 25 : unused */
70default_interrupt(RESERVED7); /* Interrupt 26 : unused */ 70default_interrupt(RESERVED7); /* Interrupt 26 : unused */
71default_interrupt(RESERVED8); /* Interrupt 27 : unused */ 71default_interrupt(RESERVED8); /* Interrupt 27 : unused */
72default_interrupt(RESERVED9); /* Interrupt 28 : unused */ 72default_interrupt(RESERVED9); /* Interrupt 28 : unused */
73default_interrupt(INT_GPIOA); 73/* INT_GPIOA is declared in this file */
74void INT_GPIOA(void);
74default_interrupt(INT_GPIOB); 75default_interrupt(INT_GPIOB);
75default_interrupt(INT_GPIOC); 76default_interrupt(INT_GPIOC);
76 77
@@ -144,6 +145,18 @@ static void setup_vic(void)
144 } 145 }
145} 146}
146 147
148void INT_GPIOA(void)
149{
150#ifdef HAVE_MULTIDRIVE
151 void sd_gpioa_isr(void);
152 sd_gpioa_isr();
153#endif
154#if (defined(HAVE_SCROLLWHEEL) && CONFIG_CPU != AS3525)
155 void button_gpioa_isr(void);
156 button_gpioa_isr();
157#endif
158}
159
147void irq_handler(void) 160void irq_handler(void)
148{ 161{
149 asm volatile( "stmfd sp!, {r0-r5,ip,lr} \n" /* Store context */ 162 asm volatile( "stmfd sp!, {r0-r5,ip,lr} \n" /* Store context */
@@ -348,6 +361,12 @@ void system_init(void)
348 ascodec_init(); 361 ascodec_init();
349 362
350#ifndef BOOTLOADER 363#ifndef BOOTLOADER
364 /* setup isr for microsd monitoring and for scrollwheel irq */
365#if defined(HAVE_MULTIDRIVE) || (defined(HAVE_SCROLLWHEEL) && CONFIG_CPU != AS3525)
366 VIC_INT_ENABLE = (INTERRUPT_GPIOA);
367 /* pin selection for irq happens in the drivers */
368#endif
369
351 /* Initialize power management settings */ 370 /* Initialize power management settings */
352 ascodec_write(AS3514_CVDD_DCDC3, AS314_CP_DCDC3_SETTING); 371 ascodec_write(AS3514_CVDD_DCDC3, AS314_CP_DCDC3_SETTING);
353#if CONFIG_TUNER 372#if CONFIG_TUNER