xref: /dragonfly/share/man/man4/acpi_hp.4 (revision 28c26f7e)
1.\" Copyright (c) 2009 Michael Gmelin
2.\" All rights reserved.
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\"
13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23.\" SUCH DAMAGE.
24.\"
25.\" $FreeBSD: src/share/man/man4/acpi_hp.4,v 1.4 2009/07/03 21:12:37 rpaulo Exp $
26.\"
27.Dd November 11, 2009
28.Dt ACPI_HP 4
29.Os
30.Sh NAME
31.Nm acpi_hp
32.Nd "ACPI extras driver for HP laptops"
33.Sh SYNOPSIS
34To compile this driver into the kernel,
35place the following line in your
36kernel configuration file:
37.Bd -ragged -offset indent
38.Cd "device acpi_hp"
39.Ed
40.Pp
41Alternatively, to load the driver as a
42module at boot time, place the following line in
43.Xr loader.conf 5 :
44.Bd -literal -offset indent
45acpi_hp_load="YES"
46.Ed
47.Sh DESCRIPTION
48The
49.Nm
50driver provides support for ACPI-controlled features found on HP laptops
51that use a WMI enabled BIOS (e.g. HP Compaq 8510p and 6510p).
52.Pp
53The main purpose of this driver is to provide an interface,
54accessible via
55.Xr sysctl 8 ,
56.Xr devd 8
57and
58.Xr devfs 5 ,
59through which applications can determine and change the status of
60various laptop components and BIOS settings.
61.Pp
62.Ss Xr devd 8 Ss Events
63Devd events received by
64.Xr devd 8
65provide the following information:
66.Pp
67.Bl -tag -width "subsystem" -offset indent -compact
68.It system
69.Qq Li ACPI
70.It subsystem
71.Qq Li HP
72.It type
73The source of the event in the ACPI namespace.
74The value depends on the model.
75.It notify
76Event code (see below).
77.El
78.Pp
79Event codes:
80.Pp
81.Bl -tag -width "0xc0" -offset indent -compact
82.It Li 0xc0
83WLAN on air status changed to 0 (not on air)
84.It Li 0xc1
85WLAN on air status changed to 1 (on air)
86.It Li 0xd0
87Bluetooth on air status changed to 0 (not on air)
88.It Li 0xd1
89Bluetooth on air status changed to 1 (on air)
90.It Li 0xe0
91WWAN on air status changed to 0 (not on air)
92.It Li 0xe1
93WWAN on air status changed to 1 (on air)
94.El
95.Ss Xr devfs 5 Ss Device
96You can read /dev/hpcmi to see your current BIOS settings.
97The detail level can be adjusted by setting the sysctl
98.Va cmi_detail
99as described below.
100.Sh SYSCTL VARIABLES
101The following sysctls are currently implemented:
102.Ss WLAN:
103.Bl -tag -width indent
104.It Va dev.acpi_hp.0.wlan_enabled
105Toggle WLAN chip activity.
106.It Va dev.acpi_hp.0.wlan_radio
107(read-only)
108WLAN radio status (controlled by hardware switch)
109.It Va dev.acpi_hp.0.wlan_on_air
110(read-only)
111WLAN on air (chip enabled, hardware switch enabled + enabled in BIOS)
112.It Va dev.acpi_hp.0.wlan_enabled_if_radio_on
113If set to 1, the WLAN chip will be enabled if the radio is turned on
114.It Va dev.acpi_hp.0.wlan_disable_if_radio_off
115If set to 1, the WLAN chip will be disabled if the radio is turned off
116.El
117.Ss Bluetooth:
118.Bl -tag -width indent
119.It Va dev.acpi_hp.0.bt_enabled
120Toggle Bluetooth chip activity.
121.It Va dev.acpi_hp.0.bt_radio
122(read-only)
123Bluetooth radio status (controlled by hardware switch)
124.It Va dev.acpi_hp.0.bt_on_air
125(read-only)
126Bluetooth on air (chip enabled, hardware switch enabled + enabled in BIOS)
127.It Va dev.acpi_hp.0.bt_enabled_if_radio_on
128If set to 1, the Bluetooth chip will be enabled if the radio is turned on
129.It Va dev.acpi_hp.0.bt_disable_if_radio_off
130If set to 1, the Bluetooth chip will be disabled if the radio is turned off
131.El
132.Ss WWAN:
133.Bl -tag -width indent
134.It Va dev.acpi_hp.0.wwan_enabled
135Toggle WWAN chip activity.
136.It Va dev.acpi_hp.0.wwan_radio
137(read-only)
138WWAN radio status (controlled by hardware switch)
139.It Va dev.acpi_hp.0.wwan_on_air
140(read-only)
141WWAN on air (chip enabled, hardware switch enabled + enabled in BIOS)
142.It Va dev.acpi_hp.0.wwan_enabled_if_radio_on
143If set to 1, the WWAN chip will be enabled if the radio is turned on
144.It Va dev.acpi_hp.0.wwan_disable_if_radio_off
145If set to 1, the WWAN chip will be disabled if the radio is turned off
146.El
147.Ss Misc:
148.Bl -tag -width indent
149.It Va dev.acpi_hp.0.als_enabled
150Toggle ambient light sensor (ALS)
151.It Va dev.acpi_hp.0.display
152(read-only)
153Display status (bitmask)
154.It Va dev.acpi_hp.0.hdd_temperature
155(read-only)
156HDD temperature
157.It Va dev.acpi_hp.0.is_docked
158(read-only)
159Docking station status (1 if docked)
160.It Va dev.acpi_hp.0.cmi_detail
161Bitmask to control detail level in /dev/hpcmi output (values can be ORed).
162.Bl -tag -width "0x01" -offset indent -compact
163.It Li 0x01
164Show path component of BIOS setting
165.It Li 0x02
166Show a list of valid options for the BIOS setting
167.It Li 0x04
168Show additional flags of BIOS setting (ReadOnly etc.)
169.It Li 0x08
170Query highest BIOS entry instance.
171This is broken on many HP models and therefore disabled by default.
172.El
173.It Va dev.acpi_hp.0.verbose
174(read-only)
175Set verbosity level
176.El
177.Pp
178Defaults for these sysctls can be set in
179.Xr sysctl.conf 5 .
180.Sh HARDWARE
181The
182.Nm
183driver has been reported to support the following hardware:
184.Pp
185.Bl -bullet -compact
186.It
187HP Compaq 8510p
188.It
189HP Compaq nx7300
190.El
191.Pp
192It should work on most HP laptops that feature a WMI enabled BIOS.
193.Sh FILES
194.Bl -tag -width ".Pa /dev/hpcmi"
195.It Pa /dev/hpcmi
196Interface to read BIOS settings
197.El
198.Sh EXAMPLES
199The following can be added to
200.Xr devd.conf 5
201in order disable the LAN interface when WLAN on air and reenable if it's
202not:
203.Bd -literal -offset indent
204notify 0 {
205	match "system"          "ACPI";
206	match "subsystem"       "HP";
207	match "notify"          "0xc0";
208	action                  "ifconfig em0 up";
209};
210
211notify 0 {
212	match "system"          "ACPI";
213	match "subsystem"       "HP";
214	match "notify"          "0xc1";
215	action                  "ifconfig em0 down";
216};
217.Ed
218.Pp
219Enable the ambient light sensor:
220.Bd -literal -offset indent
221sysctl dev.acpi_hp.0.als_enabled=1
222.Ed
223.Pp
224Enable Bluetooth:
225.Bd -literal -offset indent
226sysctl dev.acpi_hp.0.bt_enabled=1
227.Ed
228.Pp
229Get BIOS settings:
230.Bd -literal -offset indent
231cat /dev/hpcmi
232
233Serial Port                                Disable
234Infrared Port                              Enable
235Parallel Port                              Disable
236Flash Media Reader                         Disable
237USB Ports including Express Card slot      Enable
2381394 Port                                  Enable
239Cardbus Slot                               Disable
240Express Card Slot                          Disable
241(...)
242.Ed
243.Pp
244Set maximum detail level for /dev/hpcmi output:
245.Bd -literal -offset indent
246sysctl dev.acpi_hp.0.cmi_detail=7
247.Ed
248.Sh SEE ALSO
249.Xr acpi 4 ,
250.\".Xr acpi_wmi 4 ,
251.Xr devfs 5 ,
252.Xr sysctl.conf 5 ,
253.Xr devd 8 ,
254.Xr sysctl 8
255.Sh HISTORY
256The
257.Nm
258device driver was ported from
259.Fx
260to
261.Dx 2.5 .
262.Sh AUTHORS
263.An -nosplit
264The
265.Nm
266driver was written by
267.An Michael Gmelin Aq freebsd@grem.de
268.Pp
269It has been inspired by hp-wmi driver, which implements a subset of these
270features (hotkeys) on Linux.
271.Bl -tag -width indent
272.It HP CMI whitepaper:
273http://h20331.www2.hp.com/Hpsub/downloads/cmi_whitepaper.pdf
274.It wmi-hp for Linux:
275http://www.kernel.org
276.It WMI and ACPI:
277http://www.microsoft.com/whdc/system/pnppwr/wmi/wmi-acpi.mspx
278.El
279.Pp
280This manual page was written by
281.An Michael Gmelin Aq freebsd@grem.de
282.Sh BUGS
283This driver is experimental and has only been tested on CURRENT i386 on an
284HP Compaq 8510p which featured all supported wireless devices (WWAN/BT/WLAN).
285Expect undefined results when operating on different hardware.
286.Pp
287Loading the driver is slow. Reading from /dev/hpcmi is even slower.
288.Pp
289Additional features like HP specific sensor readings or writing BIOS
290settings are not supported.
291