Skip site navigation (1)Skip section navigation (2)

FreeBSD Man Pages

Man Page or Keyword Search:
Man
Apropos Keyword Search (all sections) Output format
home | help
PBIO(4) 	     FreeBSD/i386 Kernel Interfaces Manual	       PBIO(4)

NAME
     pbio -- 8255 parallel peripheral interface basic I/O driver

SYNOPSIS
     device pbio

     In /boot/device.hints:
     hint.pbio.0.at="isa"
     hint.pbio.0.port="0x360"

     #include <dev/pbio/pbioio.h>

DESCRIPTION
     The pbio driver supports direct access to the Intel 8255A programmable
     peripheral interface (PPI) chip running in mode 0 (simple I/O).  Such an
     interface provides 24 digital I/O lines.  The driver is designed for per-
     forming I/O under program control using peripherals such as the Advantech
     PCL-724 card, which emulates the Intel 8255A PPI in mode 0.  Other 8255A-
     based peripherals such as the BMC Messsysteme PIO24II card have also been
     reported to work.

     The PPI provides two 8-bit ports (port A and port B) and two 4-bit ports
     (port C upper, port C lower).  Each port can be individually programmed
     for input and (latched) output, and appears at a different offset of the
     device's base I/O address.

     A separate register allows the configuration of ports for input or out-
     put.  The device is so simple, that reliably probing for it when input
     data arrives at its terminals is impossible; therefore the kernel config-
     uration has to specify the device's base address.	The device driver pro-
     vides four character devices that correspond to the peripheral's I/O
     ports.  Opening a device for read or write automatically configures the
     corresponding hardware port for input or output.  At boot time all ports
     are set configured for input to avoid damaging external circuitry.

     A set of ioctl(2) requests allow polled input and paced output to be
     efficiently performed at the driver level without expensive user/kernel
     context switching.  The driver can perform I/O in three different ways:

     Basic	   The read or write operation returns immediately after read-
		   ing or writing the data to the port at bus speed.

     Paced	   Data is transferred from or to the port at intervals speci-
		   fied by a separate ioctl(2) call.

     Differential  (Input only.)  Only port values that differ from the previ-
		   ous port value are returned.

     The pacing interval is specified in Hz unit increments.  Setting a pace
     of n seconds will result in no more than one value being read or written
     every n seconds.  Single byte read/write operations will take at least n
     seconds to complete.

     The following ioctl(2) calls are supported:

     PBIO_SETDIFF   accepts a pointer to an integer as the third argument, and
		    sets the driver for differential input if the integer is
		    non-zero.  The input pace speed determines the periodic
		    interval the driver will use to examine the port for a
		    changed value.

     PBIO_GETDIFF   accepts a pointer to an integer as the third argument, and
		    sets the integer to the last set value for differential
		    input.

     PBIO_SETIPACE  accepts a pointer to an integer as the third argument, and
		    sets the driver's input pacing speed to the value of that
		    integer.

     PBIO_GETIPACE  accepts a pointer to an integer as the third argument, and
		    sets the integer to the last set value for the input pace.

     PBIO_SETOPACE  accepts a pointer to an integer as the third argument, and
		    sets the driver's output pacing speed to the value of that
		    integer.

     PBIO_GETOPACE  accepts a pointer to an integer as the third argument, and
		    sets the integer to the last set value for the output
		    pace.

FILES
     /dev/pbio0a   Port A (8 bit I/O).
     /dev/pbio0b   Port B (8 bit I/O).
     /dev/pbio0ch  Port C upper (4 bit I/O).
     /dev/pbio0cl  Port C lower (4 bit I/O).

SEE ALSO
     Diomidis Spinellis, "The information furnace: Consolidated home control",
     Personal and Ubiquitous Computing, 1, 7, 53-69, 2003.

HISTORY
     The pbio device was first used under FreeBSD 4.1.

AUTHORS
     Diomidis D. Spinellis <dds@aueb.gr>

BUGS
     One of the PCL-724 card's inputs can optionally be wired to generate an
     interrupt.  This feature is not supported.

FreeBSD 6.0		       January 14, 2005 		   FreeBSD 6.0

NAME | SYNOPSIS | DESCRIPTION | FILES | SEE ALSO | HISTORY | AUTHORS | BUGS

Want to link to this manual page? Use this URL:
<http://www.freebsd.org/cgi/man.cgi?query=pbio&sektion=4&manpath=FreeBSD+6.0-RELEASE>

home | help