Merge tag 'jfs-4.13' of git://github.com/kleikamp/linux-shaggy
[platform/kernel/linux-starfive.git] / Documentation / IRQ.txt
1 ===============
2 What is an IRQ?
3 ===============
4
5 An IRQ is an interrupt request from a device.
6 Currently they can come in over a pin, or over a packet.
7 Several devices may be connected to the same pin thus
8 sharing an IRQ.
9
10 An IRQ number is a kernel identifier used to talk about a hardware
11 interrupt source.  Typically this is an index into the global irq_desc
12 array, but except for what linux/interrupt.h implements the details
13 are architecture specific.
14
15 An IRQ number is an enumeration of the possible interrupt sources on a
16 machine.  Typically what is enumerated is the number of input pins on
17 all of the interrupt controller in the system.  In the case of ISA
18 what is enumerated are the 16 input pins on the two i8259 interrupt
19 controllers.
20
21 Architectures can assign additional meaning to the IRQ numbers, and
22 are encouraged to in the case  where there is any manual configuration
23 of the hardware involved.  The ISA IRQs are a classic example of
24 assigning this kind of additional meaning.