1 .\" Copyright (c) 1998, Nicolas Souchu
2 .\" Copyright (c) 2004, Joerg Wunsch
3 .\" All rights reserved.
5 .\" Redistribution and use in source and binary forms, with or without
6 .\" modification, are permitted provided that the following conditions
8 .\" 1. Redistributions of source code must retain the above copyright
9 .\" notice, this list of conditions and the following disclaimer.
10 .\" 2. Redistributions in binary form must reproduce the above copyright
11 .\" notice, this list of conditions and the following disclaimer in the
12 .\" documentation and/or other materials provided with the distribution.
14 .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
33 .Nd SMB generic I/O device driver
39 character device driver provides generic i/o to any
42 In order to control SMB devices, use
44 with the ioctls described below.
45 Any of these ioctl commands takes a pointer to
50 #include <sys/types.h>
73 field is always used, and provides the address of the
74 SMBus slave device to talk to.
76 .Bl -column ".Dv SMB_QUICK_WRITE" -compact
77 .It Em Ioctl Ta Em Description
79 .It Dv SMB_QUICK_WRITE Ta
82 command just issues the device address with write intent
83 to the bus, without transferring any data.
84 .It Dv SMB_QUICK_READ Ta
87 command just issues the device address with read intent
88 to the bus, without transferring any data.
92 command sends the byte provided in the
98 command reads a single byte from the device which will
105 command first sends the byte from the
107 field to the device, followed by the byte given in
112 command first sends the byte from the
114 field to the device, followed by the word given in
116 Note that the SMBus byte-order is little-endian by definition.
120 command first sends the byte from the
122 field to the device, and then reads one byte of data from
124 The returned data will be stored in the location pointed to by
129 command first sends the byte from the
131 field to the device, and then reads one word of data from
133 The returned data will be stored in the location pointed to by
138 command first sends the byte from the
140 field to the device, followed by the word provided in
141 .Fa data.process.sdata .
142 It then reads one word of data from the device, and returns it
143 in the location pointed to by
144 .Fa data.process.rdata .
148 command first sends the byte from the
150 field to the device, followed by
152 bytes of data that are taken from the buffer pointed to by
154 The SMBus specification mandates that no more than 32 bytes of
155 data can be transferred in a single block read or write command.
156 This value is available in the constant
157 .Dv SMB_MAXBLOCKSIZE .
161 command first sends the byte from the
163 field to the device, and then reads
165 bytes of data that from the device.
166 These data will be returned in the buffer pointed to by
174 system calls are not implemented by this driver.
178 commands can cause the following driver-specific errors:
181 Device did not respond to selection.
185 Operation not supported by device (not supposed to happen).
187 General argument error.
188 .It Bq Er EWOULDBLOCK
189 SMBus transaction timed out.
197 manual page first appeared in
201 manual page was written by