diff options
Diffstat (limited to 'firmware/target/arm/s5l8702/system-s5l8702.c')
-rw-r--r-- | firmware/target/arm/s5l8702/system-s5l8702.c | 48 |
1 files changed, 4 insertions, 44 deletions
diff --git a/firmware/target/arm/s5l8702/system-s5l8702.c b/firmware/target/arm/s5l8702/system-s5l8702.c index f93a6a70ec..6a06c29694 100644 --- a/firmware/target/arm/s5l8702/system-s5l8702.c +++ b/firmware/target/arm/s5l8702/system-s5l8702.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include "system-target.h" | 25 | #include "system-target.h" |
26 | #include "pmu-target.h" | 26 | #include "pmu-target.h" |
27 | #include "gpio-s5l8702.h" | 27 | #include "gpio-s5l8702.h" |
28 | #include "dma-s5l8702.h" | ||
28 | 29 | ||
29 | #define default_interrupt(name) \ | 30 | #define default_interrupt(name) \ |
30 | extern __attribute__((weak,alias("UIRQ"))) void name (void) | 31 | extern __attribute__((weak,alias("UIRQ"))) void name (void) |
@@ -55,22 +56,8 @@ default_interrupt(INT_IRQ12); | |||
55 | default_interrupt(INT_IRQ13); | 56 | default_interrupt(INT_IRQ13); |
56 | default_interrupt(INT_IRQ14); | 57 | default_interrupt(INT_IRQ14); |
57 | default_interrupt(INT_IRQ15); | 58 | default_interrupt(INT_IRQ15); |
58 | default_interrupt(INT_DMAC0C0); | 59 | default_interrupt(INT_DMAC0); |
59 | default_interrupt(INT_DMAC0C1); | 60 | default_interrupt(INT_DMAC1); |
60 | default_interrupt(INT_DMAC0C2); | ||
61 | default_interrupt(INT_DMAC0C3); | ||
62 | default_interrupt(INT_DMAC0C4); | ||
63 | default_interrupt(INT_DMAC0C5); | ||
64 | default_interrupt(INT_DMAC0C6); | ||
65 | default_interrupt(INT_DMAC0C7); | ||
66 | default_interrupt(INT_DMAC1C0); | ||
67 | default_interrupt(INT_DMAC1C1); | ||
68 | default_interrupt(INT_DMAC1C2); | ||
69 | default_interrupt(INT_DMAC1C3); | ||
70 | default_interrupt(INT_DMAC1C4); | ||
71 | default_interrupt(INT_DMAC1C5); | ||
72 | default_interrupt(INT_DMAC1C6); | ||
73 | default_interrupt(INT_DMAC1C7); | ||
74 | default_interrupt(INT_IRQ18); | 61 | default_interrupt(INT_IRQ18); |
75 | default_interrupt(INT_USB_FUNC); | 62 | default_interrupt(INT_USB_FUNC); |
76 | default_interrupt(INT_IRQ20); | 63 | default_interrupt(INT_IRQ20); |
@@ -141,34 +128,6 @@ void INT_TIMER32() | |||
141 | if ((THCON >> 12) & 0x7 & tstat) INT_TIMERH(); | 128 | if ((THCON >> 12) & 0x7 & tstat) INT_TIMERH(); |
142 | } | 129 | } |
143 | 130 | ||
144 | void INT_DMAC0(void) ICODE_ATTR; | ||
145 | void INT_DMAC0() | ||
146 | { | ||
147 | uint32_t intsts = DMAC0INTSTS; | ||
148 | if (intsts & 1) INT_DMAC0C0(); | ||
149 | if (intsts & 2) INT_DMAC0C1(); | ||
150 | if (intsts & 4) INT_DMAC0C2(); | ||
151 | if (intsts & 8) INT_DMAC0C3(); | ||
152 | if (intsts & 0x10) INT_DMAC0C4(); | ||
153 | if (intsts & 0x20) INT_DMAC0C5(); | ||
154 | if (intsts & 0x40) INT_DMAC0C6(); | ||
155 | if (intsts & 0x80) INT_DMAC0C7(); | ||
156 | } | ||
157 | |||
158 | void INT_DMAC1(void) ICODE_ATTR; | ||
159 | void INT_DMAC1() | ||
160 | { | ||
161 | uint32_t intsts = DMAC1INTSTS; | ||
162 | if (intsts & 1) INT_DMAC1C0(); | ||
163 | if (intsts & 2) INT_DMAC1C1(); | ||
164 | if (intsts & 4) INT_DMAC1C2(); | ||
165 | if (intsts & 8) INT_DMAC1C3(); | ||
166 | if (intsts & 0x10) INT_DMAC1C4(); | ||
167 | if (intsts & 0x20) INT_DMAC1C5(); | ||
168 | if (intsts & 0x40) INT_DMAC1C6(); | ||
169 | if (intsts & 0x80) INT_DMAC1C7(); | ||
170 | } | ||
171 | |||
172 | static void (* const irqvector[])(void) = | 131 | static void (* const irqvector[])(void) = |
173 | { | 132 | { |
174 | INT_EXT0,INT_EXT1,INT_EXT2,INT_EXT3,INT_IRQ4,INT_IRQ5,INT_IRQ6,INT_TIMER32, | 133 | INT_EXT0,INT_EXT1,INT_EXT2,INT_EXT3,INT_IRQ4,INT_IRQ5,INT_IRQ6,INT_TIMER32, |
@@ -225,6 +184,7 @@ void system_init(void) | |||
225 | { | 184 | { |
226 | /*gpio_init();*/ | 185 | /*gpio_init();*/ |
227 | pmu_init(); | 186 | pmu_init(); |
187 | dma_init(); | ||
228 | VIC0INTENABLE = 1 << IRQ_WHEEL; | 188 | VIC0INTENABLE = 1 << IRQ_WHEEL; |
229 | VIC0INTENABLE = 1 << IRQ_ATA; | 189 | VIC0INTENABLE = 1 << IRQ_ATA; |
230 | VIC1INTENABLE = 1 << (IRQ_MMC - 32); | 190 | VIC1INTENABLE = 1 << (IRQ_MMC - 32); |