This is a list of modules, the modules they depend on, and the module
parameters they define. First, some things about managing all these 
modules.

The hardcore way is to insmod each of them by hand. This is not very
practical, though. It is better to install them in a subdirectory that
modprobe examines. /lib/modules/current/extra/misc comes to mind.
You need to add this path to your /etc/modules.conf (or /etc/conf.modules,
which file is used depends on your distribution):
  (modules-2.0.0):
    path[misc]=/lib/modules/current/extra/misc
  (modutils-2.1.x):
    path=/lib/modules/current/extra
Do always a 'killall -HUP kerneld; depmod -a' after changing either your
configuration file or changing a module in one of the module directories.

Now you can do 'modprobe lm78', and all dependent modules are loaded
automatically. You could, of course, add this statement (and related
statements for other drivers) somewhere in your rc files. But, most
distributions are set up to load automatically all files in the
'boot' directories on system start, so why not use this? The best
way to do this is to create directory /lib/modules/boot, and to
put *links* to the real modules in there. Why links? Well, by linking
to /lib/modules/current/whatever, this will function for any kernel
(provided /lib/modules/current is correctly set up to point to the
current kernel). So:
  mkdir -p /lib/modules/boot
  ln -s ../current/extra/misc/lm78.o /lib/modules/boot/lm78.o
  # etc.

It is also possible to specify default options, that you would normally
enter at the insmod command, in the configuration file. The syntax is
as follows:
  options i2c-core debug=2

Finally, it is possible to auto-load the i2c-dev module if a /dev/i2c-*
file is accessed. You need the following line in the configuration file:
  alias char-major-89 i2c-dev

With the above, the managing of all those modules is suddenly no problem
at all!


(i2c) i2c-core:
  The core i2c module (surprise!). Almost everything else depends on this one.
  Module parameters:
    i2c_debug (i) Set debug level

(src) i2c-proc: i2c-core
  Creates /proc/bus/i2c* files.

(src) i2c-dev: smbus i2c-core
  Grants access to /dev/i2c-* files

(src) smbus: i2c-core
  SMBus emulation on i2c busses. Base algorithm, on which SMBus-only adapters
  rely.

(src/busses) i2c-piix4: smbus i2c-core
  PIIX4 SMBus access.

(src/busses) i2c-via: algo-bit i2c-core
  VIA VT82C586B bus access. This is often used instead of the PIIX4 as SMBus
  host.

(src/busses) i2c-ali15x3: smbus i2c-core
  Acer Labs M1541 and M1543C bus access.

(src/busses) i2c-isa: i2c-core
  Defines the ISA bus as being a I2C adapter. It isn't, of course; but this is
  often used by sensor client modules, to keep the code small and simple.

(src) sensors: i2c-core
  General purpose routines for sensor client modules

(src/chips) lm78: sensors smbus i2c-core
  LM78, LM78-J and LM79 chip driver

(src/chips) lm75: sensors smbus i2c-core
  LM75 chip driver

(src/chips) gl518sm: sensors smbus i2c-core
  GL518SM revision 0x00 and 0x80 chip driver

(src/chips) adm1021: sensors smbus i2c-core
  ADM1021 and MAX1617 chip driver 

(src/chips) adm9240: sensors smbus i2c-core
  ADM9240 chip driver

(src/chips) ltc1710: sensors smbus i2c-core
  LTC1710 chip driver

(src/chips) sis5595: sensors smbus i2c-core
  SIS-5595 chipset hardware monitor driver

(src/chips) w83781d: sensors smbus i2c-core
  W83781D chip driver

(src/chips) eeprom: sensors smbus i2c-core
  Driver for DIMMs connected to the SMBus. You need prog/eeprom/decode-dimms.pl
  to make sense of its output.

(i2c) algo-bit: i2c-core
  The 'bit' algorithm, used by many i2c adapters
  Module parameters:
    bit_test (i) Test the lines of the bus to see if it is stuck
    bit_scan (i) Scan for active chips on the bus
    i2c_debug (i) debug level - 0 off; 1 normal; 2,3 more verbose; 
                  9 bit-protocol

(i2c) bit-lp: algo-bit i2c-core
  I2C bus through the parallel port, Philips interface
  Do not insert this module unless you are sure you have this interface;
  it will block your parallel port, and cause fake devices to appear.
  Module parameters:
    base (i) Base address of parallel port

(i2c) bit-velle: algo-bit i2c-core
  I2C bus through the parallel port, Vellemann K9000 interface
  Do not insert this module unless you are sure you have this interface;
  it will block your parallel port, and cause fake devices to appear.
  Module parameters:
    base (i) Base address of parallel port

(i2c) i2c-dev: i2c-core
  /dev interface for I2C adapters. This is superseded by a module which
  will also implement SMBus access. Please do not use this anymore.

Several other modules are not yet ported by Simon Vogl. They are mostly in
i2c/old-code.

Usually, if you load the modules through modprobe, you need the following
commands:
  modprobe i2c-proc
  modprobe i2c-isa  # Unless you are certain no sensor chips live on the ISA bus
  modprobe i2c-piix4 # One such line for each adapter you own
  modprobe lm78     # One such line for each device you own
