Blame view
Documentation/parport-lowlevel.txt
37.1 KB
be9d0411f parport-lowlevel.... |
1 |
=============================== |
1da177e4c Linux-2.6.12-rc2 |
2 |
PARPORT interface documentation |
be9d0411f parport-lowlevel.... |
3 |
=============================== |
1da177e4c Linux-2.6.12-rc2 |
4 |
|
be9d0411f parport-lowlevel.... |
5 |
:Time-stamp: <2000-02-24 13:30:20 twaugh> |
1da177e4c Linux-2.6.12-rc2 |
6 7 |
Described here are the following functions: |
be9d0411f parport-lowlevel.... |
8 |
Global functions:: |
1da177e4c Linux-2.6.12-rc2 |
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
parport_register_driver parport_unregister_driver parport_enumerate parport_register_device parport_unregister_device parport_claim parport_claim_or_block parport_release parport_yield parport_yield_blocking parport_wait_peripheral parport_poll_peripheral parport_wait_event parport_negotiate parport_read parport_write parport_open parport_close parport_device_id |
1da177e4c Linux-2.6.12-rc2 |
28 29 30 31 32 33 |
parport_device_coords parport_find_class parport_find_device parport_set_timeout Port functions (can be overridden by low-level drivers): |
be9d0411f parport-lowlevel.... |
34 35 |
SPP:: |
1da177e4c Linux-2.6.12-rc2 |
36 37 38 39 40 41 42 43 44 45 |
port->ops->read_data port->ops->write_data port->ops->read_status port->ops->read_control port->ops->write_control port->ops->frob_control port->ops->enable_irq port->ops->disable_irq port->ops->data_forward port->ops->data_reverse |
be9d0411f parport-lowlevel.... |
46 |
EPP:: |
1da177e4c Linux-2.6.12-rc2 |
47 48 49 50 |
port->ops->epp_write_data port->ops->epp_read_data port->ops->epp_write_addr port->ops->epp_read_addr |
be9d0411f parport-lowlevel.... |
51 |
ECP:: |
1da177e4c Linux-2.6.12-rc2 |
52 53 54 |
port->ops->ecp_write_data port->ops->ecp_read_data port->ops->ecp_write_addr |
be9d0411f parport-lowlevel.... |
55 |
Other:: |
1da177e4c Linux-2.6.12-rc2 |
56 57 58 |
port->ops->nibble_read_data port->ops->byte_read_data port->ops->compat_write_data |
be9d0411f parport-lowlevel.... |
59 |
The parport subsystem comprises ``parport`` (the core port-sharing |
1da177e4c Linux-2.6.12-rc2 |
60 61 62 63 64 65 66 67 68 69 |
code), and a variety of low-level drivers that actually do the port accesses. Each low-level driver handles a particular style of port (PC, Amiga, and so on). The parport interface to the device driver author can be broken down into global functions and port functions. The global functions are mostly for communicating between the device driver and the parport subsystem: acquiring a list of available ports, claiming a port for exclusive use, and so on. They also include |
be9d0411f parport-lowlevel.... |
70 |
``generic`` functions for doing standard things that will work on any |
1da177e4c Linux-2.6.12-rc2 |
71 72 73 |
IEEE 1284-capable architecture. The port functions are provided by the low-level drivers, although the |
be9d0411f parport-lowlevel.... |
74 |
core parport module provides generic ``defaults`` for some routines. |
1da177e4c Linux-2.6.12-rc2 |
75 |
The port functions can be split into three groups: SPP, EPP, and ECP. |
be9d0411f parport-lowlevel.... |
76 |
SPP (Standard Parallel Port) functions modify so-called ``SPP`` |
1da177e4c Linux-2.6.12-rc2 |
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
registers: data, status, and control. The hardware may not actually have registers exactly like that, but the PC does and this interface is modelled after common PC implementations. Other low-level drivers may be able to emulate most of the functionality. EPP (Enhanced Parallel Port) functions are provided for reading and writing in IEEE 1284 EPP mode, and ECP (Extended Capabilities Port) functions are used for IEEE 1284 ECP mode. (What about BECP? Does anyone care?) Hardware assistance for EPP and/or ECP transfers may or may not be available, and if it is available it may or may not be used. If hardware is not used, the transfer will be software-driven. In order to cope with peripherals that only tenuously support IEEE 1284, a low-level driver specific function is provided, for altering 'fudge factors'. |
be9d0411f parport-lowlevel.... |
94 95 |
Global functions ================ |
1da177e4c Linux-2.6.12-rc2 |
96 97 |
parport_register_driver - register a device driver with parport |
be9d0411f parport-lowlevel.... |
98 |
--------------------------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
99 100 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
101 102 103 |
^^^^^^^^ :: |
1da177e4c Linux-2.6.12-rc2 |
104 |
|
be9d0411f parport-lowlevel.... |
105 |
#include <linux/parport.h> |
1da177e4c Linux-2.6.12-rc2 |
106 |
|
be9d0411f parport-lowlevel.... |
107 108 109 110 111 112 113 |
struct parport_driver { const char *name; void (*attach) (struct parport *); void (*detach) (struct parport *); struct parport_driver *next; }; int parport_register_driver (struct parport_driver *driver); |
1da177e4c Linux-2.6.12-rc2 |
114 115 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
116 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
117 118 119 120 121 |
In order to be notified about parallel ports when they are detected, parport_register_driver should be called. Your driver will immediately be notified of all ports that have already been detected, and of each new port as low-level drivers are loaded. |
be9d0411f parport-lowlevel.... |
122 |
A ``struct parport_driver`` contains the textual name of your driver, |
1da177e4c Linux-2.6.12-rc2 |
123 124 125 126 |
a pointer to a function to handle new ports, and a pointer to a function to handle ports going away due to a low-level driver unloading. Ports will only be detached if they are not being used (i.e. there are no devices registered on them). |
be9d0411f parport-lowlevel.... |
127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
The visible parts of the ``struct parport *`` argument given to attach/detach are:: struct parport { struct parport *next; /* next parport in list */ const char *name; /* port's name */ unsigned int modes; /* bitfield of hardware modes */ struct parport_device_info probe_info; /* IEEE1284 info */ int number; /* parport index */ struct parport_operations *ops; ... }; |
1da177e4c Linux-2.6.12-rc2 |
141 142 143 |
There are other members of the structure, but they should not be touched. |
be9d0411f parport-lowlevel.... |
144 |
The ``modes`` member summarises the capabilities of the underlying |
1da177e4c Linux-2.6.12-rc2 |
145 |
hardware. It consists of flags which may be bitwise-ored together: |
be9d0411f parport-lowlevel.... |
146 |
============================= =============================================== |
1da177e4c Linux-2.6.12-rc2 |
147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 |
PARPORT_MODE_PCSPP IBM PC registers are available, i.e. functions that act on data, control and status registers are probably writing directly to the hardware. PARPORT_MODE_TRISTATE The data drivers may be turned off. This allows the data lines to be used for reverse (peripheral to host) transfers. PARPORT_MODE_COMPAT The hardware can assist with compatibility-mode (printer) transfers, i.e. compat_write_block. PARPORT_MODE_EPP The hardware can assist with EPP transfers. PARPORT_MODE_ECP The hardware can assist with ECP transfers. PARPORT_MODE_DMA The hardware can use DMA, so you might want to pass ISA DMA-able memory (i.e. memory allocated using the GFP_DMA flag with kmalloc) to the low-level driver in order to take advantage of it. |
be9d0411f parport-lowlevel.... |
169 |
============================= =============================================== |
1da177e4c Linux-2.6.12-rc2 |
170 |
|
be9d0411f parport-lowlevel.... |
171 |
There may be other flags in ``modes`` as well. |
1da177e4c Linux-2.6.12-rc2 |
172 |
|
be9d0411f parport-lowlevel.... |
173 174 |
The contents of ``modes`` is advisory only. For example, if the hardware is capable of DMA, and PARPORT_MODE_DMA is in ``modes``, it |
1da177e4c Linux-2.6.12-rc2 |
175 176 177 178 179 |
doesn't necessarily mean that DMA will always be used when possible. Similarly, hardware that is capable of assisting ECP transfers won't necessarily be used. RETURN VALUE |
be9d0411f parport-lowlevel.... |
180 |
^^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
181 182 183 184 |
Zero on success, otherwise an error code. ERRORS |
be9d0411f parport-lowlevel.... |
185 |
^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
186 187 188 189 |
None. (Can it fail? Why return int?) EXAMPLE |
be9d0411f parport-lowlevel.... |
190 |
^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
191 |
|
be9d0411f parport-lowlevel.... |
192 |
:: |
1da177e4c Linux-2.6.12-rc2 |
193 |
|
be9d0411f parport-lowlevel.... |
194 195 196 197 198 199 200 |
static void lp_attach (struct parport *port) { ... private = kmalloc (...); dev[count++] = parport_register_device (...); ... } |
1da177e4c Linux-2.6.12-rc2 |
201 |
|
be9d0411f parport-lowlevel.... |
202 203 204 205 |
static void lp_detach (struct parport *port) { ... } |
1da177e4c Linux-2.6.12-rc2 |
206 |
|
be9d0411f parport-lowlevel.... |
207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 |
static struct parport_driver lp_driver = { "lp", lp_attach, lp_detach, NULL /* always put NULL here */ }; int lp_init (void) { ... if (parport_register_driver (&lp_driver)) { /* Failed; nothing we can do. */ return -EIO; } ... |
1da177e4c Linux-2.6.12-rc2 |
222 |
} |
be9d0411f parport-lowlevel.... |
223 |
|
1da177e4c Linux-2.6.12-rc2 |
224 225 |
SEE ALSO |
be9d0411f parport-lowlevel.... |
226 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
227 228 |
parport_unregister_driver, parport_register_device, parport_enumerate |
be9d0411f parport-lowlevel.... |
229 |
|
1da177e4c Linux-2.6.12-rc2 |
230 |
parport_unregister_driver - tell parport to forget about this driver |
be9d0411f parport-lowlevel.... |
231 |
-------------------------------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
232 233 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
234 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
235 |
|
be9d0411f parport-lowlevel.... |
236 |
:: |
1da177e4c Linux-2.6.12-rc2 |
237 |
|
be9d0411f parport-lowlevel.... |
238 239 240 241 242 243 244 245 246 |
#include <linux/parport.h> struct parport_driver { const char *name; void (*attach) (struct parport *); void (*detach) (struct parport *); struct parport_driver *next; }; void parport_unregister_driver (struct parport_driver *driver); |
1da177e4c Linux-2.6.12-rc2 |
247 248 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
249 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
250 251 252 253 254 255 |
This tells parport not to notify the device driver of new ports or of ports going away. Registered devices belonging to that driver are NOT unregistered: parport_unregister_device must be used for each one. EXAMPLE |
be9d0411f parport-lowlevel.... |
256 |
^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
257 |
|
be9d0411f parport-lowlevel.... |
258 |
:: |
1da177e4c Linux-2.6.12-rc2 |
259 |
|
be9d0411f parport-lowlevel.... |
260 261 262 263 264 265 266 267 268 269 270 |
void cleanup_module (void) { ... /* Stop notifications. */ parport_unregister_driver (&lp_driver); /* Unregister devices. */ for (i = 0; i < NUM_DEVS; i++) parport_unregister_device (dev[i]); ... } |
1da177e4c Linux-2.6.12-rc2 |
271 272 |
SEE ALSO |
be9d0411f parport-lowlevel.... |
273 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
274 275 |
parport_register_driver, parport_enumerate |
be9d0411f parport-lowlevel.... |
276 |
|
1da177e4c Linux-2.6.12-rc2 |
277 |
parport_enumerate - retrieve a list of parallel ports (DEPRECATED) |
be9d0411f parport-lowlevel.... |
278 |
------------------------------------------------------------------ |
1da177e4c Linux-2.6.12-rc2 |
279 280 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
281 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
282 |
|
be9d0411f parport-lowlevel.... |
283 |
:: |
1da177e4c Linux-2.6.12-rc2 |
284 |
|
be9d0411f parport-lowlevel.... |
285 286 287 |
#include <linux/parport.h> struct parport *parport_enumerate (void); |
1da177e4c Linux-2.6.12-rc2 |
288 289 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
290 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
291 292 |
Retrieve the first of a list of valid parallel ports for this machine. |
be9d0411f parport-lowlevel.... |
293 294 |
Successive parallel ports can be found using the ``struct parport *next`` element of the ``struct parport *`` that is returned. If ``next`` |
1da177e4c Linux-2.6.12-rc2 |
295 296 297 298 |
is NULL, there are no more parallel ports in the list. The number of ports in the list will not exceed PARPORT_MAX. RETURN VALUE |
be9d0411f parport-lowlevel.... |
299 |
^^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
300 |
|
be9d0411f parport-lowlevel.... |
301 |
A ``struct parport *`` describing a valid parallel port for the machine, |
1da177e4c Linux-2.6.12-rc2 |
302 303 304 |
or NULL if there are none. ERRORS |
be9d0411f parport-lowlevel.... |
305 |
^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
306 307 308 309 310 |
This function can return NULL to indicate that there are no parallel ports to use. EXAMPLE |
be9d0411f parport-lowlevel.... |
311 312 313 |
^^^^^^^ :: |
1da177e4c Linux-2.6.12-rc2 |
314 |
|
be9d0411f parport-lowlevel.... |
315 316 317 318 319 320 321 322 323 324 325 |
int detect_device (void) { struct parport *port; for (port = parport_enumerate (); port != NULL; port = port->next) { /* Try to detect a device on the port... */ ... } } |
1da177e4c Linux-2.6.12-rc2 |
326 |
|
1da177e4c Linux-2.6.12-rc2 |
327 |
... |
1da177e4c Linux-2.6.12-rc2 |
328 |
} |
1da177e4c Linux-2.6.12-rc2 |
329 |
NOTES |
be9d0411f parport-lowlevel.... |
330 |
^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
331 332 333 334 335 |
parport_enumerate is deprecated; parport_register_driver should be used instead. SEE ALSO |
be9d0411f parport-lowlevel.... |
336 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
337 338 |
parport_register_driver, parport_unregister_driver |
be9d0411f parport-lowlevel.... |
339 |
|
1da177e4c Linux-2.6.12-rc2 |
340 |
parport_register_device - register to use a port |
be9d0411f parport-lowlevel.... |
341 |
------------------------------------------------ |
1da177e4c Linux-2.6.12-rc2 |
342 343 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
344 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
345 |
|
be9d0411f parport-lowlevel.... |
346 |
:: |
1da177e4c Linux-2.6.12-rc2 |
347 |
|
be9d0411f parport-lowlevel.... |
348 |
#include <linux/parport.h> |
1da177e4c Linux-2.6.12-rc2 |
349 |
|
be9d0411f parport-lowlevel.... |
350 351 352 353 354 355 356 357 358 359 360 |
typedef int (*preempt_func) (void *handle); typedef void (*wakeup_func) (void *handle); typedef int (*irq_func) (int irq, void *handle, struct pt_regs *); struct pardevice *parport_register_device(struct parport *port, const char *name, preempt_func preempt, wakeup_func wakeup, irq_func irq, int flags, void *handle); |
1da177e4c Linux-2.6.12-rc2 |
361 362 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
363 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
364 365 |
Use this function to register your device driver on a parallel port |
be9d0411f parport-lowlevel.... |
366 |
(``port``). Once you have done that, you will be able to use |
1da177e4c Linux-2.6.12-rc2 |
367 |
parport_claim and parport_release in order to use the port. |
be9d0411f parport-lowlevel.... |
368 |
The (``name``) argument is the name of the device that appears in /proc |
cdb32706f plip: fix parport... |
369 370 |
filesystem. The string must be valid for the whole lifetime of the device (until parport_unregister_device is called). |
1da177e4c Linux-2.6.12-rc2 |
371 |
This function will register three callbacks into your driver: |
be9d0411f parport-lowlevel.... |
372 |
``preempt``, ``wakeup`` and ``irq``. Each of these may be NULL in order to |
1da177e4c Linux-2.6.12-rc2 |
373 |
indicate that you do not want a callback. |
be9d0411f parport-lowlevel.... |
374 375 |
When the ``preempt`` function is called, it is because another driver wishes to use the parallel port. The ``preempt`` function should return |
1da177e4c Linux-2.6.12-rc2 |
376 377 378 |
non-zero if the parallel port cannot be released yet -- if zero is returned, the port is lost to another driver and the port must be re-claimed before use. |
be9d0411f parport-lowlevel.... |
379 |
The ``wakeup`` function is called once another driver has released the |
1da177e4c Linux-2.6.12-rc2 |
380 |
port and no other driver has yet claimed it. You can claim the |
be9d0411f parport-lowlevel.... |
381 |
parallel port from within the ``wakeup`` function (in which case the |
1da177e4c Linux-2.6.12-rc2 |
382 383 384 385 |
claim is guaranteed to succeed), or choose not to if you don't need it now. If an interrupt occurs on the parallel port your driver has claimed, |
be9d0411f parport-lowlevel.... |
386 |
the ``irq`` function will be called. (Write something about shared |
1da177e4c Linux-2.6.12-rc2 |
387 |
interrupts here.) |
be9d0411f parport-lowlevel.... |
388 |
The ``handle`` is a pointer to driver-specific data, and is passed to |
1da177e4c Linux-2.6.12-rc2 |
389 |
the callback functions. |
be9d0411f parport-lowlevel.... |
390 |
``flags`` may be a bitwise combination of the following flags: |
1da177e4c Linux-2.6.12-rc2 |
391 |
|
be9d0411f parport-lowlevel.... |
392 |
===================== ================================================= |
1da177e4c Linux-2.6.12-rc2 |
393 |
Flag Meaning |
be9d0411f parport-lowlevel.... |
394 |
===================== ================================================= |
1da177e4c Linux-2.6.12-rc2 |
395 396 |
PARPORT_DEV_EXCL The device cannot share the parallel port at all. Use this only when absolutely necessary. |
be9d0411f parport-lowlevel.... |
397 |
===================== ================================================= |
1da177e4c Linux-2.6.12-rc2 |
398 399 400 |
The typedefs are not actually defined -- they are only shown in order to make the function prototype more readable. |
be9d0411f parport-lowlevel.... |
401 |
The visible parts of the returned ``struct pardevice`` are:: |
1da177e4c Linux-2.6.12-rc2 |
402 |
|
be9d0411f parport-lowlevel.... |
403 404 405 406 407 |
struct pardevice { struct parport *port; /* Associated port */ void *private; /* Device driver's 'handle' */ ... }; |
1da177e4c Linux-2.6.12-rc2 |
408 409 |
RETURN VALUE |
be9d0411f parport-lowlevel.... |
410 |
^^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
411 |
|
be9d0411f parport-lowlevel.... |
412 |
A ``struct pardevice *``: a handle to the registered parallel port |
1da177e4c Linux-2.6.12-rc2 |
413 414 415 |
device that can be used for parport_claim, parport_release, etc. ERRORS |
be9d0411f parport-lowlevel.... |
416 |
^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
417 418 419 420 421 |
A return value of NULL indicates that there was a problem registering a device on that port. EXAMPLE |
be9d0411f parport-lowlevel.... |
422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 |
^^^^^^^ :: static int preempt (void *handle) { if (busy_right_now) return 1; must_reclaim_port = 1; return 0; } static void wakeup (void *handle) { struct toaster *private = handle; struct pardevice *dev = private->dev; if (!dev) return; /* avoid races */ if (want_port) parport_claim (dev); } static int toaster_detect (struct toaster *private, struct parport *port) { private->dev = parport_register_device (port, "toaster", preempt, wakeup, NULL, 0, private); if (!private->dev) /* Couldn't register with parport. */ return -EIO; |
1da177e4c Linux-2.6.12-rc2 |
453 |
|
1da177e4c Linux-2.6.12-rc2 |
454 |
must_reclaim_port = 0; |
be9d0411f parport-lowlevel.... |
455 456 457 458 459 460 461 462 463 464 465 466 |
busy_right_now = 1; parport_claim_or_block (private->dev); ... /* Don't need the port while the toaster warms up. */ busy_right_now = 0; ... busy_right_now = 1; if (must_reclaim_port) { parport_claim_or_block (private->dev); must_reclaim_port = 0; } ... |
1da177e4c Linux-2.6.12-rc2 |
467 |
} |
1da177e4c Linux-2.6.12-rc2 |
468 469 |
SEE ALSO |
be9d0411f parport-lowlevel.... |
470 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
471 472 |
parport_unregister_device, parport_claim |
be9d0411f parport-lowlevel.... |
473 |
|
1da177e4c Linux-2.6.12-rc2 |
474 475 |
parport_unregister_device - finish using a port |
be9d0411f parport-lowlevel.... |
476 |
----------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
477 478 |
SYNPOPSIS |
be9d0411f parport-lowlevel.... |
479 480 481 |
:: #include <linux/parport.h> |
1da177e4c Linux-2.6.12-rc2 |
482 |
|
be9d0411f parport-lowlevel.... |
483 |
void parport_unregister_device (struct pardevice *dev); |
1da177e4c Linux-2.6.12-rc2 |
484 485 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
486 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
487 488 |
This function is the opposite of parport_register_device. After using |
be9d0411f parport-lowlevel.... |
489 |
parport_unregister_device, ``dev`` is no longer a valid device handle. |
1da177e4c Linux-2.6.12-rc2 |
490 491 492 493 494 |
You should not unregister a device that is currently claimed, although if you do it will be released automatically. EXAMPLE |
be9d0411f parport-lowlevel.... |
495 496 497 |
^^^^^^^ :: |
1da177e4c Linux-2.6.12-rc2 |
498 499 500 501 502 503 504 |
... kfree (dev->private); /* before we lose the pointer */ parport_unregister_device (dev); ... SEE ALSO |
be9d0411f parport-lowlevel.... |
505 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
506 507 508 509 |
parport_unregister_driver parport_claim, parport_claim_or_block - claim the parallel port for a device |
be9d0411f parport-lowlevel.... |
510 |
---------------------------------------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
511 512 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
513 514 515 |
^^^^^^^^ :: |
1da177e4c Linux-2.6.12-rc2 |
516 |
|
be9d0411f parport-lowlevel.... |
517 |
#include <linux/parport.h> |
1da177e4c Linux-2.6.12-rc2 |
518 |
|
be9d0411f parport-lowlevel.... |
519 520 |
int parport_claim (struct pardevice *dev); int parport_claim_or_block (struct pardevice *dev); |
1da177e4c Linux-2.6.12-rc2 |
521 522 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
523 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
524 525 |
These functions attempt to gain control of the parallel port on which |
be9d0411f parport-lowlevel.... |
526 527 |
``dev`` is registered. ``parport_claim`` does not block, but ``parport_claim_or_block`` may do. (Put something here about blocking |
1da177e4c Linux-2.6.12-rc2 |
528 529 530 531 532 |
interruptibly or non-interruptibly.) You should not try to claim a port that you have already claimed. RETURN VALUE |
be9d0411f parport-lowlevel.... |
533 |
^^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
534 535 536 |
A return value of zero indicates that the port was successfully claimed, and the caller now has possession of the parallel port. |
be9d0411f parport-lowlevel.... |
537 |
If ``parport_claim_or_block`` blocks before returning successfully, the |
1da177e4c Linux-2.6.12-rc2 |
538 539 540 |
return value is positive. ERRORS |
be9d0411f parport-lowlevel.... |
541 |
^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
542 |
|
be9d0411f parport-lowlevel.... |
543 |
========== ========================================================== |
1da177e4c Linux-2.6.12-rc2 |
544 545 |
-EAGAIN The port is unavailable at the moment, but another attempt to claim it may succeed. |
be9d0411f parport-lowlevel.... |
546 |
========== ========================================================== |
1da177e4c Linux-2.6.12-rc2 |
547 548 |
SEE ALSO |
be9d0411f parport-lowlevel.... |
549 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
550 551 552 553 |
parport_release parport_release - release the parallel port |
be9d0411f parport-lowlevel.... |
554 |
------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
555 556 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
557 558 559 |
^^^^^^^^ :: |
1da177e4c Linux-2.6.12-rc2 |
560 |
|
be9d0411f parport-lowlevel.... |
561 |
#include <linux/parport.h> |
1da177e4c Linux-2.6.12-rc2 |
562 |
|
be9d0411f parport-lowlevel.... |
563 |
void parport_release (struct pardevice *dev); |
1da177e4c Linux-2.6.12-rc2 |
564 565 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
566 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
567 568 |
Once a parallel port device has been claimed, it can be released using |
be9d0411f parport-lowlevel.... |
569 |
``parport_release``. It cannot fail, but you should not release a |
1da177e4c Linux-2.6.12-rc2 |
570 571 572 |
device that you do not have possession of. EXAMPLE |
be9d0411f parport-lowlevel.... |
573 |
^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
574 |
|
be9d0411f parport-lowlevel.... |
575 576 577 578 579 580 581 582 583 584 585 |
:: static size_t write (struct pardevice *dev, const void *buf, size_t len) { ... written = dev->port->ops->write_ecp_data (dev->port, buf, len); parport_release (dev); ... } |
1da177e4c Linux-2.6.12-rc2 |
586 587 588 |
SEE ALSO |
be9d0411f parport-lowlevel.... |
589 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
590 591 |
change_mode, parport_claim, parport_claim_or_block, parport_yield |
be9d0411f parport-lowlevel.... |
592 |
|
1da177e4c Linux-2.6.12-rc2 |
593 |
parport_yield, parport_yield_blocking - temporarily release a parallel port |
be9d0411f parport-lowlevel.... |
594 |
--------------------------------------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
595 596 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
597 598 599 |
^^^^^^^^ :: |
1da177e4c Linux-2.6.12-rc2 |
600 |
|
be9d0411f parport-lowlevel.... |
601 |
#include <linux/parport.h> |
1da177e4c Linux-2.6.12-rc2 |
602 |
|
be9d0411f parport-lowlevel.... |
603 604 |
int parport_yield (struct pardevice *dev) int parport_yield_blocking (struct pardevice *dev); |
1da177e4c Linux-2.6.12-rc2 |
605 606 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
607 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
608 609 |
When a driver has control of a parallel port, it may allow another |
be9d0411f parport-lowlevel.... |
610 611 |
driver to temporarily ``borrow`` it. ``parport_yield`` does not block; ``parport_yield_blocking`` may do. |
1da177e4c Linux-2.6.12-rc2 |
612 613 |
RETURN VALUE |
be9d0411f parport-lowlevel.... |
614 |
^^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
615 616 617 |
A return value of zero indicates that the caller still owns the port and the call did not block. |
be9d0411f parport-lowlevel.... |
618 |
A positive return value from ``parport_yield_blocking`` indicates that |
1da177e4c Linux-2.6.12-rc2 |
619 620 621 622 623 624 |
the caller still owns the port and the call blocked. A return value of -EAGAIN indicates that the caller no longer owns the port, and it must be re-claimed before use. ERRORS |
be9d0411f parport-lowlevel.... |
625 |
^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
626 |
|
be9d0411f parport-lowlevel.... |
627 |
========= ========================================================== |
1da177e4c Linux-2.6.12-rc2 |
628 |
-EAGAIN Ownership of the parallel port was given away. |
be9d0411f parport-lowlevel.... |
629 |
========= ========================================================== |
1da177e4c Linux-2.6.12-rc2 |
630 631 |
SEE ALSO |
be9d0411f parport-lowlevel.... |
632 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
633 634 |
parport_release |
be9d0411f parport-lowlevel.... |
635 |
|
1da177e4c Linux-2.6.12-rc2 |
636 637 |
parport_wait_peripheral - wait for status lines, up to 35ms |
be9d0411f parport-lowlevel.... |
638 |
----------------------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
639 640 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
641 642 643 |
^^^^^^^^ :: |
1da177e4c Linux-2.6.12-rc2 |
644 |
|
be9d0411f parport-lowlevel.... |
645 |
#include <linux/parport.h> |
1da177e4c Linux-2.6.12-rc2 |
646 |
|
be9d0411f parport-lowlevel.... |
647 648 649 |
int parport_wait_peripheral (struct parport *port, unsigned char mask, unsigned char val); |
1da177e4c Linux-2.6.12-rc2 |
650 651 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
652 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
653 654 655 656 |
Wait for the status lines in mask to match the values in val. RETURN VALUE |
be9d0411f parport-lowlevel.... |
657 |
^^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
658 |
|
be9d0411f parport-lowlevel.... |
659 |
======== ========================================================== |
1da177e4c Linux-2.6.12-rc2 |
660 661 662 |
-EINTR a signal is pending 0 the status lines in mask have values in val 1 timed out while waiting (35ms elapsed) |
be9d0411f parport-lowlevel.... |
663 |
======== ========================================================== |
1da177e4c Linux-2.6.12-rc2 |
664 665 |
SEE ALSO |
be9d0411f parport-lowlevel.... |
666 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
667 668 |
parport_poll_peripheral |
be9d0411f parport-lowlevel.... |
669 |
|
1da177e4c Linux-2.6.12-rc2 |
670 671 |
parport_poll_peripheral - wait for status lines, in usec |
be9d0411f parport-lowlevel.... |
672 |
-------------------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
673 674 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
675 676 677 |
^^^^^^^^ :: |
1da177e4c Linux-2.6.12-rc2 |
678 |
|
be9d0411f parport-lowlevel.... |
679 |
#include <linux/parport.h> |
1da177e4c Linux-2.6.12-rc2 |
680 |
|
be9d0411f parport-lowlevel.... |
681 682 683 684 |
int parport_poll_peripheral (struct parport *port, unsigned char mask, unsigned char val, int usec); |
1da177e4c Linux-2.6.12-rc2 |
685 686 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
687 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
688 689 690 691 |
Wait for the status lines in mask to match the values in val. RETURN VALUE |
be9d0411f parport-lowlevel.... |
692 |
^^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
693 |
|
be9d0411f parport-lowlevel.... |
694 |
======== ========================================================== |
1da177e4c Linux-2.6.12-rc2 |
695 696 697 |
-EINTR a signal is pending 0 the status lines in mask have values in val 1 timed out while waiting (usec microseconds have elapsed) |
be9d0411f parport-lowlevel.... |
698 |
======== ========================================================== |
1da177e4c Linux-2.6.12-rc2 |
699 700 |
SEE ALSO |
be9d0411f parport-lowlevel.... |
701 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
702 703 |
parport_wait_peripheral |
be9d0411f parport-lowlevel.... |
704 |
|
1da177e4c Linux-2.6.12-rc2 |
705 |
parport_wait_event - wait for an event on a port |
be9d0411f parport-lowlevel.... |
706 |
------------------------------------------------ |
1da177e4c Linux-2.6.12-rc2 |
707 708 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
709 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
710 |
|
be9d0411f parport-lowlevel.... |
711 |
:: |
1da177e4c Linux-2.6.12-rc2 |
712 |
|
be9d0411f parport-lowlevel.... |
713 714 715 |
#include <linux/parport.h> int parport_wait_event (struct parport *port, signed long timeout) |
1da177e4c Linux-2.6.12-rc2 |
716 717 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
718 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
719 720 721 722 723 |
Wait for an event (e.g. interrupt) on a port. The timeout is in jiffies. RETURN VALUE |
be9d0411f parport-lowlevel.... |
724 |
^^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
725 |
|
be9d0411f parport-lowlevel.... |
726 |
======= ========================================================== |
1da177e4c Linux-2.6.12-rc2 |
727 728 729 |
0 success <0 error (exit as soon as possible) >0 timed out |
be9d0411f parport-lowlevel.... |
730 |
======= ========================================================== |
1da177e4c Linux-2.6.12-rc2 |
731 |
parport_negotiate - perform IEEE 1284 negotiation |
be9d0411f parport-lowlevel.... |
732 |
------------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
733 734 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
735 736 737 |
^^^^^^^^ :: |
1da177e4c Linux-2.6.12-rc2 |
738 |
|
be9d0411f parport-lowlevel.... |
739 |
#include <linux/parport.h> |
1da177e4c Linux-2.6.12-rc2 |
740 |
|
be9d0411f parport-lowlevel.... |
741 |
int parport_negotiate (struct parport *, int mode); |
1da177e4c Linux-2.6.12-rc2 |
742 743 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
744 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
745 746 747 748 |
Perform IEEE 1284 negotiation. RETURN VALUE |
be9d0411f parport-lowlevel.... |
749 |
^^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
750 |
|
be9d0411f parport-lowlevel.... |
751 |
======= ========================================================== |
1da177e4c Linux-2.6.12-rc2 |
752 753 754 755 |
0 handshake OK; IEEE 1284 peripheral and mode available -1 handshake failed; peripheral not compliant (or none present) 1 handshake OK; IEEE 1284 peripheral present but mode not available |
be9d0411f parport-lowlevel.... |
756 |
======= ========================================================== |
1da177e4c Linux-2.6.12-rc2 |
757 758 |
SEE ALSO |
be9d0411f parport-lowlevel.... |
759 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
760 761 |
parport_read, parport_write |
be9d0411f parport-lowlevel.... |
762 |
|
1da177e4c Linux-2.6.12-rc2 |
763 |
parport_read - read data from device |
be9d0411f parport-lowlevel.... |
764 |
------------------------------------ |
1da177e4c Linux-2.6.12-rc2 |
765 766 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
767 768 769 |
^^^^^^^^ :: |
1da177e4c Linux-2.6.12-rc2 |
770 |
|
be9d0411f parport-lowlevel.... |
771 |
#include <linux/parport.h> |
1da177e4c Linux-2.6.12-rc2 |
772 |
|
be9d0411f parport-lowlevel.... |
773 |
ssize_t parport_read (struct parport *, void *buf, size_t len); |
1da177e4c Linux-2.6.12-rc2 |
774 775 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
776 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
777 778 779 780 781 |
Read data from device in current IEEE 1284 transfer mode. This only works for modes that support reverse data transfer. RETURN VALUE |
be9d0411f parport-lowlevel.... |
782 |
^^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
783 784 785 786 |
If negative, an error code; otherwise the number of bytes transferred. SEE ALSO |
be9d0411f parport-lowlevel.... |
787 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
788 789 |
parport_write, parport_negotiate |
be9d0411f parport-lowlevel.... |
790 |
|
1da177e4c Linux-2.6.12-rc2 |
791 |
parport_write - write data to device |
be9d0411f parport-lowlevel.... |
792 |
------------------------------------ |
1da177e4c Linux-2.6.12-rc2 |
793 794 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
795 796 797 |
^^^^^^^^ :: |
1da177e4c Linux-2.6.12-rc2 |
798 |
|
be9d0411f parport-lowlevel.... |
799 |
#include <linux/parport.h> |
1da177e4c Linux-2.6.12-rc2 |
800 |
|
be9d0411f parport-lowlevel.... |
801 |
ssize_t parport_write (struct parport *, const void *buf, size_t len); |
1da177e4c Linux-2.6.12-rc2 |
802 803 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
804 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
805 806 807 808 809 |
Write data to device in current IEEE 1284 transfer mode. This only works for modes that support forward data transfer. RETURN VALUE |
be9d0411f parport-lowlevel.... |
810 |
^^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
811 812 813 814 |
If negative, an error code; otherwise the number of bytes transferred. SEE ALSO |
be9d0411f parport-lowlevel.... |
815 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
816 817 |
parport_read, parport_negotiate |
be9d0411f parport-lowlevel.... |
818 |
|
1da177e4c Linux-2.6.12-rc2 |
819 820 |
parport_open - register device for particular device number |
be9d0411f parport-lowlevel.... |
821 |
----------------------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
822 823 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
824 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
825 |
|
be9d0411f parport-lowlevel.... |
826 |
:: |
1da177e4c Linux-2.6.12-rc2 |
827 |
|
be9d0411f parport-lowlevel.... |
828 829 830 831 832 833 834 835 |
#include <linux/parport.h> struct pardevice *parport_open (int devnum, const char *name, int (*pf) (void *), void (*kf) (void *), void (*irqf) (int, void *, struct pt_regs *), int flags, void *handle); |
1da177e4c Linux-2.6.12-rc2 |
836 837 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
838 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
839 840 841 842 843 |
This is like parport_register_device but takes a device number instead of a pointer to a struct parport. RETURN VALUE |
be9d0411f parport-lowlevel.... |
844 |
^^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
845 846 847 848 849 |
See parport_register_device. If no device is associated with devnum, NULL is returned. SEE ALSO |
be9d0411f parport-lowlevel.... |
850 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
851 |
|
25398a158 sysctl: parport r... |
852 |
parport_register_device |
be9d0411f parport-lowlevel.... |
853 |
|
1da177e4c Linux-2.6.12-rc2 |
854 |
parport_close - unregister device for particular device number |
be9d0411f parport-lowlevel.... |
855 |
-------------------------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
856 857 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
858 859 860 |
^^^^^^^^ :: |
1da177e4c Linux-2.6.12-rc2 |
861 |
|
be9d0411f parport-lowlevel.... |
862 |
#include <linux/parport.h> |
1da177e4c Linux-2.6.12-rc2 |
863 |
|
be9d0411f parport-lowlevel.... |
864 |
void parport_close (struct pardevice *dev); |
1da177e4c Linux-2.6.12-rc2 |
865 866 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
867 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
868 869 870 871 |
This is the equivalent of parport_unregister_device for parport_open. SEE ALSO |
be9d0411f parport-lowlevel.... |
872 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
873 874 |
parport_unregister_device, parport_open |
be9d0411f parport-lowlevel.... |
875 |
|
1da177e4c Linux-2.6.12-rc2 |
876 |
parport_device_id - obtain IEEE 1284 Device ID |
be9d0411f parport-lowlevel.... |
877 |
---------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
878 879 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
880 881 882 |
^^^^^^^^ :: |
1da177e4c Linux-2.6.12-rc2 |
883 |
|
be9d0411f parport-lowlevel.... |
884 |
#include <linux/parport.h> |
1da177e4c Linux-2.6.12-rc2 |
885 |
|
be9d0411f parport-lowlevel.... |
886 |
ssize_t parport_device_id (int devnum, char *buffer, size_t len); |
1da177e4c Linux-2.6.12-rc2 |
887 888 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
889 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
890 891 892 893 |
Obtains the IEEE 1284 Device ID associated with a given device. RETURN VALUE |
be9d0411f parport-lowlevel.... |
894 |
^^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
895 896 897 |
If negative, an error code; otherwise, the number of bytes of buffer that contain the device ID. The format of the device ID is as |
be9d0411f parport-lowlevel.... |
898 |
follows:: |
1da177e4c Linux-2.6.12-rc2 |
899 |
|
be9d0411f parport-lowlevel.... |
900 |
[length][ID] |
1da177e4c Linux-2.6.12-rc2 |
901 902 903 |
The first two bytes indicate the inclusive length of the entire Device ID, and are in big-endian order. The ID is a sequence of pairs of the |
be9d0411f parport-lowlevel.... |
904 |
form:: |
1da177e4c Linux-2.6.12-rc2 |
905 |
|
be9d0411f parport-lowlevel.... |
906 |
key:value; |
1da177e4c Linux-2.6.12-rc2 |
907 908 |
NOTES |
be9d0411f parport-lowlevel.... |
909 |
^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
910 911 912 913 |
Many devices have ill-formed IEEE 1284 Device IDs. SEE ALSO |
be9d0411f parport-lowlevel.... |
914 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
915 |
|
25398a158 sysctl: parport r... |
916 |
parport_find_class, parport_find_device |
be9d0411f parport-lowlevel.... |
917 |
|
1da177e4c Linux-2.6.12-rc2 |
918 |
parport_device_coords - convert device number to device coordinates |
be9d0411f parport-lowlevel.... |
919 |
------------------------------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
920 921 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
922 923 924 |
^^^^^^^^ :: |
1da177e4c Linux-2.6.12-rc2 |
925 |
|
be9d0411f parport-lowlevel.... |
926 |
#include <linux/parport.h> |
1da177e4c Linux-2.6.12-rc2 |
927 |
|
be9d0411f parport-lowlevel.... |
928 929 |
int parport_device_coords (int devnum, int *parport, int *mux, int *daisy); |
1da177e4c Linux-2.6.12-rc2 |
930 931 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
932 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
933 934 935 936 937 |
Convert between device number (zero-based) and device coordinates (port, multiplexor, daisy chain address). RETURN VALUE |
be9d0411f parport-lowlevel.... |
938 |
^^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
939 |
|
be9d0411f parport-lowlevel.... |
940 941 |
Zero on success, in which case the coordinates are (``*parport``, ``*mux``, ``*daisy``). |
1da177e4c Linux-2.6.12-rc2 |
942 943 |
SEE ALSO |
be9d0411f parport-lowlevel.... |
944 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
945 |
|
25398a158 sysctl: parport r... |
946 |
parport_open, parport_device_id |
be9d0411f parport-lowlevel.... |
947 |
|
1da177e4c Linux-2.6.12-rc2 |
948 |
parport_find_class - find a device by its class |
be9d0411f parport-lowlevel.... |
949 |
----------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
950 951 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 |
^^^^^^^^ :: #include <linux/parport.h> typedef enum { PARPORT_CLASS_LEGACY = 0, /* Non-IEEE1284 device */ PARPORT_CLASS_PRINTER, PARPORT_CLASS_MODEM, PARPORT_CLASS_NET, PARPORT_CLASS_HDC, /* Hard disk controller */ PARPORT_CLASS_PCMCIA, PARPORT_CLASS_MEDIA, /* Multimedia device */ PARPORT_CLASS_FDC, /* Floppy disk controller */ PARPORT_CLASS_PORTS, PARPORT_CLASS_SCANNER, PARPORT_CLASS_DIGCAM, PARPORT_CLASS_OTHER, /* Anything else */ PARPORT_CLASS_UNSPEC, /* No CLS field in ID */ PARPORT_CLASS_SCSIADAPTER } parport_device_class; int parport_find_class (parport_device_class cls, int from); |
1da177e4c Linux-2.6.12-rc2 |
976 977 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
978 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
979 980 981 982 |
Find a device by class. The search starts from device number from+1. RETURN VALUE |
be9d0411f parport-lowlevel.... |
983 |
^^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
984 985 986 987 988 |
The device number of the next device in that class, or -1 if no such device exists. NOTES |
be9d0411f parport-lowlevel.... |
989 |
^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
990 |
|
be9d0411f parport-lowlevel.... |
991 |
Example usage:: |
1da177e4c Linux-2.6.12-rc2 |
992 |
|
be9d0411f parport-lowlevel.... |
993 994 995 996 997 |
int devnum = -1; while ((devnum = parport_find_class (PARPORT_CLASS_DIGCAM, devnum)) != -1) { struct pardevice *dev = parport_open (devnum, ...); ... } |
1da177e4c Linux-2.6.12-rc2 |
998 999 |
SEE ALSO |
be9d0411f parport-lowlevel.... |
1000 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1001 1002 |
parport_find_device, parport_open, parport_device_id |
be9d0411f parport-lowlevel.... |
1003 |
|
1da177e4c Linux-2.6.12-rc2 |
1004 |
parport_find_device - find a device by its class |
be9d0411f parport-lowlevel.... |
1005 |
------------------------------------------------ |
1da177e4c Linux-2.6.12-rc2 |
1006 1007 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
1008 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1009 |
|
be9d0411f parport-lowlevel.... |
1010 |
:: |
1da177e4c Linux-2.6.12-rc2 |
1011 |
|
be9d0411f parport-lowlevel.... |
1012 1013 1014 |
#include <linux/parport.h> int parport_find_device (const char *mfg, const char *mdl, int from); |
1da177e4c Linux-2.6.12-rc2 |
1015 1016 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
1017 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1018 1019 1020 1021 1022 |
Find a device by vendor and model. The search starts from device number from+1. RETURN VALUE |
be9d0411f parport-lowlevel.... |
1023 |
^^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1024 1025 1026 1027 1028 |
The device number of the next device matching the specifications, or -1 if no such device exists. NOTES |
be9d0411f parport-lowlevel.... |
1029 |
^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1030 |
|
be9d0411f parport-lowlevel.... |
1031 |
Example usage:: |
1da177e4c Linux-2.6.12-rc2 |
1032 |
|
be9d0411f parport-lowlevel.... |
1033 1034 1035 1036 1037 |
int devnum = -1; while ((devnum = parport_find_device ("IOMEGA", "ZIP+", devnum)) != -1) { struct pardevice *dev = parport_open (devnum, ...); ... } |
1da177e4c Linux-2.6.12-rc2 |
1038 1039 |
SEE ALSO |
be9d0411f parport-lowlevel.... |
1040 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1041 1042 |
parport_find_class, parport_open, parport_device_id |
be9d0411f parport-lowlevel.... |
1043 |
|
1da177e4c Linux-2.6.12-rc2 |
1044 1045 |
parport_set_timeout - set the inactivity timeout |
be9d0411f parport-lowlevel.... |
1046 |
------------------------------------------------ |
1da177e4c Linux-2.6.12-rc2 |
1047 1048 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
1049 1050 1051 |
^^^^^^^^ :: |
1da177e4c Linux-2.6.12-rc2 |
1052 |
|
be9d0411f parport-lowlevel.... |
1053 |
#include <linux/parport.h> |
1da177e4c Linux-2.6.12-rc2 |
1054 |
|
be9d0411f parport-lowlevel.... |
1055 |
long parport_set_timeout (struct pardevice *dev, long inactivity); |
1da177e4c Linux-2.6.12-rc2 |
1056 1057 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
1058 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1059 1060 1061 1062 1063 |
Set the inactivity timeout, in jiffies, for a registered device. The previous timeout is returned. RETURN VALUE |
be9d0411f parport-lowlevel.... |
1064 |
^^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1065 1066 1067 1068 |
The previous timeout, in jiffies. NOTES |
be9d0411f parport-lowlevel.... |
1069 |
^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1070 1071 1072 |
Some of the port->ops functions for a parport may take time, owing to delays at the peripheral. After the peripheral has not responded for |
be9d0411f parport-lowlevel.... |
1073 |
``inactivity`` jiffies, a timeout will occur and the blocking function |
1da177e4c Linux-2.6.12-rc2 |
1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 |
will return. A timeout of 0 jiffies is a special case: the function must do as much as it can without blocking or leaving the hardware in an unknown state. If port operations are performed from within an interrupt handler, for instance, a timeout of 0 jiffies should be used. Once set for a registered device, the timeout will remain at the set value until set again. SEE ALSO |
be9d0411f parport-lowlevel.... |
1085 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1086 1087 |
port->ops->xxx_read/write_yyy |
be9d0411f parport-lowlevel.... |
1088 |
|
1da177e4c Linux-2.6.12-rc2 |
1089 |
PORT FUNCTIONS |
be9d0411f parport-lowlevel.... |
1090 |
============== |
1da177e4c Linux-2.6.12-rc2 |
1091 1092 1093 1094 1095 |
The functions in the port->ops structure (struct parport_operations) are provided by the low-level driver responsible for that port. port->ops->read_data - read the data register |
be9d0411f parport-lowlevel.... |
1096 |
--------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
1097 1098 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
1099 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1100 |
|
be9d0411f parport-lowlevel.... |
1101 |
:: |
1da177e4c Linux-2.6.12-rc2 |
1102 |
|
be9d0411f parport-lowlevel.... |
1103 1104 1105 1106 1107 1108 1109 |
#include <linux/parport.h> struct parport_operations { ... unsigned char (*read_data) (struct parport *port); ... }; |
1da177e4c Linux-2.6.12-rc2 |
1110 1111 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
1112 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1113 1114 1115 1116 1117 1118 1119 1120 1121 |
If port->modes contains the PARPORT_MODE_TRISTATE flag and the PARPORT_CONTROL_DIRECTION bit in the control register is set, this returns the value on the data pins. If port->modes contains the PARPORT_MODE_TRISTATE flag and the PARPORT_CONTROL_DIRECTION bit is not set, the return value _may_ be the last value written to the data register. Otherwise the return value is undefined. SEE ALSO |
be9d0411f parport-lowlevel.... |
1122 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1123 1124 |
write_data, read_status, write_control |
be9d0411f parport-lowlevel.... |
1125 |
|
1da177e4c Linux-2.6.12-rc2 |
1126 1127 |
port->ops->write_data - write the data register |
be9d0411f parport-lowlevel.... |
1128 |
----------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
1129 1130 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
1131 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1132 |
|
be9d0411f parport-lowlevel.... |
1133 |
:: |
1da177e4c Linux-2.6.12-rc2 |
1134 |
|
be9d0411f parport-lowlevel.... |
1135 1136 1137 1138 1139 1140 1141 |
#include <linux/parport.h> struct parport_operations { ... void (*write_data) (struct parport *port, unsigned char d); ... }; |
1da177e4c Linux-2.6.12-rc2 |
1142 1143 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
1144 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1145 1146 1147 1148 1149 |
Writes to the data register. May have side-effects (a STROBE pulse, for instance). SEE ALSO |
be9d0411f parport-lowlevel.... |
1150 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1151 1152 |
read_data, read_status, write_control |
be9d0411f parport-lowlevel.... |
1153 |
|
1da177e4c Linux-2.6.12-rc2 |
1154 1155 |
port->ops->read_status - read the status register |
be9d0411f parport-lowlevel.... |
1156 |
------------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
1157 1158 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
1159 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1160 |
|
be9d0411f parport-lowlevel.... |
1161 |
:: |
1da177e4c Linux-2.6.12-rc2 |
1162 |
|
be9d0411f parport-lowlevel.... |
1163 1164 1165 1166 1167 1168 1169 |
#include <linux/parport.h> struct parport_operations { ... unsigned char (*read_status) (struct parport *port); ... }; |
1da177e4c Linux-2.6.12-rc2 |
1170 1171 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
1172 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 |
Reads from the status register. This is a bitmask: - PARPORT_STATUS_ERROR (printer fault, "nFault") - PARPORT_STATUS_SELECT (on-line, "Select") - PARPORT_STATUS_PAPEROUT (no paper, "PError") - PARPORT_STATUS_ACK (handshake, "nAck") - PARPORT_STATUS_BUSY (busy, "Busy") There may be other bits set. SEE ALSO |
be9d0411f parport-lowlevel.... |
1185 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1186 1187 |
read_data, write_data, write_control |
be9d0411f parport-lowlevel.... |
1188 |
|
1da177e4c Linux-2.6.12-rc2 |
1189 1190 |
port->ops->read_control - read the control register |
be9d0411f parport-lowlevel.... |
1191 |
--------------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
1192 1193 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
1194 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1195 |
|
be9d0411f parport-lowlevel.... |
1196 |
:: |
1da177e4c Linux-2.6.12-rc2 |
1197 |
|
be9d0411f parport-lowlevel.... |
1198 1199 1200 1201 1202 1203 1204 |
#include <linux/parport.h> struct parport_operations { ... unsigned char (*read_control) (struct parport *port); ... }; |
1da177e4c Linux-2.6.12-rc2 |
1205 1206 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
1207 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1208 1209 1210 1211 1212 |
Returns the last value written to the control register (either from write_control or frob_control). No port access is performed. SEE ALSO |
be9d0411f parport-lowlevel.... |
1213 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1214 1215 |
read_data, write_data, read_status, write_control |
be9d0411f parport-lowlevel.... |
1216 |
|
1da177e4c Linux-2.6.12-rc2 |
1217 1218 |
port->ops->write_control - write the control register |
be9d0411f parport-lowlevel.... |
1219 |
----------------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
1220 1221 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
1222 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1223 |
|
be9d0411f parport-lowlevel.... |
1224 |
:: |
1da177e4c Linux-2.6.12-rc2 |
1225 |
|
be9d0411f parport-lowlevel.... |
1226 1227 1228 1229 1230 1231 1232 |
#include <linux/parport.h> struct parport_operations { ... void (*write_control) (struct parport *port, unsigned char s); ... }; |
1da177e4c Linux-2.6.12-rc2 |
1233 1234 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
1235 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1236 |
|
be9d0411f parport-lowlevel.... |
1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 |
Writes to the control register. This is a bitmask:: _______ - PARPORT_CONTROL_STROBE (nStrobe) _______ - PARPORT_CONTROL_AUTOFD (nAutoFd) _____ - PARPORT_CONTROL_INIT (nInit) _________ - PARPORT_CONTROL_SELECT (nSelectIn) |
1da177e4c Linux-2.6.12-rc2 |
1247 1248 |
SEE ALSO |
be9d0411f parport-lowlevel.... |
1249 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1250 1251 |
read_data, write_data, read_status, frob_control |
be9d0411f parport-lowlevel.... |
1252 |
|
1da177e4c Linux-2.6.12-rc2 |
1253 1254 |
port->ops->frob_control - write control register bits |
be9d0411f parport-lowlevel.... |
1255 |
----------------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
1256 1257 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
1258 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1259 |
|
be9d0411f parport-lowlevel.... |
1260 |
:: |
1da177e4c Linux-2.6.12-rc2 |
1261 |
|
be9d0411f parport-lowlevel.... |
1262 1263 1264 1265 1266 1267 1268 1269 1270 |
#include <linux/parport.h> struct parport_operations { ... unsigned char (*frob_control) (struct parport *port, unsigned char mask, unsigned char val); ... }; |
1da177e4c Linux-2.6.12-rc2 |
1271 1272 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
1273 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 |
This is equivalent to reading from the control register, masking out the bits in mask, exclusive-or'ing with the bits in val, and writing the result to the control register. As some ports don't allow reads from the control port, a software copy of its contents is maintained, so frob_control is in fact only one port access. SEE ALSO |
be9d0411f parport-lowlevel.... |
1284 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1285 1286 |
read_data, write_data, read_status, write_control |
be9d0411f parport-lowlevel.... |
1287 |
|
1da177e4c Linux-2.6.12-rc2 |
1288 1289 |
port->ops->enable_irq - enable interrupt generation |
be9d0411f parport-lowlevel.... |
1290 |
--------------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
1291 1292 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
1293 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1294 |
|
be9d0411f parport-lowlevel.... |
1295 |
:: |
1da177e4c Linux-2.6.12-rc2 |
1296 |
|
be9d0411f parport-lowlevel.... |
1297 1298 1299 1300 1301 1302 1303 |
#include <linux/parport.h> struct parport_operations { ... void (*enable_irq) (struct parport *port); ... }; |
1da177e4c Linux-2.6.12-rc2 |
1304 1305 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
1306 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1307 1308 1309 1310 1311 1312 1313 |
The parallel port hardware is instructed to generate interrupts at appropriate moments, although those moments are architecture-specific. For the PC architecture, interrupts are commonly generated on the rising edge of nAck. SEE ALSO |
be9d0411f parport-lowlevel.... |
1314 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1315 1316 |
disable_irq |
be9d0411f parport-lowlevel.... |
1317 |
|
1da177e4c Linux-2.6.12-rc2 |
1318 1319 |
port->ops->disable_irq - disable interrupt generation |
be9d0411f parport-lowlevel.... |
1320 |
----------------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
1321 1322 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
1323 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1324 |
|
be9d0411f parport-lowlevel.... |
1325 |
:: |
1da177e4c Linux-2.6.12-rc2 |
1326 |
|
be9d0411f parport-lowlevel.... |
1327 1328 1329 1330 1331 1332 1333 |
#include <linux/parport.h> struct parport_operations { ... void (*disable_irq) (struct parport *port); ... }; |
1da177e4c Linux-2.6.12-rc2 |
1334 1335 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
1336 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1337 1338 1339 1340 1341 |
The parallel port hardware is instructed not to generate interrupts. The interrupt itself is not masked. SEE ALSO |
be9d0411f parport-lowlevel.... |
1342 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1343 1344 1345 |
enable_irq |
be9d0411f parport-lowlevel.... |
1346 |
|
1da177e4c Linux-2.6.12-rc2 |
1347 |
port->ops->data_forward - enable data drivers |
be9d0411f parport-lowlevel.... |
1348 |
--------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
1349 1350 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
1351 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1352 |
|
be9d0411f parport-lowlevel.... |
1353 |
:: |
1da177e4c Linux-2.6.12-rc2 |
1354 |
|
be9d0411f parport-lowlevel.... |
1355 1356 1357 1358 1359 1360 1361 |
#include <linux/parport.h> struct parport_operations { ... void (*data_forward) (struct parport *port); ... }; |
1da177e4c Linux-2.6.12-rc2 |
1362 1363 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
1364 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1365 1366 1367 1368 1369 |
Enables the data line drivers, for 8-bit host-to-peripheral communications. SEE ALSO |
be9d0411f parport-lowlevel.... |
1370 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1371 1372 |
data_reverse |
be9d0411f parport-lowlevel.... |
1373 |
|
1da177e4c Linux-2.6.12-rc2 |
1374 1375 |
port->ops->data_reverse - tristate the buffer |
be9d0411f parport-lowlevel.... |
1376 |
--------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
1377 1378 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
1379 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1380 |
|
be9d0411f parport-lowlevel.... |
1381 |
:: |
1da177e4c Linux-2.6.12-rc2 |
1382 |
|
be9d0411f parport-lowlevel.... |
1383 1384 1385 1386 1387 1388 1389 |
#include <linux/parport.h> struct parport_operations { ... void (*data_reverse) (struct parport *port); ... }; |
1da177e4c Linux-2.6.12-rc2 |
1390 1391 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
1392 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1393 1394 1395 1396 1397 |
Places the data bus in a high impedance state, if port->modes has the PARPORT_MODE_TRISTATE bit set. SEE ALSO |
be9d0411f parport-lowlevel.... |
1398 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1399 1400 |
data_forward |
be9d0411f parport-lowlevel.... |
1401 |
|
1da177e4c Linux-2.6.12-rc2 |
1402 |
port->ops->epp_write_data - write EPP data |
be9d0411f parport-lowlevel.... |
1403 |
------------------------------------------ |
1da177e4c Linux-2.6.12-rc2 |
1404 1405 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
1406 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1407 |
|
be9d0411f parport-lowlevel.... |
1408 |
:: |
1da177e4c Linux-2.6.12-rc2 |
1409 |
|
be9d0411f parport-lowlevel.... |
1410 1411 1412 1413 1414 1415 1416 1417 |
#include <linux/parport.h> struct parport_operations { ... size_t (*epp_write_data) (struct parport *port, const void *buf, size_t len, int flags); ... }; |
1da177e4c Linux-2.6.12-rc2 |
1418 1419 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
1420 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1421 1422 |
Writes data in EPP mode, and returns the number of bytes written. |
be9d0411f parport-lowlevel.... |
1423 |
The ``flags`` parameter may be one or more of the following, |
1da177e4c Linux-2.6.12-rc2 |
1424 |
bitwise-or'ed together: |
be9d0411f parport-lowlevel.... |
1425 |
======================= ================================================= |
1da177e4c Linux-2.6.12-rc2 |
1426 1427 1428 |
PARPORT_EPP_FAST Use fast transfers. Some chips provide 16-bit and 32-bit registers. However, if a transfer times out, the return value may be unreliable. |
be9d0411f parport-lowlevel.... |
1429 |
======================= ================================================= |
1da177e4c Linux-2.6.12-rc2 |
1430 1431 |
SEE ALSO |
be9d0411f parport-lowlevel.... |
1432 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1433 1434 |
epp_read_data, epp_write_addr, epp_read_addr |
be9d0411f parport-lowlevel.... |
1435 |
|
1da177e4c Linux-2.6.12-rc2 |
1436 1437 |
port->ops->epp_read_data - read EPP data |
be9d0411f parport-lowlevel.... |
1438 |
---------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
1439 1440 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
1441 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1442 |
|
be9d0411f parport-lowlevel.... |
1443 |
:: |
1da177e4c Linux-2.6.12-rc2 |
1444 |
|
be9d0411f parport-lowlevel.... |
1445 1446 1447 1448 1449 1450 1451 1452 |
#include <linux/parport.h> struct parport_operations { ... size_t (*epp_read_data) (struct parport *port, void *buf, size_t len, int flags); ... }; |
1da177e4c Linux-2.6.12-rc2 |
1453 1454 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
1455 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1456 1457 |
Reads data in EPP mode, and returns the number of bytes read. |
be9d0411f parport-lowlevel.... |
1458 |
The ``flags`` parameter may be one or more of the following, |
1da177e4c Linux-2.6.12-rc2 |
1459 |
bitwise-or'ed together: |
be9d0411f parport-lowlevel.... |
1460 |
======================= ================================================= |
1da177e4c Linux-2.6.12-rc2 |
1461 1462 1463 |
PARPORT_EPP_FAST Use fast transfers. Some chips provide 16-bit and 32-bit registers. However, if a transfer times out, the return value may be unreliable. |
be9d0411f parport-lowlevel.... |
1464 |
======================= ================================================= |
1da177e4c Linux-2.6.12-rc2 |
1465 1466 |
SEE ALSO |
be9d0411f parport-lowlevel.... |
1467 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1468 1469 |
epp_write_data, epp_write_addr, epp_read_addr |
be9d0411f parport-lowlevel.... |
1470 |
|
1da177e4c Linux-2.6.12-rc2 |
1471 |
port->ops->epp_write_addr - write EPP address |
be9d0411f parport-lowlevel.... |
1472 |
--------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
1473 1474 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
1475 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1476 |
|
be9d0411f parport-lowlevel.... |
1477 |
:: |
1da177e4c Linux-2.6.12-rc2 |
1478 |
|
be9d0411f parport-lowlevel.... |
1479 1480 1481 1482 1483 1484 1485 1486 |
#include <linux/parport.h> struct parport_operations { ... size_t (*epp_write_addr) (struct parport *port, const void *buf, size_t len, int flags); ... }; |
1da177e4c Linux-2.6.12-rc2 |
1487 1488 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
1489 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1490 1491 |
Writes EPP addresses (8 bits each), and returns the number written. |
be9d0411f parport-lowlevel.... |
1492 |
The ``flags`` parameter may be one or more of the following, |
1da177e4c Linux-2.6.12-rc2 |
1493 |
bitwise-or'ed together: |
be9d0411f parport-lowlevel.... |
1494 |
======================= ================================================= |
1da177e4c Linux-2.6.12-rc2 |
1495 1496 1497 |
PARPORT_EPP_FAST Use fast transfers. Some chips provide 16-bit and 32-bit registers. However, if a transfer times out, the return value may be unreliable. |
be9d0411f parport-lowlevel.... |
1498 |
======================= ================================================= |
1da177e4c Linux-2.6.12-rc2 |
1499 1500 1501 1502 |
(Does PARPORT_EPP_FAST make sense for this function?) SEE ALSO |
be9d0411f parport-lowlevel.... |
1503 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1504 1505 |
epp_write_data, epp_read_data, epp_read_addr |
be9d0411f parport-lowlevel.... |
1506 |
|
1da177e4c Linux-2.6.12-rc2 |
1507 1508 |
port->ops->epp_read_addr - read EPP address |
be9d0411f parport-lowlevel.... |
1509 |
------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
1510 1511 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
1512 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1513 |
|
be9d0411f parport-lowlevel.... |
1514 |
:: |
1da177e4c Linux-2.6.12-rc2 |
1515 |
|
be9d0411f parport-lowlevel.... |
1516 1517 1518 1519 1520 1521 1522 1523 |
#include <linux/parport.h> struct parport_operations { ... size_t (*epp_read_addr) (struct parport *port, void *buf, size_t len, int flags); ... }; |
1da177e4c Linux-2.6.12-rc2 |
1524 1525 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
1526 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1527 1528 |
Reads EPP addresses (8 bits each), and returns the number read. |
be9d0411f parport-lowlevel.... |
1529 |
The ``flags`` parameter may be one or more of the following, |
1da177e4c Linux-2.6.12-rc2 |
1530 |
bitwise-or'ed together: |
be9d0411f parport-lowlevel.... |
1531 |
======================= ================================================= |
1da177e4c Linux-2.6.12-rc2 |
1532 1533 1534 |
PARPORT_EPP_FAST Use fast transfers. Some chips provide 16-bit and 32-bit registers. However, if a transfer times out, the return value may be unreliable. |
be9d0411f parport-lowlevel.... |
1535 |
======================= ================================================= |
1da177e4c Linux-2.6.12-rc2 |
1536 1537 1538 1539 |
(Does PARPORT_EPP_FAST make sense for this function?) SEE ALSO |
be9d0411f parport-lowlevel.... |
1540 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1541 1542 |
epp_write_data, epp_read_data, epp_write_addr |
be9d0411f parport-lowlevel.... |
1543 |
|
1da177e4c Linux-2.6.12-rc2 |
1544 1545 |
port->ops->ecp_write_data - write a block of ECP data |
be9d0411f parport-lowlevel.... |
1546 |
----------------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
1547 1548 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
1549 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1550 |
|
be9d0411f parport-lowlevel.... |
1551 |
:: |
1da177e4c Linux-2.6.12-rc2 |
1552 |
|
be9d0411f parport-lowlevel.... |
1553 1554 1555 1556 1557 1558 1559 1560 |
#include <linux/parport.h> struct parport_operations { ... size_t (*ecp_write_data) (struct parport *port, const void *buf, size_t len, int flags); ... }; |
1da177e4c Linux-2.6.12-rc2 |
1561 1562 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
1563 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1564 |
|
be9d0411f parport-lowlevel.... |
1565 |
Writes a block of ECP data. The ``flags`` parameter is ignored. |
1da177e4c Linux-2.6.12-rc2 |
1566 1567 |
RETURN VALUE |
be9d0411f parport-lowlevel.... |
1568 |
^^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1569 1570 1571 1572 |
The number of bytes written. SEE ALSO |
be9d0411f parport-lowlevel.... |
1573 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1574 1575 1576 |
ecp_read_data, ecp_write_addr |
be9d0411f parport-lowlevel.... |
1577 |
|
1da177e4c Linux-2.6.12-rc2 |
1578 |
port->ops->ecp_read_data - read a block of ECP data |
be9d0411f parport-lowlevel.... |
1579 |
--------------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
1580 1581 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
1582 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1583 |
|
be9d0411f parport-lowlevel.... |
1584 |
:: |
1da177e4c Linux-2.6.12-rc2 |
1585 |
|
be9d0411f parport-lowlevel.... |
1586 1587 1588 1589 1590 1591 1592 1593 |
#include <linux/parport.h> struct parport_operations { ... size_t (*ecp_read_data) (struct parport *port, void *buf, size_t len, int flags); ... }; |
1da177e4c Linux-2.6.12-rc2 |
1594 1595 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
1596 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1597 |
|
be9d0411f parport-lowlevel.... |
1598 |
Reads a block of ECP data. The ``flags`` parameter is ignored. |
1da177e4c Linux-2.6.12-rc2 |
1599 1600 |
RETURN VALUE |
be9d0411f parport-lowlevel.... |
1601 |
^^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1602 1603 1604 1605 1606 |
The number of bytes read. NB. There may be more unread data in a FIFO. Is there a way of stunning the FIFO to prevent this? SEE ALSO |
be9d0411f parport-lowlevel.... |
1607 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1608 1609 |
ecp_write_block, ecp_write_addr |
be9d0411f parport-lowlevel.... |
1610 |
|
1da177e4c Linux-2.6.12-rc2 |
1611 |
port->ops->ecp_write_addr - write a block of ECP addresses |
be9d0411f parport-lowlevel.... |
1612 |
---------------------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
1613 1614 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
1615 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1616 |
|
be9d0411f parport-lowlevel.... |
1617 |
:: |
1da177e4c Linux-2.6.12-rc2 |
1618 |
|
be9d0411f parport-lowlevel.... |
1619 1620 1621 1622 1623 1624 1625 1626 |
#include <linux/parport.h> struct parport_operations { ... size_t (*ecp_write_addr) (struct parport *port, const void *buf, size_t len, int flags); ... }; |
1da177e4c Linux-2.6.12-rc2 |
1627 1628 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
1629 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1630 |
|
be9d0411f parport-lowlevel.... |
1631 |
Writes a block of ECP addresses. The ``flags`` parameter is ignored. |
1da177e4c Linux-2.6.12-rc2 |
1632 1633 |
RETURN VALUE |
be9d0411f parport-lowlevel.... |
1634 |
^^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1635 1636 1637 1638 |
The number of bytes written. NOTES |
be9d0411f parport-lowlevel.... |
1639 |
^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1640 1641 1642 1643 |
This may use a FIFO, and if so shall not return until the FIFO is empty. SEE ALSO |
be9d0411f parport-lowlevel.... |
1644 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1645 1646 |
ecp_read_data, ecp_write_data |
be9d0411f parport-lowlevel.... |
1647 |
|
1da177e4c Linux-2.6.12-rc2 |
1648 |
port->ops->nibble_read_data - read a block of data in nibble mode |
be9d0411f parport-lowlevel.... |
1649 |
----------------------------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
1650 1651 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
1652 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1653 |
|
be9d0411f parport-lowlevel.... |
1654 |
:: |
1da177e4c Linux-2.6.12-rc2 |
1655 |
|
be9d0411f parport-lowlevel.... |
1656 1657 1658 1659 1660 1661 1662 1663 |
#include <linux/parport.h> struct parport_operations { ... size_t (*nibble_read_data) (struct parport *port, void *buf, size_t len, int flags); ... }; |
1da177e4c Linux-2.6.12-rc2 |
1664 1665 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
1666 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1667 |
|
be9d0411f parport-lowlevel.... |
1668 |
Reads a block of data in nibble mode. The ``flags`` parameter is ignored. |
1da177e4c Linux-2.6.12-rc2 |
1669 1670 |
RETURN VALUE |
be9d0411f parport-lowlevel.... |
1671 |
^^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1672 1673 1674 1675 |
The number of whole bytes read. SEE ALSO |
be9d0411f parport-lowlevel.... |
1676 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1677 1678 |
byte_read_data, compat_write_data |
be9d0411f parport-lowlevel.... |
1679 |
|
1da177e4c Linux-2.6.12-rc2 |
1680 1681 |
port->ops->byte_read_data - read a block of data in byte mode |
be9d0411f parport-lowlevel.... |
1682 |
------------------------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
1683 1684 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
1685 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1686 |
|
be9d0411f parport-lowlevel.... |
1687 |
:: |
1da177e4c Linux-2.6.12-rc2 |
1688 |
|
be9d0411f parport-lowlevel.... |
1689 1690 1691 1692 1693 1694 1695 1696 |
#include <linux/parport.h> struct parport_operations { ... size_t (*byte_read_data) (struct parport *port, void *buf, size_t len, int flags); ... }; |
1da177e4c Linux-2.6.12-rc2 |
1697 1698 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
1699 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1700 |
|
be9d0411f parport-lowlevel.... |
1701 |
Reads a block of data in byte mode. The ``flags`` parameter is ignored. |
1da177e4c Linux-2.6.12-rc2 |
1702 1703 |
RETURN VALUE |
be9d0411f parport-lowlevel.... |
1704 |
^^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1705 1706 1707 1708 |
The number of bytes read. SEE ALSO |
be9d0411f parport-lowlevel.... |
1709 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1710 1711 |
nibble_read_data, compat_write_data |
be9d0411f parport-lowlevel.... |
1712 |
|
1da177e4c Linux-2.6.12-rc2 |
1713 1714 |
port->ops->compat_write_data - write a block of data in compatibility mode |
be9d0411f parport-lowlevel.... |
1715 |
-------------------------------------------------------------------------- |
1da177e4c Linux-2.6.12-rc2 |
1716 1717 |
SYNOPSIS |
be9d0411f parport-lowlevel.... |
1718 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1719 |
|
be9d0411f parport-lowlevel.... |
1720 |
:: |
1da177e4c Linux-2.6.12-rc2 |
1721 |
|
be9d0411f parport-lowlevel.... |
1722 1723 1724 1725 1726 1727 1728 1729 |
#include <linux/parport.h> struct parport_operations { ... size_t (*compat_write_data) (struct parport *port, const void *buf, size_t len, int flags); ... }; |
1da177e4c Linux-2.6.12-rc2 |
1730 1731 |
DESCRIPTION |
be9d0411f parport-lowlevel.... |
1732 |
^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1733 |
|
be9d0411f parport-lowlevel.... |
1734 |
Writes a block of data in compatibility mode. The ``flags`` parameter |
1da177e4c Linux-2.6.12-rc2 |
1735 1736 1737 |
is ignored. RETURN VALUE |
be9d0411f parport-lowlevel.... |
1738 |
^^^^^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1739 1740 1741 1742 |
The number of bytes written. SEE ALSO |
be9d0411f parport-lowlevel.... |
1743 |
^^^^^^^^ |
1da177e4c Linux-2.6.12-rc2 |
1744 1745 |
nibble_read_data, byte_read_data |