aspeed_vic.h 969 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. /*
  2. * ASPEED Interrupt Controller (New)
  3. *
  4. * Andrew Jeffery <andrew@aj.id.au>
  5. *
  6. * Copyright 2016 IBM Corp.
  7. *
  8. * This code is licensed under the GPL version 2 or later. See
  9. * the COPYING file in the top-level directory.
  10. *
  11. * Need to add SVIC and CVIC support
  12. */
  13. #ifndef ASPEED_VIC_H
  14. #define ASPEED_VIC_H
  15. #include "hw/sysbus.h"
  16. #include "qom/object.h"
  17. #define TYPE_ASPEED_VIC "aspeed.vic"
  18. OBJECT_DECLARE_SIMPLE_TYPE(AspeedVICState, ASPEED_VIC)
  19. #define ASPEED_VIC_NR_IRQS 51
  20. struct AspeedVICState {
  21. /*< private >*/
  22. SysBusDevice parent_obj;
  23. /*< public >*/
  24. MemoryRegion iomem;
  25. qemu_irq irq;
  26. qemu_irq fiq;
  27. uint64_t level;
  28. uint64_t raw;
  29. uint64_t select;
  30. uint64_t enable;
  31. uint64_t trigger;
  32. /* 0=edge, 1=level */
  33. uint64_t sense;
  34. /* 0=single-edge, 1=dual-edge */
  35. uint64_t dual_edge;
  36. /* 0=low-sensitive/falling-edge, 1=high-sensitive/rising-edge */
  37. uint64_t event;
  38. };
  39. #endif /* ASPEED_VIC_H */