2007-11-17 18:14:51 +01:00
|
|
|
#ifndef PRIMECELL_H
|
|
|
|
#define PRIMECELL_H
|
|
|
|
|
|
|
|
/* Declarations for ARM PrimeCell based periperals. */
|
|
|
|
/* Also includes some devices that are currently only used by the
|
|
|
|
ARM boards. */
|
|
|
|
|
|
|
|
/* pl031.c */
|
|
|
|
void pl031_init(uint32_t base, qemu_irq irq);
|
|
|
|
|
|
|
|
/* pl110.c */
|
2009-01-16 20:04:14 +01:00
|
|
|
void *pl110_init(uint32_t base, qemu_irq irq, int);
|
2007-11-17 18:14:51 +01:00
|
|
|
|
|
|
|
/* pl011.c */
|
|
|
|
enum pl011_type {
|
|
|
|
PL011_ARM,
|
|
|
|
PL011_LUMINARY
|
|
|
|
};
|
|
|
|
|
|
|
|
void pl011_init(uint32_t base, qemu_irq irq, CharDriverState *chr,
|
|
|
|
enum pl011_type type);
|
|
|
|
|
|
|
|
/* pl022.c */
|
2007-11-25 00:35:08 +01:00
|
|
|
typedef int (*ssi_xfer_cb)(void *, int);
|
|
|
|
void pl022_init(uint32_t base, qemu_irq irq, ssi_xfer_cb xfer_cb,
|
2007-11-17 18:14:51 +01:00
|
|
|
void *opaque);
|
|
|
|
|
|
|
|
/* pl050.c */
|
|
|
|
void pl050_init(uint32_t base, qemu_irq irq, int is_mouse);
|
|
|
|
|
|
|
|
/* pl061.c */
|
2007-11-25 00:35:08 +01:00
|
|
|
void pl061_float_high(void *opaque, uint8_t mask);
|
2007-11-17 18:14:51 +01:00
|
|
|
qemu_irq *pl061_init(uint32_t base, qemu_irq irq, qemu_irq **out);
|
|
|
|
|
|
|
|
/* pl080.c */
|
|
|
|
void *pl080_init(uint32_t base, qemu_irq irq, int nchannels);
|
|
|
|
|
|
|
|
/* pl181.c */
|
|
|
|
void pl181_init(uint32_t base, BlockDriverState *bd,
|
|
|
|
qemu_irq irq0, qemu_irq irq1);
|
|
|
|
|
|
|
|
/* pl190.c */
|
|
|
|
qemu_irq *pl190_init(uint32_t base, qemu_irq irq, qemu_irq fiq);
|
|
|
|
|
|
|
|
/* realview_gic.c */
|
|
|
|
qemu_irq *realview_gic_init(uint32_t base, qemu_irq parent_irq);
|
|
|
|
|
|
|
|
/* mpcore.c */
|
|
|
|
extern qemu_irq *mpcore_irq_init(qemu_irq *cpu_irq);
|
|
|
|
|
|
|
|
/* arm-timer.c */
|
|
|
|
void sp804_init(uint32_t base, qemu_irq irq);
|
|
|
|
void icp_pit_init(uint32_t base, qemu_irq *pic, int irq);
|
|
|
|
|
|
|
|
/* arm_sysctl.c */
|
|
|
|
void arm_sysctl_init(uint32_t base, uint32_t sys_id);
|
|
|
|
|
|
|
|
/* versatile_pci.c */
|
|
|
|
PCIBus *pci_vpb_init(qemu_irq *pic, int irq, int realview);
|
|
|
|
|
|
|
|
#endif
|