xref: /linux/Documentation/ABI/testing/sysfs-firmware-acpi (revision 5229e87d59cef33539322948bd8e3b5a537f7c97)
1*5229e87dSLen BrownWhat:		/sys/firmware/acpi/interrupts/
2*5229e87dSLen BrownDate:		February 2008
3*5229e87dSLen BrownContact:	Len Brown <lenb@kernel.org>
4*5229e87dSLen BrownDescription:
5*5229e87dSLen Brown		All ACPI interrupts are handled via a single IRQ,
6*5229e87dSLen Brown		the System Control Interrupt (SCI), which appears
7*5229e87dSLen Brown		as "acpi" in /proc/interrupts.
8*5229e87dSLen Brown
9*5229e87dSLen Brown		However, one of the main functions of ACPI is to make
10*5229e87dSLen Brown		the platform understand random hardware without
11*5229e87dSLen Brown		special driver support.  So while the SCI handles a few
12*5229e87dSLen Brown		well known (fixed feature) interrupts sources, such
13*5229e87dSLen Brown		as the power button, it can also handle a variable
14*5229e87dSLen Brown		number of a "General Purpose Events" (GPE).
15*5229e87dSLen Brown
16*5229e87dSLen Brown		A GPE vectors to a specified handler in AML, which
17*5229e87dSLen Brown		can do a anything the BIOS writer wants from
18*5229e87dSLen Brown		OS context.  GPE 0x12, for example, would vector
19*5229e87dSLen Brown		to a level or edge handler called _L12 or _E12.
20*5229e87dSLen Brown		The handler may do its business and return.
21*5229e87dSLen Brown		Or the handler may send send a Notify event
22*5229e87dSLen Brown		to a Linux device driver registered on an ACPI device,
23*5229e87dSLen Brown		such as a battery, or a processor.
24*5229e87dSLen Brown
25*5229e87dSLen Brown		To figure out where all the SCI's are coming from,
26*5229e87dSLen Brown		/sys/firmware/acpi/interrupts contains a file listing
27*5229e87dSLen Brown		every possible source, and the count of how many
28*5229e87dSLen Brown		times it has triggered.
29*5229e87dSLen Brown
30*5229e87dSLen Brown		$ cd /sys/firmware/acpi/interrupts
31*5229e87dSLen Brown		$ grep . *
32*5229e87dSLen Brown		error:0
33*5229e87dSLen Brown		ff_gbl_lock:0
34*5229e87dSLen Brown		ff_pmtimer:0
35*5229e87dSLen Brown		ff_pwr_btn:0
36*5229e87dSLen Brown		ff_rt_clk:0
37*5229e87dSLen Brown		ff_slp_btn:0
38*5229e87dSLen Brown		gpe00:0
39*5229e87dSLen Brown		gpe01:0
40*5229e87dSLen Brown		gpe02:0
41*5229e87dSLen Brown		gpe03:0
42*5229e87dSLen Brown		gpe04:0
43*5229e87dSLen Brown		gpe05:0
44*5229e87dSLen Brown		gpe06:0
45*5229e87dSLen Brown		gpe07:0
46*5229e87dSLen Brown		gpe08:0
47*5229e87dSLen Brown		gpe09:174
48*5229e87dSLen Brown		gpe0A:0
49*5229e87dSLen Brown		gpe0B:0
50*5229e87dSLen Brown		gpe0C:0
51*5229e87dSLen Brown		gpe0D:0
52*5229e87dSLen Brown		gpe0E:0
53*5229e87dSLen Brown		gpe0F:0
54*5229e87dSLen Brown		gpe10:0
55*5229e87dSLen Brown		gpe11:60
56*5229e87dSLen Brown		gpe12:0
57*5229e87dSLen Brown		gpe13:0
58*5229e87dSLen Brown		gpe14:0
59*5229e87dSLen Brown		gpe15:0
60*5229e87dSLen Brown		gpe16:0
61*5229e87dSLen Brown		gpe17:0
62*5229e87dSLen Brown		gpe18:0
63*5229e87dSLen Brown		gpe19:7
64*5229e87dSLen Brown		gpe1A:0
65*5229e87dSLen Brown		gpe1B:0
66*5229e87dSLen Brown		gpe1C:0
67*5229e87dSLen Brown		gpe1D:0
68*5229e87dSLen Brown		gpe1E:0
69*5229e87dSLen Brown		gpe1F:0
70*5229e87dSLen Brown		gpe_all:241
71*5229e87dSLen Brown		sci:241
72*5229e87dSLen Brown
73*5229e87dSLen Brown		sci - The total number of times the ACPI SCI
74*5229e87dSLen Brown		has claimed an interrupt.
75*5229e87dSLen Brown
76*5229e87dSLen Brown		gpe_all - count of SCI caused by GPEs.
77*5229e87dSLen Brown
78*5229e87dSLen Brown		gpeXX - count for individual GPE source
79*5229e87dSLen Brown
80*5229e87dSLen Brown		ff_gbl_lock - Global Lock
81*5229e87dSLen Brown
82*5229e87dSLen Brown		ff_pmtimer - PM Timer
83*5229e87dSLen Brown
84*5229e87dSLen Brown		ff_pwr_btn - Power Button
85*5229e87dSLen Brown
86*5229e87dSLen Brown		ff_rt_clk - Real Time Clock
87*5229e87dSLen Brown
88*5229e87dSLen Brown		ff_slp_btn - Sleep Button
89*5229e87dSLen Brown
90*5229e87dSLen Brown		error - an interrupt that can't be accounted for above.
91*5229e87dSLen Brown
92*5229e87dSLen Brown		Root has permission to clear any of these counters.  Eg.
93*5229e87dSLen Brown		# echo 0 > gpe11
94*5229e87dSLen Brown
95*5229e87dSLen Brown		All counters can be cleared by clearing the total "sci":
96*5229e87dSLen Brown		# echo 0 > sci
97*5229e87dSLen Brown
98*5229e87dSLen Brown		None of these counters has an effect on the function
99*5229e87dSLen Brown		of the system, they are simply statistics.
100