Sun Sep 27 21:07:29 2009 UTC ()
Bump date for today's changes.


(wiz)
diff -r1.16 -r1.17 src/share/man/man4/gpio.4
diff -r1.9 -r1.10 src/share/man/man4/ichlpcib.4

cvs diff -r1.16 -r1.17 src/share/man/man4/gpio.4 (switch to unified diff)

--- src/share/man/man4/gpio.4 2009/09/27 17:55:32 1.16
+++ src/share/man/man4/gpio.4 2009/09/27 21:07:29 1.17
@@ -1,241 +1,241 @@ @@ -1,241 +1,241 @@
1.\" $NetBSD: gpio.4,v 1.16 2009/09/27 17:55:32 jakllsch Exp $ 1.\" $NetBSD: gpio.4,v 1.17 2009/09/27 21:07:29 wiz Exp $
2.\" $OpenBSD: gpio.4,v 1.5 2004/11/23 09:39:29 reyk Exp $ 2.\" $OpenBSD: gpio.4,v 1.5 2004/11/23 09:39:29 reyk Exp $
3.\" 3.\"
4.\" Copyright (c) 2004 Alexander Yurchenko <grange@openbsd.org> 4.\" Copyright (c) 2004 Alexander Yurchenko <grange@openbsd.org>
5.\" 5.\"
6.\" Permission to use, copy, modify, and distribute this software for any 6.\" Permission to use, copy, modify, and distribute this software for any
7.\" purpose with or without fee is hereby granted, provided that the above 7.\" purpose with or without fee is hereby granted, provided that the above
8.\" copyright notice and this permission notice appear in all copies. 8.\" copyright notice and this permission notice appear in all copies.
9.\" 9.\"
10.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 10.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 11.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 12.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 13.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 14.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 15.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 16.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17.\" 17.\"
18.Dd September 25, 2009 18.Dd September 27, 2009
19.Dt GPIO 4 19.Dt GPIO 4
20.Os 20.Os
21.Sh NAME 21.Sh NAME
22.Nm gpio 22.Nm gpio
23.Nd General Purpose Input/Output 23.Nd General Purpose Input/Output
24.Sh SYNOPSIS 24.Sh SYNOPSIS
25.Cd "gpio* at elansc?" 25.Cd "gpio* at elansc?"
26.Cd "gpio* at epgpio?" 26.Cd "gpio* at epgpio?"
27.Cd "gpio* at gcscpcib?" 27.Cd "gpio* at gcscpcib?"
28.Cd "gpio* at gpiosim?" 28.Cd "gpio* at gpiosim?"
29.Cd "gpio* at gscpcib?" 29.Cd "gpio* at gscpcib?"
30.Cd "gpio* at ichlpcib?" 30.Cd "gpio* at ichlpcib?"
31.Cd "gpio* at nsclpcsio?" 31.Cd "gpio* at nsclpcsio?"
32.Cd "gpio* at ppbus?" 32.Cd "gpio* at ppbus?"
33.Pp 33.Pp
34.In sys/types.h 34.In sys/types.h
35.In sys/gpio.h 35.In sys/gpio.h
36.In sys/ioctl.h 36.In sys/ioctl.h
37.Sh DESCRIPTION 37.Sh DESCRIPTION
38The 38The
39.Nm 39.Nm
40device attaches to the 40device attaches to the
41.Tn GPIO 41.Tn GPIO
42controller and provides a uniform programming interface to its pins. 42controller and provides a uniform programming interface to its pins.
43.Pp 43.Pp
44Each 44Each
45.Tn GPIO 45.Tn GPIO
46controller with an attached 46controller with an attached
47.Nm 47.Nm
48device has an associated device file under the 48device has an associated device file under the
49.Pa /dev 49.Pa /dev
50directory, e.g.\& 50directory, e.g.\&
51.Pa /dev/gpio0 . 51.Pa /dev/gpio0 .
52Access from userland is performed through 52Access from userland is performed through
53.Xr ioctl 2 53.Xr ioctl 2
54calls on these devices. 54calls on these devices.
55.Pp 55.Pp
56Whether the layout of the GPIO device can be configured is subject to 56Whether the layout of the GPIO device can be configured is subject to
57authorization by the 57authorization by the
58.Xr kauth 9 58.Xr kauth 9
59framework. 59framework.
60.Pp 60.Pp
61If for example 61If for example
62.Xr secmodel_securelevel 9 62.Xr secmodel_securelevel 9
63is active, the layout of the GPIO device is defined at a securelevel 63is active, the layout of the GPIO device is defined at a securelevel
64less than 1, i.e. typically during system boot, and cannot be changed later. 64less than 1, i.e. typically during system boot, and cannot be changed later.
65GPIO pins can be configured and given a symbolic name and device drivers 65GPIO pins can be configured and given a symbolic name and device drivers
66that use GPIO pins can be attached to the 66that use GPIO pins can be attached to the
67.Nm 67.Nm
68device at a securelevel less than 1. 68device at a securelevel less than 1.
69All other pins will not be accessible once the runlevel has been raised. 69All other pins will not be accessible once the runlevel has been raised.
70.Sh IOCTL INTERFACE 70.Sh IOCTL INTERFACE
71The following structures and constants are defined in the 71The following structures and constants are defined in the
72.Aq Pa sys/gpio.h 72.Aq Pa sys/gpio.h
73header file: 73header file:
74.Pp 74.Pp
75.Bl -tag -width XXXX -compact 75.Bl -tag -width XXXX -compact
76.It Dv GPIOINFO (struct gpio_info) 76.It Dv GPIOINFO (struct gpio_info)
77Returns information about the 77Returns information about the
78.Tn GPIO 78.Tn GPIO
79controller in the 79controller in the
80.Fa gpio_info 80.Fa gpio_info
81structure: 81structure:
82.Bd -literal 82.Bd -literal
83struct gpio_info { 83struct gpio_info {
84 int gpio_npins; /* total number of pins available */ 84 int gpio_npins; /* total number of pins available */
85}; 85};
86.Ed 86.Ed
87.Pp 87.Pp
88.It Dv GPIOREAD (struct gpio_req) 88.It Dv GPIOREAD (struct gpio_req)
89Returns the input pin value in the 89Returns the input pin value in the
90.Fa gpio_pin_op 90.Fa gpio_pin_op
91structure: 91structure:
92.Bd -literal 92.Bd -literal
93#define GPIOMAXNAME 64 93#define GPIOMAXNAME 64
94 94
95struct gpio_req { 95struct gpio_req {
96 char gp_name[GPIOMAXNAME]; /* pin name */ 96 char gp_name[GPIOMAXNAME]; /* pin name */
97 int gp_pin; /* pin number */ 97 int gp_pin; /* pin number */
98 int gp_value; /* value */ 98 int gp_value; /* value */
99}; 99};
100.Ed 100.Ed
101.Pp 101.Pp
102The 102The
103.Fa gp_name 103.Fa gp_name
104or 104or
105.Fa gp_pin 105.Fa gp_pin
106field must be set before calling. 106field must be set before calling.
107.Pp 107.Pp
108.It Dv GPIOWRITE (struct gpio_req) 108.It Dv GPIOWRITE (struct gpio_req)
109Writes the output value to the pin. 109Writes the output value to the pin.
110The value set in the 110The value set in the
111.Fa gp_value 111.Fa gp_value
112field must be either 112field must be either
113.Dv GPIO_PIN_LOW 113.Dv GPIO_PIN_LOW
114(logical 0) or 114(logical 0) or
115.Dv GPIO_PIN_HIGH 115.Dv GPIO_PIN_HIGH
116(logical 1). 116(logical 1).
117On return, the 117On return, the
118.Fa gp_value 118.Fa gp_value
119field contains the old pin state. 119field contains the old pin state.
120.Pp 120.Pp
121.It Dv GPIOTOGGLE (struct gpio_req) 121.It Dv GPIOTOGGLE (struct gpio_req)
122Toggles the pin output value, i.e. changes it to the opposite. 122Toggles the pin output value, i.e. changes it to the opposite.
123.Fa gp_value 123.Fa gp_value
124field is ignored and on return contains the old pin state. 124field is ignored and on return contains the old pin state.
125.Pp 125.Pp
126.It Dv GPIOSET (struct gpio_set) 126.It Dv GPIOSET (struct gpio_set)
127Changes pin configuration flags with the new ones provided in the 127Changes pin configuration flags with the new ones provided in the
128.Fa gpio_set 128.Fa gpio_set
129structure: 129structure:
130.Bd -literal 130.Bd -literal
131#define GPIOMAXNAME 64 131#define GPIOMAXNAME 64
132 132
133struct gpio_set { 133struct gpio_set {
134 char gp_name[GPIOMAXNAME]; /* pin name */ 134 char gp_name[GPIOMAXNAME]; /* pin name */
135 int gp_pin; /* pin number */ 135 int gp_pin; /* pin number */
136 int gp_caps; /* pin capabilities (ro) */ 136 int gp_caps; /* pin capabilities (ro) */
137 int gp_flags; /* pin configuration flags */ 137 int gp_flags; /* pin configuration flags */
138 char gp_name2[GPIOMAXNAME]; /* new name */ 138 char gp_name2[GPIOMAXNAME]; /* new name */
139}; 139};
140.Ed 140.Ed
141.Pp 141.Pp
142The 142The
143.Fa gp_flags 143.Fa gp_flags
144field is a combination of the following flags: 144field is a combination of the following flags:
145.Pp 145.Pp
146.Bl -tag -width GPIO_PIN_OPENDRAIN -compact 146.Bl -tag -width GPIO_PIN_OPENDRAIN -compact
147.It Dv GPIO_PIN_INPUT 147.It Dv GPIO_PIN_INPUT
148input direction 148input direction
149.It Dv GPIO_PIN_OUTPUT 149.It Dv GPIO_PIN_OUTPUT
150output direction 150output direction
151.It Dv GPIO_PIN_INOUT 151.It Dv GPIO_PIN_INOUT
152bi-directional 152bi-directional
153.It Dv GPIO_PIN_OPENDRAIN 153.It Dv GPIO_PIN_OPENDRAIN
154open-drain output 154open-drain output
155.It Dv GPIO_PIN_PUSHPULL 155.It Dv GPIO_PIN_PUSHPULL
156push-pull output 156push-pull output
157.It Dv GPIO_PIN_TRISTATE 157.It Dv GPIO_PIN_TRISTATE
158output disabled 158output disabled
159.It Dv GPIO_PIN_PULLUP 159.It Dv GPIO_PIN_PULLUP
160internal pull-up enabled 160internal pull-up enabled
161.It Dv GPIO_PIN_PULLDOWN 161.It Dv GPIO_PIN_PULLDOWN
162internal pull-down enabled 162internal pull-down enabled
163.It Dv GPIO_PIN_INVIN 163.It Dv GPIO_PIN_INVIN
164invert input 164invert input
165.It Dv GPIO_PIN_INVOUT 165.It Dv GPIO_PIN_INVOUT
166invert output 166invert output
167.It Dv GPIO_PIN_PULSE 167.It Dv GPIO_PIN_PULSE
168pulse output 168pulse output
169.El 169.El
170.Pp 170.Pp
171Note that the GPIO controller 171Note that the GPIO controller
172may not support all of these flags. 172may not support all of these flags.
173On return the 173On return the
174.Fa gp_caps 174.Fa gp_caps
175field contains flags that are supported. 175field contains flags that are supported.
176If no flags are specified, the pin configuration stays unchanged. 176If no flags are specified, the pin configuration stays unchanged.
177.Pp 177.Pp
178Only GPIO pins that have been set using 178Only GPIO pins that have been set using
179.Ar GPIOSET 179.Ar GPIOSET
180will be accessible at securelevels greater than 0. 180will be accessible at securelevels greater than 0.
181.Pp 181.Pp
182.It Dv GPIOUNSET (struct gpio_set) 182.It Dv GPIOUNSET (struct gpio_set)
183Unset the specified pin, i.e. clear its name and make it unaccessible 183Unset the specified pin, i.e. clear its name and make it unaccessible
184at securelevels greater than 0. 184at securelevels greater than 0.
185.Pp 185.Pp
186.It Dv GPIOATTACH (struct gpio_attach) 186.It Dv GPIOATTACH (struct gpio_attach)
187Attach the device described in the 187Attach the device described in the
188.Fa gpio_attach 188.Fa gpio_attach
189structure on this gpio device. 189structure on this gpio device.
190.Bd -literal 190.Bd -literal
191struct gpio_attach { 191struct gpio_attach {
192 char ga_dvname[16]; /* device name */ 192 char ga_dvname[16]; /* device name */
193 int ga_offset; /* pin number */ 193 int ga_offset; /* pin number */
194 u_int32_t ga_mask; /* binary mask */ 194 u_int32_t ga_mask; /* binary mask */
195}; 195};
196.Ed 196.Ed
197.Pp 197.Pp
198.It Dv GPIODETACH (struct gpio_attach) 198.It Dv GPIODETACH (struct gpio_attach)
199Detach a device from this gpio device that was previously attached using the 199Detach a device from this gpio device that was previously attached using the
200.Dv GPIOATTACH 200.Dv GPIOATTACH
201.Xr ioctl 2 . 201.Xr ioctl 2 .
202The 202The
203.Fa ga_offset 203.Fa ga_offset
204and 204and
205.Fa ga_mask 205.Fa ga_mask
206fields of the 206fields of the
207.Fa gpio_attach 207.Fa gpio_attach
208structure are ignored. 208structure are ignored.
209.El 209.El
210.Sh FILES 210.Sh FILES
211.Bl -tag -width "/dev/gpiou" -compact 211.Bl -tag -width "/dev/gpiou" -compact
212.It /dev/gpio Ns Ar u 212.It /dev/gpio Ns Ar u
213GPIO device unit 213GPIO device unit
214.Ar u 214.Ar u
215file. 215file.
216.El 216.El
217.Sh SEE ALSO 217.Sh SEE ALSO
218.Xr ioctl 2 , 218.Xr ioctl 2 ,
219.Xr gpioctl 8 219.Xr gpioctl 8
220.Sh HISTORY 220.Sh HISTORY
221The 221The
222.Nm 222.Nm
223device first appeared in 223device first appeared in
224.Ox 3.6 224.Ox 3.6
225and 225and
226.Nx 4.0 . 226.Nx 4.0 .
227.Sh AUTHORS 227.Sh AUTHORS
228.An -nosplit 228.An -nosplit
229The 229The
230.Nm 230.Nm
231driver was written by 231driver was written by
232.An Alexander Yurchenko Aq grange@openbsd.org . 232.An Alexander Yurchenko Aq grange@openbsd.org .
233.Nm 233.Nm
234and was ported to 234and was ported to
235.Nx 235.Nx
236by 236by
237.An Jared D. McNeill Aq jmcneill@NetBSD.org . 237.An Jared D. McNeill Aq jmcneill@NetBSD.org .
238Runtime device attachment was added by 238Runtime device attachment was added by
239.An Marc Balmer Aq marc@msys.ch . 239.An Marc Balmer Aq marc@msys.ch .
240.Sh BUGS 240.Sh BUGS
241Event capabilities are not supported. 241Event capabilities are not supported.

cvs diff -r1.9 -r1.10 src/share/man/man4/Attic/ichlpcib.4 (switch to unified diff)

--- src/share/man/man4/Attic/ichlpcib.4 2009/09/27 17:55:32 1.9
+++ src/share/man/man4/Attic/ichlpcib.4 2009/09/27 21:07:29 1.10
@@ -1,87 +1,87 @@ @@ -1,87 +1,87 @@
1.\" $NetBSD: ichlpcib.4,v 1.9 2009/09/27 17:55:32 jakllsch Exp $ 1.\" $NetBSD: ichlpcib.4,v 1.10 2009/09/27 21:07:29 wiz Exp $
2.\" 2.\"
3.\" Copyright (c) 2004 The NetBSD Foundation, Inc. 3.\" Copyright (c) 2004 The NetBSD Foundation, Inc.
4.\" All rights reserved. 4.\" All rights reserved.
5.\" 5.\"
6.\" This code is derived from software contributed to The NetBSD Foundation 6.\" This code is derived from software contributed to The NetBSD Foundation
7.\" by Minoura Makoto and Matthew R. Green. 7.\" by Minoura Makoto and Matthew R. Green.
8.\" 8.\"
9.\" Redistribution and use in source and binary forms, with or without 9.\" Redistribution and use in source and binary forms, with or without
10.\" modification, are permitted provided that the following conditions 10.\" modification, are permitted provided that the following conditions
11.\" are met: 11.\" are met:
12.\" 1. Redistributions of source code must retain the above copyright 12.\" 1. Redistributions of source code must retain the above copyright
13.\" notice, this list of conditions and the following disclaimer. 13.\" notice, this list of conditions and the following disclaimer.
14.\" 2. Redistributions in binary form must reproduce the above copyright 14.\" 2. Redistributions in binary form must reproduce the above copyright
15.\" notice, this list of conditions and the following disclaimer in the 15.\" notice, this list of conditions and the following disclaimer in the
16.\" documentation and/or other materials provided with the distribution. 16.\" documentation and/or other materials provided with the distribution.
17.\" 17.\"
18.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 18.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
19.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 19.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
20.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 20.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
21.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 21.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
22.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
26.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
27.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
28.\" POSSIBILITY OF SUCH DAMAGE. 28.\" POSSIBILITY OF SUCH DAMAGE.
29.\" 29.\"
30.Dd March 28, 2008 30.Dd September 27, 2009
31.Dt ICHLPCIB 4 31.Dt ICHLPCIB 4
32.Os 32.Os
33.Sh NAME 33.Sh NAME
34.Nm ichlpcib 34.Nm ichlpcib
35.Nd Intel ICH LPC Interface Bridge 35.Nd Intel ICH LPC Interface Bridge
36.Sh SYNOPSIS 36.Sh SYNOPSIS
37.Cd "ichlpcib* at pci? dev ? function ?" 37.Cd "ichlpcib* at pci? dev ? function ?"
38.Cd "hpet0 at ichlpcib?" 38.Cd "hpet0 at ichlpcib?"
39.Cd "isa0 at ichlpcib?" 39.Cd "isa0 at ichlpcib?"
40.Cd "gpio* at ichlpcib?" 40.Cd "gpio* at ichlpcib?"
41.Sh DESCRIPTION 41.Sh DESCRIPTION
42The 42The
43.Nm 43.Nm
44driver supports the Intel ICH LPC Interface Bridges on compatible 44driver supports the Intel ICH LPC Interface Bridges on compatible
45chipsets. 45chipsets.
46Supported functions include: 46Supported functions include:
47.Bl -bullet 47.Bl -bullet
48.It 48.It
49Watchdog timer. 49Watchdog timer.
50The watchdog timer may be configured for a 2 seconds (on ICH6 or newer) 50The watchdog timer may be configured for a 2 seconds (on ICH6 or newer)
51and 4 seconds (on ICH5 or older) min period and for a 39 seconds 51and 4 seconds (on ICH5 or older) min period and for a 39 seconds
52(on ICH5 or older) or 613 seconds max period (on ICH6 or newer). 52(on ICH5 or older) or 613 seconds max period (on ICH6 or newer).
53.It 53.It
54Power Management timer. 54Power Management timer.
55A 24-bit timer available to be used by the timecounters framework. 55A 24-bit timer available to be used by the timecounters framework.
56.It 56.It
57SpeedStep. 57SpeedStep.
58In some systems the SpeedStep function is also available, and can be 58In some systems the SpeedStep function is also available, and can be
59used to switch between high and low frequency (to reduce power consumption) 59used to switch between high and low frequency (to reduce power consumption)
60via the 60via the
61.Li machdep.speedstep_state 61.Li machdep.speedstep_state
62.Xr sysctl 8 62.Xr sysctl 8
63node. 63node.
64A value of 0 will use the low frequency (low power) and a 1 will 64A value of 0 will use the low frequency (low power) and a 1 will
65enable the high frequency (full power). 65enable the high frequency (full power).
66.It 66.It
67General Purpose Input/Output. 67General Purpose Input/Output.
68The ICH provides up to 64 I/O pins which can be accessed through the 68The ICH provides up to 64 I/O pins which can be accessed through the
69.Xr gpio 4 69.Xr gpio 4
70framework. 70framework.
71.El 71.El
72.Sh SEE ALSO 72.Sh SEE ALSO
73.Xr gpio 4 , 73.Xr gpio 4 ,
74.Xr sysctl 8 , 74.Xr sysctl 8 ,
75.Xr wdogctl 8 75.Xr wdogctl 8
76.Sh HISTORY 76.Sh HISTORY
77The 77The
78.Nm 78.Nm
79driver first appeared in 79driver first appeared in
80.Nx 3.0 . 80.Nx 3.0 .
81.Sh AUTHORS 81.Sh AUTHORS
82The 82The
83.Nm 83.Nm
84driver was written by 84driver was written by
85.An Minoura Makoto 85.An Minoura Makoto
86and 86and
87.An Matthew R. Green . 87.An Matthew R. Green .