i82365
I82365(4) I82365(4)
NAME
i82365 - Intel i82365sl PCMCIA controller driver
SYNOPSIS
insmod i82365.o [pc_debug=n] [i365_base=n] [ignore=n] [extra_sockets=n]
[do_scan=n] [irq_list=i,j,...] [cs_irq=n] [poll_interval=n]
[cycle_time=n] [do_pci_probe=n] [cb_write_post=n] [pci_csc=n]
[pci_int=n] [pci_irq_list=i,j,...] [has_dma=n] [has_led=n]
[has_ring=n] [freq_bypass=n] [setup_time=n] [cmd_time=n] [recov_time=n]
[wakeup=n] [fast_pci=n] [async_clock=n] [cable_mode=n] [irq_mode=n]
[p2cclk=n]
DESCRIPTION
This is the low-level driver for the Intel i82365sl PCMCIA host con-
troller, and many derivative controllers. It also implements the Intel
"Yenta" register specification for CardBus bridges. Common clones of
the i82365sl include controllers made by Cirrus Logic, IBM, O2Micro,
Omega Micro, Ricoh, SMC, Texas Instruments, Toshiba, Vadem, and VLSI.
The overwhelming majority of current PCMCIA controllers, and all Card-
Bus bridges, are register compatible with the i82365sl. This driver is
used by Card Services for configuring the host controller, and for mon-
itoring card status change events.
An ISA i82365-compatible controller normally sits at the IO addresses
0x3e0-0x3e1. Two ISA controllers can cooperate to share the same IO
ports, supporting a total of four sockets. A second pair of con-
trollers can be located at 0x3e2-0x3e3. Probing at this position is
controlled by the extra_sockets parameter. This only affects ISA
bridges: the PCI bridge probe handles multiple controllers automati-
cally. The driver will support a maximum of eight sockets.
CardBus interrupt delivery
CardBus bridges generally support both PCI and ISA interrupt signals,
and multiple methods of deliving interrupt events to the host system.
The system BIOS is partly responsible for correctly configuring the
bridge to match the implemented interrupt hardware at boot time. This
module provides several parameters for overriding this default inter-
rupt configuration. The pci_int and pci_csc settings can be used to
control use of PCI interrupts for card interrupts or card status
changes. The irq_mode setting, for bridges that support it, can be
used to select an interrupt delivery method.
When the i82365 module is loaded, it performs a scan of free ISA inter-
rupts to determine which ones appear to be usable for PCMCIA events.
The interrupt scan results are reported in the system log. A success-
ful scan will report a list of interrupts as ``scanned''; if no inter-
rupts appear to work, then a ``default'' list is reported. Some
bridges (Cirrus non-CardBus bridges, some Toshiba bridges) do not sup-
port the software interrupt test and will always report a ``default''
list. In other cases, this may be a sign of an incorrect irq_mode.
PARAMETERS
pc_debug=n
Selects the PCMCIA debugging level. This parameter is only
available if the module is compiled with debugging enabled. A
non-zero value enables debugging.
i365_base=n
Sets the base I/O port address of the i82365sl chip. The
default is 0x3e0. Applies only to ISA-to-PCMCIA bridges.
ignore=n
Causes the driver to ignore a single socket. Sockets are num-
bered starting at 0. The socket will be left in whatever state
it was already in, so it can be used for cards with point
enablers that do not cooperate with Card Services.
extra_sockets=n
A flag indicating if the driver should probe at IO base 0x3e2 in
addition to the default 0x3e0 base. The default is 0 (do not
probe at 0x3e2). Systems with two independent ISA-to-PCMCIA
controllers (say, one internal and one in a docking station) may
require this flag to be set. If this flag is set, then
poll_interval will automatically be enabled.
do_scan=n
This flag specifies that all free ISA interrupts should be
tested to see if they can be triggered by the PCMCIA controller.
The default is 1 (true).
irq_list=i,j,...
Specifies the set of interrupts that may be allocated by this
driver, if they are otherwise available. The default list is 3,
4, 5, 7, 9, 10, 11, 12, 14, and 15.
cs_irq=n
Sets the interrupt line to use for monitoring card status
changes. The default is 0, which means pick the highest-num-
bered legal interrupt not already in use. Legal values are 15,
14, 12, 11, 10, 9, 7, 5, 4, and 3.
poll_interval=n
Sets the card status polling delay, in 1/100 second increments.
If this parameter is set, card status interrupts will be dis-
abled. A reasonable value is 100. Polling only affects detec-
tion of card insert and eject events.
cycle_time=n
Sets the length of a host bus cycle, in nanoseconds. The
default is 210 ns, corresponding to a standard 4.77 MHz clock.
Options for CardBus controllers
do_pci_probe=n
This flag indicates if the PCI bus should be probed for PCI-to-
PCMCIA and/or PCI-to-CardBus bridges. The default is 1 (true).
cb_write_post=n
A flag indicating if write posting (a performance feature)
should be enabled. The default is 1 (true), except on certain
TI 1130 bridges.
pci_csc=n
Specifies that card status change interrupts should be routed to
PCI interrupts, for CardBus controllers. The default is 1
(true).
pci_int=n
Specifies that functional interrupts for IO cards should be
routed to PCI interrupts, for CardBus controllers. The default
is 1 (true), except on systems that require use of PCI inter-
rupts.
pci_irq_list=i,j,...
The Linux kernel sometimes cannot deduce the PCI interrupt
assignments for CardBus sockets. If this information can be
determined some other way, it can be entered here. The Nth
socket will get the Nth interrupt number from the list.
Options specific for Cirrus controllers
When the i82365 driver is loaded, it will try to determine what inter-
rupts can safely be allocated for use by PCMCIA devices. Cirrus con-
trollers support some optional features that interfere with the use of
certain interrupt lines. Cirrus chips also lack the functionality
needed to detect whether or not an interrupt can be used. The has_dma,
has_ring, and has_led options are used to specify if these features are
implemented.
has_dma=n
A flag indicating if the controller has DMA support.
has_led=n
A flag indicating if the controller is wired for a disk status
LED. This is set by default.
has_ring=n
A flag indicating if the controller's "ring indicate" signal is
implemented. This is set by default.
freq_bypass=n
A flag indicating that the controller should be set up in "fre-
quency bypass" mode. This disables the normal 7/4 clock multi-
plier, and slows down all PCMCIA bus access, for systems with
fast system clocks.
setup_time=n
Sets the bus setup time, in internal clock cycles. The default
is 1.
cmd_time=n
Sets the bus command time, in internal clock cycles. The default
is 6.
recov_time=n
Sets the bus recovery time, in internal clock cycles. The
default is 0.
wakeup=n
A flag indicating if the probe function should attempt to wake
up a suspended controller chip. The default is 0.
fast_pci=n
A flag for the PD6729 PCI controller, indicating that the PCI
bus speed exceeds 25 MHz.
irq_mode=n
For the PD6729 PCI controller, specifies the interrupt delivery
mode. The default is to use ISA bus interrupts; a value of 1
selects PCI interrupts. This must be set for correct operation
of some PCI card readers.
Options specific for Ricoh CardBus controllers
irq_mode=n
Selects the interrupt routing method. A value of 0 selects only
PCI interrupts; 1 selects ISA interrupt routing, and 2 selects
ISA interrupt routing via an external serial interrupt con-
troller. The default is to use whatever ISA routing method is
already enabled.
setup_time=n
Sets the bus setup time, in internal clock cycles. The default
is 3.
cmd_time=n
Sets the bus command time, in internal clock cycles. The default
is 6.
hold_time=n
Sets the bus hold time, in internal clock cycles. The default is
1.
Options specific for Vadem ISA controllers
async_clock=n
This flag specifies that PCMCIA bus cycles should be clocked
asynchronously from host bus cycles. It effectively adds a wait
state to some operations.
cable_mode=n
For the VG469, this flag adjusts certain socket signals for
driving a socket connected via a cable.
Options specific for TI CardBus controllers
Normally, a system's BIOS will configure these options appropriately,
so all these options default to leaving these features configured the
way the driver finds them.
has_ring=n
A flag indicating if the controller is wired for "ring indi-
cate". The default is to read the current setting from the con-
troller.
irq_mode=n
Selects the interrupt routing method. A value of 0 selects only
PCI interrupts; 1 selects ISA interrupt routing; 2 selects ISA
interrupt routing via an external serial interrupt controller;
and 3 selects serial routing for both PCI and ISA interrupts.
The default is to use whatever routing method is already
active, or ISA routing if no method is enabled.
p2cclk=n
A flag, indicating if the P2CCLK pin should be configured as an
input (0) or an output (1). This signal is used for communicat-
ing with a socket power controller; if set incorrectly, the
bridge will be unable to power up cards. The default is to use
the BIOS setting.
AUTHOR
David Hinds - dahinds@users.sourceforge.net
SEE ALSO
cardmgr(8), pcmcia(5).
pcmcia-cs 2001/04/16 00:28:37 I82365(4)