]> bbs.cooldavid.org Git - net-next-2.6.git/blame - Documentation/thinkpad-acpi.txt
ACPI: thinkpad-acpi: add input device support to hotkey subdriver
[net-next-2.6.git] / Documentation / thinkpad-acpi.txt
CommitLineData
643f12db 1 ThinkPad ACPI Extras Driver
1da177e4 2
643f12db 3 Version 0.14
54ae1501 4 April 21st, 2007
1da177e4
LT
5
6 Borislav Deianov <borislav@users.sf.net>
38f996ed 7 Henrique de Moraes Holschuh <hmh@hmh.eng.br>
1da177e4
LT
8 http://ibm-acpi.sf.net/
9
10
643f12db
HMH
11This is a Linux driver for the IBM and Lenovo ThinkPad laptops. It
12supports various features of these laptops which are accessible
13through the ACPI and ACPI EC framework, but not otherwise fully
14supported by the generic Linux ACPI drivers.
15
16This driver used to be named ibm-acpi until kernel 2.6.21 and release
170.13-20070314. It used to be in the drivers/acpi tree, but it was
18moved to the drivers/misc tree and renamed to thinkpad-acpi for kernel
192.6.22, and release 0.14.
1da177e4
LT
20
21
22Status
23------
24
25The features currently supported are the following (see below for
26detailed description):
27
28 - Fn key combinations
29 - Bluetooth enable and disable
837ca6dd 30 - video output switching, expansion control
1da177e4
LT
31 - ThinkLight on and off
32 - limited docking and undocking
33 - UltraBay eject
78f81cc4
BD
34 - CMOS control
35 - LED control
36 - ACPI sounds
37 - temperature sensors
38 - Experimental: embedded controller register dump
24f7ff0a
SS
39 - LCD brightness control
40 - Volume control
ecf2a80a 41 - Fan control and monitoring: fan speed, fan enable/disable
28b779d1 42 - Experimental: WAN enable and disable
1da177e4
LT
43
44A compatibility table by model and feature is maintained on the web
45site, http://ibm-acpi.sf.net/. I appreciate any success or failure
46reports, especially if they add to or correct the compatibility table.
47Please include the following information in your report:
48
49 - ThinkPad model name
50 - a copy of your DSDT, from /proc/acpi/dsdt
643f12db
HMH
51 - a copy of the output of dmidecode, with serial numbers
52 and UUIDs masked off
1da177e4
LT
53 - which driver features work and which don't
54 - the observed behavior of non-working features
55
56Any other comments or patches are also more than welcome.
57
58
59Installation
60------------
61
62If you are compiling this driver as included in the Linux kernel
643f12db
HMH
63sources, simply enable the CONFIG_THINKPAD_ACPI option, and optionally
64enable the CONFIG_THINKPAD_ACPI_BAY option if you want the
65thinkpad-specific bay functionality.
1da177e4
LT
66
67Features
68--------
69
54ae1501
HMH
70The driver exports two different interfaces to userspace, which can be
71used to access the features it provides. One is a legacy procfs-based
72interface, which will be removed at some time in the distant future.
73The other is a new sysfs-based interface which is not complete yet.
74
75The procfs interface creates the /proc/acpi/ibm directory. There is a
76file under that directory for each feature it supports. The procfs
77interface is mostly frozen, and will change very little if at all: it
78will not be extended to add any new functionality in the driver, instead
79all new functionality will be implemented on the sysfs interface.
80
81The sysfs interface tries to blend in the generic Linux sysfs subsystems
82and classes as much as possible. Since some of these subsystems are not
83yet ready or stabilized, it is expected that this interface will change,
84and any and all userspace programs must deal with it.
85
86
87Notes about the sysfs interface:
88
89Unlike what was done with the procfs interface, correctness when talking
90to the sysfs interfaces will be enforced, as will correctness in the
91thinkpad-acpi's implementation of sysfs interfaces.
92
93Also, any bugs in the thinkpad-acpi sysfs driver code or in the
94thinkpad-acpi's implementation of the sysfs interfaces will be fixed for
95maximum correctness, even if that means changing an interface in
96non-compatible ways. As these interfaces mature both in the kernel and
97in thinkpad-acpi, such changes should become quite rare.
98
99Applications interfacing to the thinkpad-acpi sysfs interfaces must
100follow all sysfs guidelines and correctly process all errors (the sysfs
101interface makes extensive use of errors). File descriptors and open /
102close operations to the sysfs inodes must also be properly implemented.
1da177e4 103
176750d6
HMH
104The version of thinkpad-acpi's sysfs interface is exported by the driver
105as a driver attribute (see below).
106
107Sysfs driver attributes are on the driver's sysfs attribute space,
108for 2.6.20 this is /sys/bus/platform/drivers/thinkpad-acpi/.
109
110Sysfs device attributes are on the driver's sysfs attribute space,
111for 2.6.20 this is /sys/devices/platform/thinkpad-acpi/.
112
113Driver version
114--------------
115
116procfs: /proc/acpi/ibm/driver
117sysfs driver attribute: version
1da177e4
LT
118
119The driver name and version. No commands can be written to this file.
120
176750d6
HMH
121Sysfs interface version
122-----------------------
123
124sysfs driver attribute: interface_version
125
126Version of the thinkpad-acpi sysfs interface, as an unsigned long
127(output in hex format: 0xAAAABBCC), where:
128 AAAA - major revision
129 BB - minor revision
130 CC - bugfix revision
131
132The sysfs interface version changelog for the driver can be found at the
133end of this document. Changes to the sysfs interface done by the kernel
134subsystems are not documented here, nor are they tracked by this
135attribute.
136
94b08713
HMH
137Changes to the thinkpad-acpi sysfs interface are only considered
138non-experimental when they are submitted to Linux mainline, at which
139point the changes in this interface are documented and interface_version
140may be updated. If you are using any thinkpad-acpi features not yet
141sent to mainline for merging, you do so on your own risk: these features
142may disappear, or be implemented in a different and incompatible way by
143the time they are merged in Linux mainline.
144
145Changes that are backwards-compatible by nature (e.g. the addition of
146attributes that do not change the way the other attributes work) do not
147always warrant an update of interface_version. Therefore, one must
148expect that an attribute might not be there, and deal with it properly
149(an attribute not being there *is* a valid way to make it clear that a
150feature is not available in sysfs).
151
a0416420
HMH
152Hot keys
153--------
154
155procfs: /proc/acpi/ibm/hotkey
cc4c24e1 156sysfs device attribute: hotkey_*
1da177e4
LT
157
158Without this driver, only the Fn-F4 key (sleep button) generates an
159ACPI event. With the driver loaded, the hotkey feature enabled and the
160mask set (see below), the various hot keys generate ACPI events in the
161following format:
162
163 ibm/hotkey HKEY 00000080 0000xxxx
164
165The last four digits vary depending on the key combination pressed.
166All labeled Fn-Fx key combinations generate distinct events. In
167addition, the lid microswitch and some docking station buttons may
168also generate such events.
169
6a38abbf
HMH
170Hot keys also generate regular keyboard key press/release events through
171the input layer in addition to the ibm/hotkey ACPI events. The input
172layer support accepts the standard IOCTLs to remap the keycodes assigned
173to each hotkey.
174
175When the input device is open, the driver will suppress any ACPI hot key
176events that get translated into a meaningful input layer event, in order
177to avoid sending duplicate events to userspace. Hot keys that are
178mapped to KEY_RESERVED are not translated, and will always generate only
179ACPI hot key event, and no input layer events.
180
1da177e4 181The bit mask allows some control over which hot keys generate ACPI
ae92bd17
HMH
182events. Not all bits in the mask can be modified. Not all bits that can
183be modified do anything. Not all hot keys can be individually controlled
184by the mask. Some models do not support the mask at all. On those
185models, hot keys cannot be controlled individually.
1da177e4
LT
186
187Note that enabling ACPI events for some keys prevents their default
ae92bd17
HMH
188behavior. For example, if events for Fn-F5 are enabled, that key will no
189longer enable/disable Bluetooth by itself. This can still be done from
190an acpid handler for the ibm/hotkey event.
191
192On some models, even enabling/disabling the entire hot key feature may
193change the way some keys behave (e.g. in a T43, Fn+F4 will generate an
194button/sleep ACPI event if hot keys are disabled, and it will ignore its
195mask when hot keys are enabled, so the key always does something. On a
196X40, Fn+F4 respects its mask status, but generates the button/sleep ACPI
197event if masked off).
1da177e4
LT
198
199Note also that not all Fn key combinations are supported through
200ACPI. For example, on the X40, the brightness, volume and "Access IBM"
201buttons do not generate ACPI events even with this driver. They *can*
202be used through the "ThinkPad Buttons" utility, see
203http://www.nongnu.org/tpb/
204
a0416420
HMH
205procfs notes:
206
207The following commands can be written to the /proc/acpi/ibm/hotkey file:
208
209 echo enable > /proc/acpi/ibm/hotkey -- enable the hot keys feature
210 echo disable > /proc/acpi/ibm/hotkey -- disable the hot keys feature
ae92bd17
HMH
211 echo 0xffffffff > /proc/acpi/ibm/hotkey -- enable all hot keys
212 echo 0 > /proc/acpi/ibm/hotkey -- disable all possible hot keys
213 ... any other 8-hex-digit mask ...
a0416420
HMH
214 echo reset > /proc/acpi/ibm/hotkey -- restore the original mask
215
216sysfs notes:
217
cc4c24e1 218 hotkey_bios_enabled:
a0416420
HMH
219 Returns the status of the hot keys feature when
220 thinkpad-acpi was loaded. Upon module unload, the hot
221 key feature status will be restored to this value.
222
223 0: hot keys were disabled
224 1: hot keys were enabled
225
cc4c24e1 226 hotkey_bios_mask:
a0416420
HMH
227 Returns the hot keys mask when thinkpad-acpi was loaded.
228 Upon module unload, the hot keys mask will be restored
229 to this value.
230
cc4c24e1 231 hotkey_enable:
a0416420
HMH
232 Enables/disables the hot keys feature, and reports
233 current status of the hot keys feature.
234
235 0: disables the hot keys feature / feature disabled
236 1: enables the hot keys feature / feature enabled
237
cc4c24e1 238 hotkey_mask:
a0416420
HMH
239 bit mask to enable ACPI event generation for each hot
240 key (see above). Returns the current status of the hot
241 keys mask, and allows one to modify it.
242
9b010de5
HMH
243 hotkey_all_mask:
244 bit mask that should enable event reporting for all
245 supported hot keys, when echoed to hotkey_mask above.
246 Unless you know which events need to be handled
247 passively (because the firmware *will* handle them
248 anyway), do *not* use hotkey_all_mask. Use
249 hotkey_recommended_mask, instead. You have been warned.
250
251 hotkey_recommended_mask:
252 bit mask that should enable event reporting for all
253 supported hot keys, except those which are handled by
254 the firmware. Echo it to hotkey_mask above, to use.
255
74941a69
HMH
256 hotkey_radio_sw:
257 if the ThinkPad has a hardware radio switch, this
258 attribute will read 0 if the switch is in the "radios
259 disabled" postition, and 1 if the switch is in the
260 "radios enabled" position.
261
6a38abbf
HMH
262input layer notes:
263
264A Hot key is mapped to a single input layer EV_KEY event, possibly
265followed by an EV_MSC MSC_SCAN event that shall contain that key's scan
266code. An EV_SYN event will always be generated to mark the end of the
267event block.
268
269Do not use the EV_MSC MSC_SCAN events to process keys. They are to be
270used as a helper to remap keys, only. They are particularly useful when
271remapping KEY_UNKNOWN keys.
272
273The events are available in an input device, with the following id:
274
275 Bus: BUS_HOST
276 vendor: 0x1014 (PCI_VENDOR_ID_IBM)
277 product: 0x5054 ("TP")
278 version: 0x4101
279
280The version will have its LSB incremented if the keymap changes in a
281backwards-compatible way. The MSB shall always be 0x41 for this input
282device. If the MSB is not 0x41, do not use the device as described in
283this section, as it is either something else (e.g. another input device
284exported by a thinkpad driver, such as HDAPS) or its functionality has
285been changed in a non-backwards compatible way.
286
287Adding other event types for other functionalities shall be considered a
288backwards-compatible change for this input device.
289
290Thinkpad-acpi Hot Key event map (version 0x4101):
291
292ACPI Scan
293event code Key Notes
294
2950x1001 0x00 FN+F1 -
2960x1002 0x01 FN+F2 -
297
2980x1003 0x02 FN+F3 Many models always report this
299 hot key, even with hot keys
300 disabled or with Fn+F3 masked
301 off
302
3030x1004 0x03 FN+F4 Sleep button (ACPI sleep button
304 semanthics, i.e. sleep-to-RAM).
305 It is always generate some kind
306 of event, either the hot key
307 event or a ACPI sleep button
308 event. The firmware may
309 refuse to generate further FN+F4
310 key presses until a S3 or S4 ACPI
311 sleep cycle is performed or some
312 time passes.
313
3140x1005 0x04 FN+F5 Radio. Enables/disables
315 the internal BlueTooth hardware
316 and W-WAN card if left in control
317 of the firmware. Does not affect
318 the WLAN card.
319
3200x1006 0x05 FN+F6 -
321
3220x1007 0x06 FN+F7 Video output cycle.
323 Do you feel lucky today?
324
3250x1008 0x07 FN+F8 -
326 .. .. ..
3270x100B 0x0A FN+F11 -
328
3290x100C 0x0B FN+F12 Sleep to disk. You are always
330 supposed to handle it yourself,
331 either through the ACPI event,
332 or through a hotkey event.
333 The firmware may refuse to
334 generate further FN+F4 key
335 press events until a S3 or S4
336 ACPI sleep cycle is performed,
337 or some time passes.
338
3390x100D 0x0C FN+BACKSPACE -
3400x100E 0x0D FN+INSERT -
3410x100F 0x0E FN+DELETE -
342
3430x1010 0x0F FN+HOME Brightness up. This key is
344 always handled by the firmware,
345 even when unmasked. Just leave
346 it alone.
3470x1011 0x10 FN+END Brightness down. This key is
348 always handled by the firmware,
349 even when unmasked. Just leave
350 it alone.
3510x1012 0x11 FN+PGUP Thinklight toggle. This key is
352 always handled by the firmware,
353 even when unmasked.
354
3550x1013 0x12 FN+PGDOWN -
356
3570x1014 0x13 FN+SPACE Zoom key
358
3590x1015 0x14 VOLUME UP Internal mixer volume up. This
360 key is always handled by the
361 firmware, even when unmasked.
3620x1016 0x15 VOLUME DOWN Internal mixer volume up. This
363 key is always handled by the
364 firmware, even when unmasked.
3650x1017 0x16 MUTE Mute internal mixer. This
366 key is always handled by the
367 firmware, even when unmasked.
368
3690x1018 0x17 THINKPAD Thinkpad/Access IBM/Lenovo key
370
3710x1019 0x18 unknown
372.. .. ..
3730x1020 0x1F unknown
374
375The ThinkPad firmware does not allow one to differentiate when most hot
376keys are pressed or released (either that, or we don't know how to, yet).
377For these keys, the driver generates a set of events for a key press and
378immediately issues the same set of events for a key release. It is
379unknown by the driver if the ThinkPad firmware triggered these events on
380hot key press or release, but the firmware will do it for either one, not
381both.
382
383If a key is mapped to KEY_RESERVED, it generates no input events at all,
384and it may generate a legacy thinkpad-acpi ACPI hotkey event.
385
386If a key is mapped to KEY_UNKNOWN, it generates an input event that
387includes an scan code, and it may also generate a legacy thinkpad-acpi
388ACPI hotkey event.
389
390If a key is mapped to anything else, it will only generate legacy
391thinkpad-acpi ACPI hotkey events if nobody has opened the input device.
392
393For userspace backwards-compatibility purposes, the keycode map is
394initially filled with KEY_RESERVED and KEY_UNKNOWN mappings for scan codes
3950x00 to 0x10 (and maybe others).
396
397Non hot-key ACPI HKEY event map:
3980x5001 Lid closed
3990x5002 Lid opened
4000x7000 Radio Switch may have changed state
401
a0416420 402
d3a6ade4
HMH
403Bluetooth
404---------
1da177e4 405
d3a6ade4 406procfs: /proc/acpi/ibm/bluetooth
cc4c24e1 407sysfs device attribute: bluetooth_enable
d3a6ade4
HMH
408
409This feature shows the presence and current state of a ThinkPad
410Bluetooth device in the internal ThinkPad CDC slot.
411
412Procfs notes:
413
414If Bluetooth is installed, the following commands can be used:
1da177e4
LT
415
416 echo enable > /proc/acpi/ibm/bluetooth
417 echo disable > /proc/acpi/ibm/bluetooth
418
d3a6ade4
HMH
419Sysfs notes:
420
421 If the Bluetooth CDC card is installed, it can be enabled /
cc4c24e1 422 disabled through the "bluetooth_enable" thinkpad-acpi device
d3a6ade4
HMH
423 attribute, and its current status can also be queried.
424
425 enable:
426 0: disables Bluetooth / Bluetooth is disabled
427 1: enables Bluetooth / Bluetooth is enabled.
428
429 Note: this interface will be probably be superseeded by the
cc4c24e1 430 generic rfkill class, so it is NOT to be considered stable yet.
d3a6ade4 431
1da177e4
LT
432Video output control -- /proc/acpi/ibm/video
433--------------------------------------------
434
435This feature allows control over the devices used for video output -
436LCD, CRT or DVI (if available). The following commands are available:
437
438 echo lcd_enable > /proc/acpi/ibm/video
439 echo lcd_disable > /proc/acpi/ibm/video
440 echo crt_enable > /proc/acpi/ibm/video
441 echo crt_disable > /proc/acpi/ibm/video
442 echo dvi_enable > /proc/acpi/ibm/video
443 echo dvi_disable > /proc/acpi/ibm/video
444 echo auto_enable > /proc/acpi/ibm/video
445 echo auto_disable > /proc/acpi/ibm/video
446 echo expand_toggle > /proc/acpi/ibm/video
447 echo video_switch > /proc/acpi/ibm/video
448
449Each video output device can be enabled or disabled individually.
450Reading /proc/acpi/ibm/video shows the status of each device.
451
452Automatic video switching can be enabled or disabled. When automatic
453video switching is enabled, certain events (e.g. opening the lid,
454docking or undocking) cause the video output device to change
455automatically. While this can be useful, it also causes flickering
456and, on the X40, video corruption. By disabling automatic switching,
457the flickering or video corruption can be avoided.
458
459The video_switch command cycles through the available video outputs
78f81cc4 460(it simulates the behavior of Fn-F7).
1da177e4
LT
461
462Video expansion can be toggled through this feature. This controls
463whether the display is expanded to fill the entire LCD screen when a
464mode with less than full resolution is used. Note that the current
465video expansion status cannot be determined through this feature.
466
467Note that on many models (particularly those using Radeon graphics
468chips) the X driver configures the video card in a way which prevents
469Fn-F7 from working. This also disables the video output switching
470features of this driver, as it uses the same ACPI methods as
471Fn-F7. Video switching on the console should still work.
472
78f81cc4
BD
473UPDATE: There's now a patch for the X.org Radeon driver which
474addresses this issue. Some people are reporting success with the patch
475while others are still having problems. For more information:
476
477https://bugs.freedesktop.org/show_bug.cgi?id=2000
478
1da177e4
LT
479ThinkLight control -- /proc/acpi/ibm/light
480------------------------------------------
481
482The current status of the ThinkLight can be found in this file. A few
483models which do not make the status available will show it as
484"unknown". The available commands are:
485
486 echo on > /proc/acpi/ibm/light
487 echo off > /proc/acpi/ibm/light
488
78f81cc4 489Docking / undocking -- /proc/acpi/ibm/dock
1da177e4
LT
490------------------------------------------
491
492Docking and undocking (e.g. with the X4 UltraBase) requires some
493actions to be taken by the operating system to safely make or break
494the electrical connections with the dock.
495
496The docking feature of this driver generates the following ACPI events:
497
498 ibm/dock GDCK 00000003 00000001 -- eject request
499 ibm/dock GDCK 00000003 00000002 -- undocked
500 ibm/dock GDCK 00000000 00000003 -- docked
501
502NOTE: These events will only be generated if the laptop was docked
503when originally booted. This is due to the current lack of support for
504hot plugging of devices in the Linux ACPI framework. If the laptop was
505booted while not in the dock, the following message is shown in the
78f81cc4
BD
506logs:
507
643f12db 508 Mar 17 01:42:34 aero kernel: thinkpad_acpi: dock device not present
78f81cc4
BD
509
510In this case, no dock-related events are generated but the dock and
511undock commands described below still work. They can be executed
512manually or triggered by Fn key combinations (see the example acpid
513configuration files included in the driver tarball package available
514on the web site).
1da177e4
LT
515
516When the eject request button on the dock is pressed, the first event
517above is generated. The handler for this event should issue the
518following command:
519
520 echo undock > /proc/acpi/ibm/dock
521
522After the LED on the dock goes off, it is safe to eject the laptop.
523Note: if you pressed this key by mistake, go ahead and eject the
524laptop, then dock it back in. Otherwise, the dock may not function as
525expected.
526
527When the laptop is docked, the third event above is generated. The
528handler for this event should issue the following command to fully
529enable the dock:
530
531 echo dock > /proc/acpi/ibm/dock
532
533The contents of the /proc/acpi/ibm/dock file shows the current status
534of the dock, as provided by the ACPI framework.
535
536The docking support in this driver does not take care of enabling or
537disabling any other devices you may have attached to the dock. For
538example, a CD drive plugged into the UltraBase needs to be disabled or
539enabled separately. See the provided example acpid configuration files
540for how this can be accomplished.
541
542There is no support yet for PCI devices that may be attached to a
543docking station, e.g. in the ThinkPad Dock II. The driver currently
544does not recognize, enable or disable such devices. This means that
545the only docking stations currently supported are the X-series
546UltraBase docks and "dumb" port replicators like the Mini Dock (the
547latter don't need any ACPI support, actually).
548
78f81cc4 549UltraBay eject -- /proc/acpi/ibm/bay
1da177e4
LT
550------------------------------------
551
552Inserting or ejecting an UltraBay device requires some actions to be
553taken by the operating system to safely make or break the electrical
554connections with the device.
555
556This feature generates the following ACPI events:
557
558 ibm/bay MSTR 00000003 00000000 -- eject request
559 ibm/bay MSTR 00000001 00000000 -- eject lever inserted
560
561NOTE: These events will only be generated if the UltraBay was present
562when the laptop was originally booted (on the X series, the UltraBay
563is in the dock, so it may not be present if the laptop was undocked).
564This is due to the current lack of support for hot plugging of devices
565in the Linux ACPI framework. If the laptop was booted without the
78f81cc4
BD
566UltraBay, the following message is shown in the logs:
567
643f12db 568 Mar 17 01:42:34 aero kernel: thinkpad_acpi: bay device not present
78f81cc4
BD
569
570In this case, no bay-related events are generated but the eject
1da177e4
LT
571command described below still works. It can be executed manually or
572triggered by a hot key combination.
573
574Sliding the eject lever generates the first event shown above. The
575handler for this event should take whatever actions are necessary to
576shut down the device in the UltraBay (e.g. call idectl), then issue
577the following command:
578
579 echo eject > /proc/acpi/ibm/bay
580
581After the LED on the UltraBay goes off, it is safe to pull out the
582device.
583
584When the eject lever is inserted, the second event above is
585generated. The handler for this event should take whatever actions are
586necessary to enable the UltraBay device (e.g. call idectl).
587
588The contents of the /proc/acpi/ibm/bay file shows the current status
589of the UltraBay, as provided by the ACPI framework.
590
78f81cc4
BD
591EXPERIMENTAL warm eject support on the 600e/x, A22p and A3x (To use
592this feature, you need to supply the experimental=1 parameter when
593loading the module):
594
595These models do not have a button near the UltraBay device to request
596a hot eject but rather require the laptop to be put to sleep
597(suspend-to-ram) before the bay device is ejected or inserted).
598The sequence of steps to eject the device is as follows:
599
600 echo eject > /proc/acpi/ibm/bay
601 put the ThinkPad to sleep
602 remove the drive
603 resume from sleep
604 cat /proc/acpi/ibm/bay should show that the drive was removed
605
606On the A3x, both the UltraBay 2000 and UltraBay Plus devices are
607supported. Use "eject2" instead of "eject" for the second bay.
1da177e4 608
78f81cc4
BD
609Note: the UltraBay eject support on the 600e/x, A22p and A3x is
610EXPERIMENTAL and may not work as expected. USE WITH CAUTION!
1da177e4 611
b616004c
HMH
612CMOS control
613------------
614
615procfs: /proc/acpi/ibm/cmos
616sysfs device attribute: cmos_command
1da177e4 617
d54b7d7f
HMH
618This feature is mostly used internally by the ACPI firmware to keep the legacy
619CMOS NVRAM bits in sync with the current machine state, and to record this
620state so that the ThinkPad will retain such settings across reboots.
621
622Some of these commands actually perform actions in some ThinkPad models, but
623this is expected to disappear more and more in newer models. As an example, in
624a T43 and in a X40, commands 12 and 13 still control the ThinkLight state for
625real, but commands 0 to 2 don't control the mixer anymore (they have been
626phased out) and just update the NVRAM.
1da177e4 627
b616004c
HMH
628The range of valid cmos command numbers is 0 to 21, but not all have an
629effect and the behavior varies from model to model. Here is the behavior
630on the X40 (tpb is the ThinkPad Buttons utility):
1da177e4 631
d54b7d7f
HMH
632 0 - Related to "Volume down" key press
633 1 - Related to "Volume up" key press
634 2 - Related to "Mute on" key press
635 3 - Related to "Access IBM" key press
636 4 - Related to "LCD brightness up" key pess
637 5 - Related to "LCD brightness down" key press
638 11 - Related to "toggle screen expansion" key press/function
639 12 - Related to "ThinkLight on"
640 13 - Related to "ThinkLight off"
641 14 - Related to "ThinkLight" key press (toggle thinklight)
1da177e4 642
b616004c 643The cmos command interface is prone to firmware split-brain problems, as
d54b7d7f
HMH
644in newer ThinkPads it is just a compatibility layer. Do not use it, it is
645exported just as a debug tool.
b616004c 646
78f81cc4
BD
647LED control -- /proc/acpi/ibm/led
648---------------------------------
1da177e4
LT
649
650Some of the LED indicators can be controlled through this feature. The
651available commands are:
652
78f81cc4
BD
653 echo '<led number> on' >/proc/acpi/ibm/led
654 echo '<led number> off' >/proc/acpi/ibm/led
655 echo '<led number> blink' >/proc/acpi/ibm/led
1da177e4 656
78f81cc4
BD
657The <led number> range is 0 to 7. The set of LEDs that can be
658controlled varies from model to model. Here is the mapping on the X40:
1da177e4
LT
659
660 0 - power
661 1 - battery (orange)
662 2 - battery (green)
663 3 - UltraBase
664 4 - UltraBay
665 7 - standby
666
667All of the above can be turned on and off and can be made to blink.
668
78f81cc4
BD
669ACPI sounds -- /proc/acpi/ibm/beep
670----------------------------------
1da177e4
LT
671
672The BEEP method is used internally by the ACPI firmware to provide
78f81cc4 673audible alerts in various situations. This feature allows the same
1da177e4
LT
674sounds to be triggered manually.
675
676The commands are non-negative integer numbers:
677
78f81cc4 678 echo <number> >/proc/acpi/ibm/beep
1da177e4 679
78f81cc4
BD
680The valid <number> range is 0 to 17. Not all numbers trigger sounds
681and the sounds vary from model to model. Here is the behavior on the
682X40:
1da177e4 683
78f81cc4
BD
684 0 - stop a sound in progress (but use 17 to stop 16)
685 2 - two beeps, pause, third beep ("low battery")
1da177e4 686 3 - single beep
78f81cc4 687 4 - high, followed by low-pitched beep ("unable")
1da177e4 688 5 - single beep
78f81cc4 689 6 - very high, followed by high-pitched beep ("AC/DC")
1da177e4
LT
690 7 - high-pitched beep
691 9 - three short beeps
692 10 - very long beep
693 12 - low-pitched beep
78f81cc4
BD
694 15 - three high-pitched beeps repeating constantly, stop with 0
695 16 - one medium-pitched beep repeating constantly, stop with 17
696 17 - stop 16
697
2c37aa4e
HMH
698Temperature sensors
699-------------------
700
701procfs: /proc/acpi/ibm/thermal
702sysfs device attributes: (hwmon) temp*_input
78f81cc4
BD
703
704Most ThinkPads include six or more separate temperature sensors but
705only expose the CPU temperature through the standard ACPI methods.
60eb0b35
HMH
706This feature shows readings from up to eight different sensors on older
707ThinkPads, and it has experimental support for up to sixteen different
2c37aa4e 708sensors on newer ThinkPads.
60eb0b35
HMH
709
710EXPERIMENTAL: The 16-sensors feature is marked EXPERIMENTAL because the
711implementation directly accesses hardware registers and may not work as
712expected. USE WITH CAUTION! To use this feature, you need to supply the
713experimental=1 parameter when loading the module. When EXPERIMENTAL
714mode is enabled, reading the first 8 sensors on newer ThinkPads will
715also use an new experimental thermal sensor access mode.
716
717For example, on the X40, a typical output may be:
78f81cc4
BD
718temperatures: 42 42 45 41 36 -128 33 -128
719
60eb0b35
HMH
720EXPERIMENTAL: On the T43/p, a typical output may be:
721temperatures: 48 48 36 52 38 -128 31 -128 48 52 48 -128 -128 -128 -128 -128
722
723The mapping of thermal sensors to physical locations varies depending on
724system-board model (and thus, on ThinkPad model).
725
726http://thinkwiki.org/wiki/Thermal_Sensors is a public wiki page that
727tries to track down these locations for various models.
728
729Most (newer?) models seem to follow this pattern:
78f81cc4
BD
730
7311: CPU
60eb0b35
HMH
7322: (depends on model)
7333: (depends on model)
78f81cc4 7344: GPU
60eb0b35
HMH
7355: Main battery: main sensor
7366: Bay battery: main sensor
7377: Main battery: secondary sensor
7388: Bay battery: secondary sensor
7399-15: (depends on model)
740
741For the R51 (source: Thomas Gruber):
7422: Mini-PCI
7433: Internal HDD
744
745For the T43, T43/p (source: Shmidoax/Thinkwiki.org)
746http://thinkwiki.org/wiki/Thermal_Sensors#ThinkPad_T43.2C_T43p
7472: System board, left side (near PCMCIA slot), reported as HDAPS temp
7483: PCMCIA slot
7499: MCH (northbridge) to DRAM Bus
b8b26402
HMH
75010: Clock-generator, mini-pci card and ICH (southbridge), under Mini-PCI
751 card, under touchpad
60eb0b35 75211: Power regulator, underside of system board, below F2 key
78f81cc4 753
88679a15
HMH
754The A31 has a very atypical layout for the thermal sensors
755(source: Milos Popovic, http://thinkwiki.org/wiki/Thermal_Sensors#ThinkPad_A31)
7561: CPU
7572: Main Battery: main sensor
7583: Power Converter
7594: Bay Battery: main sensor
7605: MCH (northbridge)
7616: PCMCIA/ambient
7627: Main Battery: secondary sensor
7638: Bay Battery: secondary sensor
764
78f81cc4 765
2c37aa4e
HMH
766Procfs notes:
767 Readings from sensors that are not available return -128.
768 No commands can be written to this file.
769
770Sysfs notes:
771 Sensors that are not available return the ENXIO error. This
772 status may change at runtime, as there are hotplug thermal
773 sensors, like those inside the batteries and docks.
774
775 thinkpad-acpi thermal sensors are reported through the hwmon
776 subsystem, and follow all of the hwmon guidelines at
777 Documentation/hwmon.
778
779
d6bc8ac9 780EXPERIMENTAL: Embedded controller register dump -- /proc/acpi/ibm/ecdump
78f81cc4
BD
781------------------------------------------------------------------------
782
783This feature is marked EXPERIMENTAL because the implementation
784directly accesses hardware registers and may not work as expected. USE
785WITH CAUTION! To use this feature, you need to supply the
786experimental=1 parameter when loading the module.
787
788This feature dumps the values of 256 embedded controller
789registers. Values which have changed since the last time the registers
790were dumped are marked with a star:
791
837ca6dd 792[root@x40 ibm-acpi]# cat /proc/acpi/ibm/ecdump
78f81cc4
BD
793EC +00 +01 +02 +03 +04 +05 +06 +07 +08 +09 +0a +0b +0c +0d +0e +0f
794EC 0x00: a7 47 87 01 fe 96 00 08 01 00 cb 00 00 00 40 00
795EC 0x10: 00 00 ff ff f4 3c 87 09 01 ff 42 01 ff ff 0d 00
796EC 0x20: 00 00 00 00 00 00 00 00 00 00 00 03 43 00 00 80
797EC 0x30: 01 07 1a 00 30 04 00 00 *85 00 00 10 00 50 00 00
798EC 0x40: 00 00 00 00 00 00 14 01 00 04 00 00 00 00 00 00
799EC 0x50: 00 c0 02 0d 00 01 01 02 02 03 03 03 03 *bc *02 *bc
800EC 0x60: *02 *bc *02 00 00 00 00 00 00 00 00 00 00 00 00 00
801EC 0x70: 00 00 00 00 00 12 30 40 *24 *26 *2c *27 *20 80 *1f 80
802EC 0x80: 00 00 00 06 *37 *0e 03 00 00 00 0e 07 00 00 00 00
803EC 0x90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
804EC 0xa0: *ff 09 ff 09 ff ff *64 00 *00 *00 *a2 41 *ff *ff *e0 00
805EC 0xb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
806EC 0xc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
807EC 0xd0: 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
808EC 0xe0: 00 00 00 00 00 00 00 00 11 20 49 04 24 06 55 03
809EC 0xf0: 31 55 48 54 35 38 57 57 08 2f 45 73 07 65 6c 1a
810
811This feature can be used to determine the register holding the fan
812speed on some models. To do that, do the following:
813
814 - make sure the battery is fully charged
815 - make sure the fan is running
816 - run 'cat /proc/acpi/ibm/ecdump' several times, once per second or so
817
818The first step makes sure various charging-related values don't
819vary. The second ensures that the fan-related values do vary, since
820the fan speed fluctuates a bit. The third will (hopefully) mark the
821fan register with a star:
822
837ca6dd 823[root@x40 ibm-acpi]# cat /proc/acpi/ibm/ecdump
78f81cc4
BD
824EC +00 +01 +02 +03 +04 +05 +06 +07 +08 +09 +0a +0b +0c +0d +0e +0f
825EC 0x00: a7 47 87 01 fe 96 00 08 01 00 cb 00 00 00 40 00
826EC 0x10: 00 00 ff ff f4 3c 87 09 01 ff 42 01 ff ff 0d 00
827EC 0x20: 00 00 00 00 00 00 00 00 00 00 00 03 43 00 00 80
828EC 0x30: 01 07 1a 00 30 04 00 00 85 00 00 10 00 50 00 00
829EC 0x40: 00 00 00 00 00 00 14 01 00 04 00 00 00 00 00 00
830EC 0x50: 00 c0 02 0d 00 01 01 02 02 03 03 03 03 bc 02 bc
831EC 0x60: 02 bc 02 00 00 00 00 00 00 00 00 00 00 00 00 00
832EC 0x70: 00 00 00 00 00 12 30 40 24 27 2c 27 21 80 1f 80
833EC 0x80: 00 00 00 06 *be 0d 03 00 00 00 0e 07 00 00 00 00
834EC 0x90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
835EC 0xa0: ff 09 ff 09 ff ff 64 00 00 00 a2 41 ff ff e0 00
836EC 0xb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
837EC 0xc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
838EC 0xd0: 03 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
839EC 0xe0: 00 00 00 00 00 00 00 00 11 20 49 04 24 06 55 03
840EC 0xf0: 31 55 48 54 35 38 57 57 08 2f 45 73 07 65 6c 1a
841
842Another set of values that varies often is the temperature
843readings. Since temperatures don't change vary fast, you can take
844several quick dumps to eliminate them.
845
846You can use a similar method to figure out the meaning of other
847embedded controller registers - e.g. make sure nothing else changes
848except the charging or discharging battery to determine which
849registers contain the current battery capacity, etc. If you experiment
850with this, do send me your results (including some complete dumps with
851a description of the conditions when they were taken.)
852
7d5a015e
HMH
853LCD brightness control
854----------------------
855
856procfs: /proc/acpi/ibm/brightness
857sysfs backlight device "thinkpad_screen"
78f81cc4
BD
858
859This feature allows software control of the LCD brightness on ThinkPad
7d5a015e
HMH
860models which don't have a hardware brightness slider.
861
862It has some limitations: the LCD backlight cannot be actually turned on or off
863by this interface, and in many ThinkPad models, the "dim while on battery"
864functionality will be enabled by the BIOS when this interface is used, and
865cannot be controlled.
866
867The backlight control has eight levels, ranging from 0 to 7. Some of the
868levels may not be distinct.
869
870Procfs notes:
871
872 The available commands are:
78f81cc4
BD
873
874 echo up >/proc/acpi/ibm/brightness
875 echo down >/proc/acpi/ibm/brightness
876 echo 'level <level>' >/proc/acpi/ibm/brightness
877
7d5a015e
HMH
878Sysfs notes:
879
880The interface is implemented through the backlight sysfs class, which is poorly
881documented at this time.
882
883Locate the thinkpad_screen device under /sys/class/backlight, and inside it
884there will be the following attributes:
885
886 max_brightness:
887 Reads the maximum brightness the hardware can be set to.
888 The minimum is always zero.
889
890 actual_brightness:
891 Reads what brightness the screen is set to at this instant.
892
893 brightness:
894 Writes request the driver to change brightness to the given
895 value. Reads will tell you what brightness the driver is trying
896 to set the display to when "power" is set to zero and the display
897 has not been dimmed by a kernel power management event.
898
899 power:
900 power management mode, where 0 is "display on", and 1 to 3 will
901 dim the display backlight to brightness level 0 because
902 thinkpad-acpi cannot really turn the backlight off. Kernel
903 power management events can temporarily increase the current
904 power management level, i.e. they can dim the display.
905
78f81cc4 906
24f7ff0a
SS
907Volume control -- /proc/acpi/ibm/volume
908---------------------------------------
78f81cc4
BD
909
910This feature allows volume control on ThinkPad models which don't have
911a hardware volume knob. The available commands are:
912
913 echo up >/proc/acpi/ibm/volume
914 echo down >/proc/acpi/ibm/volume
915 echo mute >/proc/acpi/ibm/volume
916 echo 'level <level>' >/proc/acpi/ibm/volume
917
918The <level> number range is 0 to 15 although not all of them may be
919distinct. The unmute the volume after the mute command, use either the
920up or down command (the level command will not unmute the volume).
921The current volume level and mute state is shown in the file.
922
ecf2a80a
HMH
923Fan control and monitoring: fan speed, fan enable/disable
924---------------------------------------------------------
fe98a52c
HMH
925
926procfs: /proc/acpi/ibm/fan
927sysfs device attributes: (hwmon) fan_input, pwm1, pwm1_enable
78f81cc4 928
ecf2a80a
HMH
929NOTE NOTE NOTE: fan control operations are disabled by default for
930safety reasons. To enable them, the module parameter "fan_control=1"
931must be given to thinkpad-acpi.
78f81cc4 932
a12095c2
HMH
933This feature attempts to show the current fan speed, control mode and
934other fan data that might be available. The speed is read directly
935from the hardware registers of the embedded controller. This is known
ecf2a80a 936to work on later R, T, X and Z series ThinkPads but may show a bogus
a12095c2
HMH
937value on other models.
938
fe98a52c 939Fan levels:
a12095c2 940
fe98a52c
HMH
941Most ThinkPad fans work in "levels" at the firmware interface. Level 0
942stops the fan. The higher the level, the higher the fan speed, although
943adjacent levels often map to the same fan speed. 7 is the highest
944level, where the fan reaches the maximum recommended speed.
78f81cc4 945
fe98a52c
HMH
946Level "auto" means the EC changes the fan level according to some
947internal algorithm, usually based on readings from the thermal sensors.
78f81cc4 948
fe98a52c
HMH
949There is also a "full-speed" level, also known as "disengaged" level.
950In this level, the EC disables the speed-locked closed-loop fan control,
951and drives the fan as fast as it can go, which might exceed hardware
952limits, so use this level with caution.
78f81cc4 953
fe98a52c
HMH
954The fan usually ramps up or down slowly from one speed to another, and
955it is normal for the EC to take several seconds to react to fan
956commands. The full-speed level may take up to two minutes to ramp up to
957maximum speed, and in some ThinkPads, the tachometer readings go stale
958while the EC is transitioning to the full-speed level.
a12095c2 959
78f81cc4 960WARNING WARNING WARNING: do not leave the fan disabled unless you are
a12095c2
HMH
961monitoring all of the temperature sensor readings and you are ready to
962enable it if necessary to avoid overheating.
963
964An enabled fan in level "auto" may stop spinning if the EC decides the
965ThinkPad is cool enough and doesn't need the extra airflow. This is
966normal, and the EC will spin the fan up if the varios thermal readings
967rise too much.
968
969On the X40, this seems to depend on the CPU and HDD temperatures.
970Specifically, the fan is turned on when either the CPU temperature
971climbs to 56 degrees or the HDD temperature climbs to 46 degrees. The
972fan is turned off when the CPU temperature drops to 49 degrees and the
973HDD temperature drops to 41 degrees. These thresholds cannot
974currently be controlled.
975
fe98a52c
HMH
976The ThinkPad's ACPI DSDT code will reprogram the fan on its own when
977certain conditions are met. It will override any fan programming done
978through thinkpad-acpi.
979
980The thinkpad-acpi kernel driver can be programmed to revert the fan
981level to a safe setting if userspace does not issue one of the procfs
982fan commands: "enable", "disable", "level" or "watchdog", or if there
983are no writes to pwm1_enable (or to pwm1 *if and only if* pwm1_enable is
984set to 1, manual mode) within a configurable amount of time of up to
985120 seconds. This functionality is called fan safety watchdog.
986
987Note that the watchdog timer stops after it enables the fan. It will be
988rearmed again automatically (using the same interval) when one of the
989above mentioned fan commands is received. The fan watchdog is,
990therefore, not suitable to protect against fan mode changes made through
991means other than the "enable", "disable", and "level" procfs fan
992commands, or the hwmon fan control sysfs interface.
993
994Procfs notes:
995
996The fan may be enabled or disabled with the following commands:
997
998 echo enable >/proc/acpi/ibm/fan
999 echo disable >/proc/acpi/ibm/fan
1000
1001Placing a fan on level 0 is the same as disabling it. Enabling a fan
1002will try to place it in a safe level if it is too slow or disabled.
1003
a12095c2 1004The fan level can be controlled with the command:
78f81cc4 1005
fe98a52c 1006 echo 'level <level>' > /proc/acpi/ibm/fan
a12095c2 1007
fe98a52c
HMH
1008Where <level> is an integer from 0 to 7, or one of the words "auto" or
1009"full-speed" (without the quotes). Not all ThinkPads support the "auto"
1010and "full-speed" levels. The driver accepts "disengaged" as an alias for
1011"full-speed", and reports it as "disengaged" for backwards
1012compatibility.
78f81cc4
BD
1013
1014On the X31 and X40 (and ONLY on those models), the fan speed can be
fe98a52c 1015controlled to a certain degree. Once the fan is running, it can be
78f81cc4
BD
1016forced to run faster or slower with the following command:
1017
fe98a52c 1018 echo 'speed <speed>' > /proc/acpi/ibm/fan
78f81cc4 1019
fe98a52c
HMH
1020The sustainable range of fan speeds on the X40 appears to be from about
10213700 to about 7350. Values outside this range either do not have any
1022effect or the fan speed eventually settles somewhere in that range. The
1023fan cannot be stopped or started with this command. This functionality
1024is incomplete, and not available through the sysfs interface.
78f81cc4 1025
fe98a52c
HMH
1026To program the safety watchdog, use the "watchdog" command.
1027
1028 echo 'watchdog <interval in seconds>' > /proc/acpi/ibm/fan
1029
1030If you want to disable the watchdog, use 0 as the interval.
1031
1032Sysfs notes:
1033
1034The sysfs interface follows the hwmon subsystem guidelines for the most
1035part, and the exception is the fan safety watchdog.
1036
b39fe582
HMH
1037Writes to any of the sysfs attributes may return the EINVAL error if
1038that operation is not supported in a given ThinkPad or if the parameter
1039is out-of-bounds, and EPERM if it is forbidden. They may also return
1040EINTR (interrupted system call), and EIO (I/O error while trying to talk
1041to the firmware).
1042
1043Features not yet implemented by the driver return ENOSYS.
1044
fe98a52c
HMH
1045hwmon device attribute pwm1_enable:
1046 0: PWM offline (fan is set to full-speed mode)
1047 1: Manual PWM control (use pwm1 to set fan level)
1048 2: Hardware PWM control (EC "auto" mode)
1049 3: reserved (Software PWM control, not implemented yet)
1050
b39fe582
HMH
1051 Modes 0 and 2 are not supported by all ThinkPads, and the
1052 driver is not always able to detect this. If it does know a
1053 mode is unsupported, it will return -EINVAL.
fe98a52c
HMH
1054
1055hwmon device attribute pwm1:
1056 Fan level, scaled from the firmware values of 0-7 to the hwmon
1057 scale of 0-255. 0 means fan stopped, 255 means highest normal
1058 speed (level 7).
1059
1060 This attribute only commands the fan if pmw1_enable is set to 1
1061 (manual PWM control).
1062
1063hwmon device attribute fan1_input:
1064 Fan tachometer reading, in RPM. May go stale on certain
1065 ThinkPads while the EC transitions the PWM to offline mode,
1066 which can take up to two minutes. May return rubbish on older
1067 ThinkPads.
1068
1069driver attribute fan_watchdog:
1070 Fan safety watchdog timer interval, in seconds. Minimum is
1071 1 second, maximum is 120 seconds. 0 disables the watchdog.
1072
1073To stop the fan: set pwm1 to zero, and pwm1_enable to 1.
1074
1075To start the fan in a safe mode: set pwm1_enable to 2. If that fails
b39fe582
HMH
1076with EINVAL, try to set pwm1_enable to 1 and pwm1 to at least 128 (255
1077would be the safest choice, though).
1da177e4 1078
38f996ed 1079
d3a6ade4
HMH
1080EXPERIMENTAL: WAN
1081-----------------
1082
1083procfs: /proc/acpi/ibm/wan
cc4c24e1 1084sysfs device attribute: wwan_enable
28b779d1
SS
1085
1086This feature is marked EXPERIMENTAL because the implementation
1087directly accesses hardware registers and may not work as expected. USE
1088WITH CAUTION! To use this feature, you need to supply the
1089experimental=1 parameter when loading the module.
1090
d3a6ade4
HMH
1091This feature shows the presence and current state of a W-WAN (Sierra
1092Wireless EV-DO) device.
1093
1094It was tested on a Lenovo Thinkpad X60. It should probably work on other
1095Thinkpad models which come with this module installed.
1096
1097Procfs notes:
1098
1099If the W-WAN card is installed, the following commands can be used:
28b779d1
SS
1100
1101 echo enable > /proc/acpi/ibm/wan
1102 echo disable > /proc/acpi/ibm/wan
1103
d3a6ade4
HMH
1104Sysfs notes:
1105
1106 If the W-WAN card is installed, it can be enabled /
cc4c24e1 1107 disabled through the "wwan_enable" thinkpad-acpi device
d3a6ade4
HMH
1108 attribute, and its current status can also be queried.
1109
1110 enable:
1111 0: disables WWAN card / WWAN card is disabled
1112 1: enables WWAN card / WWAN card is enabled.
1113
1114 Note: this interface will be probably be superseeded by the
cc4c24e1 1115 generic rfkill class, so it is NOT to be considered stable yet.
1da177e4 1116
78f81cc4
BD
1117Multiple Commands, Module Parameters
1118------------------------------------
1da177e4
LT
1119
1120Multiple commands can be written to the proc files in one shot by
1121separating them with commas, for example:
1122
1123 echo enable,0xffff > /proc/acpi/ibm/hotkey
1124 echo lcd_disable,crt_enable > /proc/acpi/ibm/video
1125
643f12db
HMH
1126Commands can also be specified when loading the thinkpad-acpi module,
1127for example:
1da177e4 1128
643f12db 1129 modprobe thinkpad_acpi hotkey=enable,0xffff video=auto_disable
1da177e4 1130
132ce091
HMH
1131Enabling debugging output
1132-------------------------
1133
1134The module takes a debug paramater which can be used to selectively
1135enable various classes of debugging output, for example:
1136
1137 modprobe ibm_acpi debug=0xffff
1138
1139will enable all debugging output classes. It takes a bitmask, so
1140to enable more than one output class, just add their values.
1141
fe08bc4b
HMH
1142 Debug bitmask Description
1143 0x0001 Initialization and probing
1144 0x0002 Removal
1145
132ce091
HMH
1146There is also a kernel build option to enable more debugging
1147information, which may be necessary to debug driver problems.
0dcef77c 1148
176750d6
HMH
1149The level of debugging information output by the driver can be changed
1150at runtime through sysfs, using the driver attribute debug_level. The
1151attribute takes the same bitmask as the debug module parameter above.
1152
0dcef77c
HMH
1153Force loading of module
1154-----------------------
1155
1156If thinkpad-acpi refuses to detect your ThinkPad, you can try to specify
1157the module parameter force_load=1. Regardless of whether this works or
1158not, please contact ibm-acpi-devel@lists.sourceforge.net with a report.
176750d6
HMH
1159
1160
1161Sysfs interface changelog:
1162
11630x000100: Initial sysfs support, as a single platform driver and
1164 device.
94b08713
HMH
11650x000200: Hot key support for 32 hot keys, and radio slider switch
1166 support.