Kernel driver `i2c-ali15x3.o'

Status: Complete and tested; block reads/writes untested (not used by any
        current chip driver)

Supported adapters:
  * Acer Labs, Inc. ALI 1533 and 1543C (south bridge)
    Datasheet: Available at the Acer Labs website (password required)

Author: Frodo Looijaard <frodol@dds.nl>, Philip Edelbrock
        <phil@netroedge.com>, and Mark D. Studebaker <mdsxyz123@yahoo.com>

License: GPL


Module Parameters
-----------------

* force_addr: int
  Initialize the base address of the i2c controller


Notes
-----

The force_addr parameter is useful for boards that don't set the address
in the BIOS. Does not do a PCI force; the device must still be present
in lspci. Don't use this unless the driver complains that the
base address is not set.
Example: 'modprobe i2c-ali15x3 force_addr=0xe800'

SMBus periodically hangs on ASUS P5A motherboards and can only be
cleared by a power cycle. Cause unknown (see Issues below).


Description
-----------

This is the driver for the SMB Host controller on
Acer Labs Inc. (ALI) M1541 and M1543C South Bridges.

The M1543C is a South bridge for desktop systems.
The M1541 is a South bridge for portable systems.
They are part of the following ALI chipsets:
   "Aladdin Pro 2": Includes the M1621 Slot 1 North bridge
   with AGP and 100MHz CPU Front Side bus

   "Aladdin V": Includes the M1541 Socket 7 North bridge
   with AGP and 100MHz CPU Front Side bus
   Some Aladdin V motherboards:
	Asus P5A
	Atrend ATC-5220
	BCM/GVC VP1541
	Biostar M5ALA
	Gigabyte GA-5AX (** Generally doesn't work because the BIOS doesn't
                            enable the 7101 device! **)
	Iwill XA100 Plus
	Micronics C200
	Microstar (MSI) MS-5169

   "Aladdin IV": Includes the M1541 Socket 7 North bridge
   with host bus up to 83.3 MHz.

For an overview of these chips see http://www.acerlabs.com
At this time the full data sheets on the web site are password protected,
however if you contact the ALI office in San Jose
they may give you the password.

The M1533/M1543C devices appear as FOUR separate devices
on the PCI bus. An output of lspci will show something similar
to the following:

  00:02.0 USB Controller: Acer Laboratories Inc. M5237 (rev 03)
  00:03.0 Bridge: Acer Laboratories Inc. M7101      <= THIS IS THE ONE WE NEED
  00:07.0 ISA bridge: Acer Laboratories Inc. M1533 (rev c3)
  00:0f.0 IDE interface: Acer Laboratories Inc. M5229 (rev c1)

** IMPORTANT **
** If you have a 1533 or 1543C on the board and you get
** "ali15x3.o: Error: Can't detect ali15x3!"
** then run lspci.
** If you see the 1533 and 5229 devices but NOT the 7101 device,
** then you must enable ACPI, the PMU, SMB, or something similar
** in the BIOS. If you can't figure out how to enable the
** 7101 device in the BIOS, you can try one of the "hotplug" modules -
** see below.
** The driver won't work if it can't find the 7101 device.

The SMB controller is part of the 7101 device, which is an
ACPI-compliant Power Management Unit (PMU).

The whole 7101 device has to be enabled for the SMB to work.
You can't just enable the SMB alone.
The SMB and the ACPI have separate I/O spaces.
We make sure that the SMB is enabled. We leave the ACPI alone.


Features
--------
This driver controls the SMB Host only.
The SMB Slave controller on the M15X3 is not enabled.
This driver does not use interrupts.


Issues
------
This driver requests the I/O space for only the SMB
registers. It doesn't use the ACPI region.

On the ASUS P5A motherboard, there are several reports that
the SMBus will hang and this can only be resolved by
powering off the computer. It appears to be worse when the board
gets hot, for example under heavy CPU load, or in the summer.
There may be electrical problems on this board.
On the P5A, the W83781D sensor chip is on both the ISA and
SMBus. Therefore the SMBus hangs can generally be avoided
by accessing the W83781D on the ISA bus only.


Hot Plug Modules
----------------

There are EXPERIMENTAL "hotplug" modules which will enable the
m7101 device if it is not enabled on your motherboard.
Use these at your own risk. Read the README file carefully.

m7101 Version 0.1 for 2.2 and early 2.3 kernels:
	README:            http://www.netroedge.com/~lm78/misc/README-m7101.txt
	source and README: http://www.netroedge.com/~lm78/misc/m7101-0.1.tar.gz

m7101 Version 0.2 for 2.4 and later 2.3 kernels:
	In the directory prog/hotplug in this package.
	Must be built separately.


