Kernel driver i2c-ali15x3

Supported adapters:
  * Acer Labs, Inc. ALI 1533 and 1543C (south bridge)
    Datasheet: Now under NDA
	http://www.ali.com.tw/eng/support/datasheet_request.php

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

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 M1533 or M1543C on the board and you get
** "ali15x3: 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. 
** The driver won't work if it can't find the M7101 device.

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

The whole M7101 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.

