1 #ifndef PRIMECELL_H 2 #define PRIMECELL_H 3 4 /* Declarations for ARM PrimeCell based periperals. */ 5 /* Also includes some devices that are currently only used by the 6 ARM boards. */ 7 8 /* pl031.c */ 9 void pl031_init(uint32_t base, qemu_irq irq); 10 11 /* pl011.c */ 12 enum pl011_type { 13 PL011_ARM, 14 PL011_LUMINARY 15 }; 16 17 void pl011_init(uint32_t base, qemu_irq irq, CharDriverState *chr, 18 enum pl011_type type); 19 20 /* pl022.c */ 21 typedef int (*ssi_xfer_cb)(void *, int); 22 void pl022_init(uint32_t base, qemu_irq irq, ssi_xfer_cb xfer_cb, 23 void *opaque); 24 25 /* pl050.c */ 26 void pl050_init(uint32_t base, qemu_irq irq, int is_mouse); 27 28 /* pl061.c */ 29 void pl061_float_high(void *opaque, uint8_t mask); 30 qemu_irq *pl061_init(uint32_t base, qemu_irq irq, qemu_irq **out); 31 32 /* pl080.c */ 33 void *pl080_init(uint32_t base, qemu_irq irq, int nchannels); 34 35 /* pl181.c */ 36 void pl181_init(uint32_t base, BlockDriverState *bd, 37 qemu_irq irq0, qemu_irq irq1); 38 39 /* pl190.c */ 40 qemu_irq *pl190_init(uint32_t base, qemu_irq irq, qemu_irq fiq); 41 42 /* realview_gic.c */ 43 qemu_irq *realview_gic_init(uint32_t base, qemu_irq parent_irq); 44 45 /* mpcore.c */ 46 extern qemu_irq *mpcore_irq_init(qemu_irq *cpu_irq); 47 48 /* arm-timer.c */ 49 void sp804_init(uint32_t base, qemu_irq irq); 50 void icp_pit_init(uint32_t base, qemu_irq *pic, int irq); 51 52 /* arm_sysctl.c */ 53 void arm_sysctl_init(uint32_t base, uint32_t sys_id); 54 55 /* versatile_pci.c */ 56 PCIBus *pci_vpb_init(qemu_irq *pic, int irq, int realview); 57 58 #endif 59