primecell.h 1.5 KB

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