Computer Science
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_mem_base=n] [cb_bus_base=n]
[cb_bus_step=n] [pci_csc=n] [pci_int=n] [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] [has_clkrun=n]
[clkrun_sel=n] [irq_mode=n]
DESCRIPTION
This is the low-level driver for the Intel i82365sl PCMCIA
host controller, 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 con-
trollers, and all CardBus bridges, are register compatible
with the i82365sl. This driver is used by Card Services
for configuring the host controller, and for monitoring
card status change events.
When the i82365 driver is loaded, it will try to determine
what interrupts can safely be allocated for use by PCMCIA
devices. Cirrus controllers support some optional fea-
tures 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.
An i82365-compatible controller normally sits at the IO
addresses 0x3e0-0x3e1. Two controllers can cooperate to
share the same IO ports, supporting a total of four sock-
ets. A second pair of controllers can be located at
0x3e2-0x3e3. Probing at this position is controlled by
the extra_sockets parameter. The driver will support a
maximum of eight sockets.
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 debug-
ging.
i365_base=n
Sets the base I/O port address of the i82365sl
chip. The default is 0x3e0.
ignore=n
Causes the driver to ignore a single socket. Sock-
ets are numbered 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 for as
many as eight sockets, or stop after checking for
four sockets. The default is 0 (stop at four sock-
ets). Systems with two independent PCMCIA con-
trollers (say, one internal and one in a docking
station) may require this flag to be set, even
though they have a total of only four sockets. If
this flag is set, then poll_interval will automati-
cally be enabled.
do_scan=n
This flag specifies that all free 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 allo-
cated by this driver, if they are otherwise avail-
able. 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-numbered 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 disabled. A reasonable value is
100.
cycle_time=n
Sets the length of a host bus cycle, in nanosec-
onds. 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_mem_base=n
Sets the base address to use for memory mapping
CardBus registers, if not set by the PCI BIOS. The
default is 0x68000000.
cb_bus_base=n
Specifies that PCI bus numbers for CardBus busses
should be renumbered starting with this value. By
default, bus values that are uninitialized at boot
time will be numbered starting with bus 0x20.
cb_bus_step=n
Specifies the number of bus slots to reserve for
secondary PCI busses, for each CardBus socket, when
busses are renumbered. The default is 2.
pci_csc=n
Specifies that card status change interrupts should
be routed to PCI interrupts, for CardBus con-
trollers. The default is 0 (false).
pci_int=n
Specifies that functional interrupts for IO cards
should be routed to PCI interrupts, for CardBus
controllers. The default is 0 (false).
Options specific for Cirrus controllers
has_dma=n
A flag (zero is false, non-zero is true) 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 indi-
cate" signal is implemented. This is set by
default.
freq_bypass=n
A flag indicating that the controller should be set
up in "frequency bypass" mode. This disables the
normal 7/4 clock multiplier, 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 CL6729 PCI controller, indicating
that the PCI bus speed exceeds 25 MHz.
Options specific for Ricoh CardBus controllers
irq_mode=n
Selects the interrupt routing method. A value of 1
selects ISA interrupt routing, and 2 selects inter-
rupt routing via an external serial interrupt con-
troller. The default is to use whatever 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 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 cer-
tain 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 indicate". The default is to read the cur-
rent setting from the controller.
has_clkrun=n
A flag indicating if the controller is wired for
PCI CLKRUN support. The default is to read the
current setting from the controller.
clkrun_sel=n
A flag indicating if the CLKRUN signal is wired to
the ISA interrupt 12 pin, as opposed to ISA inter-
rupt 10. The default is to read the current set-
ting from the controller.
irq_mode=n
Selects the interrupt routing method. A value of 1
selects ISA interrupt routing, and 2 selects inter-
rupt routing via an external serial interrupt con-
troller. The default is to use whatever routing
method is already active, or ISA routing if no
method is enabled.
AUTHOR
David Hinds - dhinds@hyper.stanford.edu
SEE ALSO
cardmgr(8), pcmcia(5).
pcmcia-cs 1999/02/08 08:01:37 1
Back to the index