10 #include <linux/kernel.h>
11 #include <linux/slab.h>
57 #define DMARSRA 0xfe090000
58 #define DMAOR 0xffa00040
59 #define DMACHCR0 0xffa0000c
60 #define DMABRGCR 0xfe3c0000
62 #define DMAOR_BRG 0x0000c000
63 #define DMAOR_DMEN 0x00000001
74 static inline void dmabrg_call_handler(
int i)
110 static void dmabrg_disable_irq(
unsigned int dmairq)
114 dcr &= ~(1 << ((dmairq > 1) ? dmairq + 22 : dmairq + 8));
118 static void dmabrg_enable_irq(
unsigned int dmairq)
122 dcr |= (1 << ((dmairq > 1) ? dmairq + 22 : dmairq + 8));
137 dmabrg_enable_irq(dmairq);
144 if (
likely(dmairq < 10)) {
145 dmabrg_disable_irq(dmairq);
152 static int __init dmabrg_init(
void)
178 "DMABRG USB address error",
NULL);
183 "DMABRG Transfer End",
NULL);
188 "DMABRG Transfer Half",
NULL);