Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

ppi(4) [netbsd man page]

PPI(4)                                                     BSD Kernel Interfaces Manual                                                     PPI(4)

NAME
ppi -- user-space interface to ppbus parallel 'geek' port SYNOPSIS
device ppi Minor numbering: unit numbers correspond directly to ppbus numbers. #include <dev/ppbus/ppi.h> #include <dev/ppbus/ppbconf.h> DESCRIPTION
The ppi driver provides a convenient means for user applications to manipulate the state of the parallel port, enabling easy low-speed I/O operations without the security problems inherent with the use of the /dev/io interface. PROGRAMMING INTERFACE
All I/O on the ppi interface is performed using ioctl() calls. Each command takes a single u_int8_t argument, transferring one byte of data. The following commands are available: PPIGDATA, PPISDATA Get and set the contents of the data register. PPIGSTATUS, PPISSTATUS Get and set the contents of the status register. PPIGCTRL, PPISCTRL Get and set the contents of the control register. The following defines correspond to bits in this register. Setting a bit in the control register drives the corresponding output low. STROBE AUTOFEED nINIT SELECTIN PCD PPIGEPP, PPISEPP Get and set the contents of the EPP control register. PPIGECR, PPISECR Get and set the contents of the ECP control register. PPIGFIFO, PPISFIFO Read and write the ECP FIFO (8-bit operations only). EXAMPLES
To present the value 0x5a to the data port, drive STROBE low and then high again, the following code fragment can be used: int fd; u_int8_t val; val = 0x5a; ioctl(fd, PPISDATA, &val); ioctl(fd, PPIGCTRL, &val); val |= STROBE; ioctl(fd, PPISCTRL, &val); val &= ~STROBE; ioctl(fd, PPISCTRL, &val); BUGS
The inverse sense of signals is confusing. The ioctl() interface is slow, and there is no way (yet) to chain multiple operations together. The headers required for user applications are not installed as part of the standard system. BSD January 2, 1998 BSD

Check Out this Related Man Page

PPC(4)							   BSD Kernel Interfaces Manual 						    PPC(4)

NAME
ppc -- Parallel Port Chipset driver SYNOPSIS
device ppc In /boot/device.hints: hint.ppc.0.at="isa" hint.ppc.0.irq="7" For one or more PPBUS busses: device ppbus DESCRIPTION
The ppc driver provides low level support to various parallel port chipsets for the ppbus(4) system. During the probe phase, ppc detects parallel port chipsets and initializes private data according to their operating mode: COMPATIBLE, NIB- BLE, PS/2, EPP, ECP and other mixed modes. If a mode is provided at startup through the flags variable of the boot interface, the operating mode of the chipset is forced according to flags and the hardware supported modes. During the attach phase, ppc allocates a ppbus structure, initializes it and calls the ppbus attach function. Supported flags bits 0-3: chipset forced mode(s) PPB_COMPATIBLE 0x0 /* Centronics compatible mode */ PPB_NIBBLE 0x1 /* reverse 4 bit mode */ PPB_PS2 0x2 /* PS/2 byte mode */ PPB_EPP 0x4 /* EPP mode, 32 bit */ PPB_ECP 0x8 /* ECP mode */ And any mixed values. bit 4: EPP protocol (0 EPP 1.9, 1 EPP 1.7) bit 5: activate IRQ (1 IRQ disabled, 0 IRQ enabled) bit 6: disable chipset specific detection bit 7: disable FIFO detection Supported chipsets Some parallel port chipsets are explicitly supported: detection and initialisation code has been written according to their datasheets. o SMC FDC37C665GT and FDC37C666GT chipsets o Natsemi PC873xx-family (PC87332 and PC87306) o Winbond W83877xx-family (W83877F and W83877AF) o SMC-like chipsets with mixed modes (see ppbus(4)) Adding support to a new chipset You may want to add support for the newest chipset your motherboard was sold with. For the ISA bus, just retrieve the specs of the chipset and write the corresponding ppc_mychipset_detect() function. Then add an entry to the general purpose ppc_detect() function. Your ppc_mychipset_detect() function should ensure that if the mode field of the flags boot variable is not null, then the operating mode is forced to the given mode and no other mode is available and ppb->ppb_avm field contains the available modes of the chipset. SEE ALSO
ppbus(4), ppi(4), device.hints(5) HISTORY
The ppc manual page first appeared in FreeBSD 3.0. AUTHORS
This manual page was written by Nicolas Souchu. BUGS
The chipset detection process may corrupt your chipset configuration. You may disable chipset specific detection by using the above flags. BSD
March 5, 1998 BSD
Man Page

Featured Tech Videos