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