allwinner-a10-pic.h 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. #ifndef ALLWINNER_A10_PIC_H
  2. #define ALLWINNER_A10_PIC_H
  3. #include "hw/sysbus.h"
  4. #include "qom/object.h"
  5. #define TYPE_AW_A10_PIC "allwinner-a10-pic"
  6. OBJECT_DECLARE_SIMPLE_TYPE(AwA10PICState, AW_A10_PIC)
  7. #define AW_A10_PIC_VECTOR 0
  8. #define AW_A10_PIC_BASE_ADDR 4
  9. #define AW_A10_PIC_PROTECT 8
  10. #define AW_A10_PIC_NMI 0xc
  11. #define AW_A10_PIC_IRQ_PENDING 0x10
  12. #define AW_A10_PIC_FIQ_PENDING 0x20
  13. #define AW_A10_PIC_SELECT 0x30
  14. #define AW_A10_PIC_ENABLE 0x40
  15. #define AW_A10_PIC_MASK 0x50
  16. #define AW_A10_PIC_INT_NR 95
  17. #define AW_A10_PIC_REG_NUM DIV_ROUND_UP(AW_A10_PIC_INT_NR, 32)
  18. struct AwA10PICState {
  19. /*< private >*/
  20. SysBusDevice parent_obj;
  21. /*< public >*/
  22. MemoryRegion iomem;
  23. qemu_irq parent_fiq;
  24. qemu_irq parent_irq;
  25. uint32_t vector;
  26. uint32_t base_addr;
  27. uint32_t protect;
  28. uint32_t nmi;
  29. uint32_t irq_pending[AW_A10_PIC_REG_NUM];
  30. uint32_t fiq_pending[AW_A10_PIC_REG_NUM];
  31. uint32_t select[AW_A10_PIC_REG_NUM];
  32. uint32_t enable[AW_A10_PIC_REG_NUM];
  33. uint32_t mask[AW_A10_PIC_REG_NUM];
  34. /*priority setting here*/
  35. };
  36. #endif