xref: /qemu/include/hw/arm/primecell.h (revision 2e9bdce56f307db907f4d6533d3a3917259f859f)
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