intel,irq-router.txt 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. Intel Interrupt Router Device Binding
  2. =====================================
  3. The device tree node which describes the operation of the Intel Interrupt Router
  4. device is as follows:
  5. Required properties :
  6. - reg : Specifies the interrupt router's PCI configuration space address as
  7. defined by the Open Firmware spec.
  8. - compatible = "intel,irq-router"
  9. - intel,pirq-config : Specifies the IRQ routing register programming mechanism.
  10. Valid values are:
  11. "pci": IRQ routing is controlled by PCI configuration registers
  12. "ibase": IRQ routing is in the memory-mapped IBASE register block
  13. - intel,ibase-offset : IBASE register offset in the interrupt router's PCI
  14. configuration space, required only if intel,pirq-config = "ibase".
  15. - intel,actl-8bit : If ACTL (ACPI control) register width is 8-bit, this must
  16. be specified. The 8-bit ACTL register is seen on ICH series chipset, like
  17. ICH9/Panther Point/etc. On Atom chipset it is a 32-bit register.
  18. - intel,actl-addr : ACTL (ACPI control) register offset. ACTL can be either
  19. in the interrupt router's PCI configuration space, or IBASE.
  20. - intel,pirq-link : Specifies the PIRQ link information with two cells. The
  21. first cell is the register offset that controls the first PIRQ link routing.
  22. The second cell is the total number of PIRQ links the router supports.
  23. - intel,pirq-mask : Specifies the IRQ mask representing the 16 IRQs in the
  24. 8259 PIC. Bit N is 1 means IRQ N is available to be routed.
  25. - intel,pirq-routing : Specifies all PCI devices' IRQ routing information,
  26. encoded as 3 cells a group for a device. The first cell is the device's PCI
  27. bus number, device number and function number encoding with PCI_BDF() macro.
  28. The second cell is the PCI interrupt pin used by this device. The last cell
  29. is which PIRQ line the PCI interrupt pin is routed to.
  30. Example
  31. -------
  32. #include <dt-bindings/interrupt-router/intel-irq.h>
  33. irq-router@1f,0 {
  34. reg = <0x0000f800 0 0 0 0>;
  35. compatible = "intel,irq-router";
  36. intel,pirq-config = "pci";
  37. intel,pirq-link = <0x60 8>;
  38. intel,pirq-mask = <0xdef8>;
  39. intel,pirq-routing = <
  40. PCI_BDF(0, 2, 0) INTA PIRQA
  41. PCI_BDF(0, 3, 0) INTA PIRQB
  42. PCI_BDF(0, 8, 0) INTA PIRQC
  43. PCI_BDF(0, 8, 1) INTB PIRQD
  44. PCI_BDF(1, 6, 0) INTA PIRQE
  45. PCI_BDF(1, 6, 1) INTB PIRQF
  46. PCI_BDF(1, 6, 2) INTC PIRQG
  47. PCI_BDF(1, 6, 3) INTD PIRQH
  48. >;
  49. };