intel-ioapic.h 1.4 KB

12345678910111213141516171819202122232425262728293031
  1. /*
  2. * Copyright (c) 2017 Linaro Limited
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. */
  6. #ifndef ZEPHYR_INCLUDE_DT_BINDINGS_INTERRUPT_CONTROLLER_INTEL_IOAPIC_H_
  7. #define ZEPHYR_INCLUDE_DT_BINDINGS_INTERRUPT_CONTROLLER_INTEL_IOAPIC_H_
  8. #define IRQ_TYPE_LEVEL 0x00008000
  9. #define IRQ_TYPE_EDGE 0x00000000
  10. #define IRQ_TYPE_LOW 0x00002000
  11. #define IRQ_TYPE_HIGH 0x00000000
  12. #define IRQ_DELIVERY_LOWEST 0x00000100
  13. #define IRQ_DELIVERY_FIXED 0x00000000
  14. /*
  15. * for most device interrupts, lowest priority delivery is preferred
  16. * since this ensures only one CPU gets the interrupt in SMP systems.
  17. */
  18. #define IRQ_TYPE_LOWEST_EDGE_RISING (IRQ_DELIVERY_LOWEST | IRQ_TYPE_EDGE | IRQ_TYPE_HIGH)
  19. #define IRQ_TYPE_LOWEST_EDGE_FALLING (IRQ_DELIVERY_LOWEST | IRQ_TYPE_EDGE | IRQ_TYPE_LOW)
  20. #define IRQ_TYPE_LOWEST_LEVEL_HIGH (IRQ_DELIVERY_LOWEST | IRQ_TYPE_LEVEL | IRQ_TYPE_HIGH)
  21. #define IRQ_TYPE_LOWEST_LEVEL_LOW (IRQ_DELIVERY_LOWEST | IRQ_TYPE_LEVEL | IRQ_TYPE_LOW)
  22. /* for interrupts that want to be delivered to all CPUs, e.g. HPET */
  23. #define IRQ_TYPE_FIXED_EDGE_RISING (IRQ_DELIVERY_FIXED | IRQ_TYPE_EDGE | IRQ_TYPE_HIGH)
  24. #define IRQ_TYPE_FIXED_EDGE_FALLING (IRQ_DELIVERY_FIXED | IRQ_TYPE_EDGE | IRQ_TYPE_LOW)
  25. #define IRQ_TYPE_FIXED_LEVEL_HIGH (IRQ_DELIVERY_FIXED | IRQ_TYPE_LEVEL | IRQ_TYPE_HIGH)
  26. #define IRQ_TYPE_FIXED_LEVEL_LOW (IRQ_DELIVERY_FIXED | IRQ_TYPE_LEVEL | IRQ_TYPE_LOW)
  27. #endif