Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ddb03448 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull i2c updates from Jean Delvare:
 "The most important changes here are a big cleanup of the i2c-piix4
  driver, cleanups and interrupt support to the i2c-i801 driver, and
  support for the SCCB protocol."

* 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
  i2c-omap: Add support for I2C_M_STOP message flag
  i2c: Fall back to emulated SMBus if the operation isn't supported natively
  i2c: Add SCCB support
  i2c-tiny-usb: Add support for the Robofuzz OSIF USB/I2C converter
  i2c-i801: Enable IRQ for byte_by_byte transactions
  i2c-i801: Enable interrupts on ICH5/7/8/9/10
  i2c-i801: Enable IRQ for SMBus transactions
  i2c-i801: Consolidate polling
  i2c-i801: Drop ENABLE_INT9
  i2c-i801: Rename some SMBHSTCNT bit constants
  i2c-i801: Check and return errors during byte-by-byte transfers
  i2c-i801: Clear only status bits in HST_STS
  i2c-i801: Refactor use of LAST_BYTE in i801_block_transaction_byte_by_byte
  i2c-smbus: Use module_i2c_driver()
  i2c/writing-clients: Mention module_i2c_driver()
  i2c-piix4: Support AMD auxiliary SMBus controller
  i2c-piix4: Separate registration and probing code
  i2c-piix4: Eliminate piix4_smba global variable
  i2c/busses: Use module_pci_driver
  i2c: Update Guenter Roeck's e-mail address
parents dbf7b591 fb604a3d
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -38,9 +38,10 @@ Module Parameters
Disable selected features normally supported by the device. This makes it
possible to work around possible driver or hardware bugs if the feature in
question doesn't work as intended for whatever reason. Bit values:
  1  disable SMBus PEC
  2  disable the block buffer
  8  disable the I2C block read functionality
 0x01  disable SMBus PEC
 0x02  disable the block buffer
 0x08  disable the I2C block read functionality
 0x10  don't use interrupts


Description
@@ -86,6 +87,12 @@ SMBus 2.0 Support
The 82801DB (ICH4) and later chips support several SMBus 2.0 features.


Interrupt Support
-----------------

PCI interrupt support is supported on the 82801EB (ICH5) and later chips.


Hidden ICH SMBus
----------------

+9 −0
Original line number Diff line number Diff line
@@ -8,6 +8,11 @@ Supported adapters:
    Datasheet: Only available via NDA from ServerWorks
  * ATI IXP200, IXP300, IXP400, SB600, SB700 and SB800 southbridges
    Datasheet: Not publicly available
    SB700 register reference available at:
    http://support.amd.com/us/Embedded_TechDocs/43009_sb7xx_rrg_pub_1.00.pdf
  * AMD SP5100 (SB700 derivative found on some server mainboards)
    Datasheet: Publicly available at the AMD website
    http://support.amd.com/us/Embedded_TechDocs/44413.pdf
  * AMD Hudson-2
    Datasheet: Not publicly available
  * Standard Microsystems (SMSC) SLC90E66 (Victory66) southbridge
@@ -68,6 +73,10 @@ this driver on those mainboards.
The ServerWorks Southbridges, the Intel 440MX, and the Victory66 are
identical to the PIIX4 in I2C/SMBus support.

The AMD SB700 and SP5100 chipsets implement two PIIX4-compatible SMBus
controllers. If your BIOS initializes the secondary controller, it will
be detected by this driver as an "Auxiliary SMBus Host Controller".

If you own Force CPCI735 motherboard or other OSB4 based systems you may need
to change the SMBus Interrupt Select register so the SMBus controller uses
the SMI mode.
+15 −8
Original line number Diff line number Diff line
@@ -245,21 +245,17 @@ static int __init foo_init(void)
{
	return i2c_add_driver(&foo_driver);
}
module_init(foo_init);

static void __exit foo_cleanup(void)
{
	i2c_del_driver(&foo_driver);
}
module_exit(foo_cleanup);

/* Substitute your own name and email address */
MODULE_AUTHOR("Frodo Looijaard <frodol@dds.nl>"
MODULE_DESCRIPTION("Driver for Barf Inc. Foo I2C devices");

/* a few non-GPL license types are also allowed */
MODULE_LICENSE("GPL");
The module_i2c_driver() macro can be used to reduce above code.

module_init(foo_init);
module_exit(foo_cleanup);
module_i2c_driver(foo_driver);

Note that some functions are marked by `__init'.  These functions can
be removed after kernel booting (or module loading) is completed.
@@ -267,6 +263,17 @@ Likewise, functions marked by `__exit' are dropped by the compiler when
the code is built into the kernel, as they would never be called.


Driver Information
==================

/* Substitute your own name and email address */
MODULE_AUTHOR("Frodo Looijaard <frodol@dds.nl>"
MODULE_DESCRIPTION("Driver for Barf Inc. Foo I2C devices");

/* a few non-GPL license types are also allowed */
MODULE_LICENSE("GPL");


Power Management
================

+5 −1
Original line number Diff line number Diff line
@@ -133,7 +133,7 @@ config I2C_PIIX4
	    ATI IXP300
	    ATI IXP400
	    ATI SB600
	    ATI SB700
	    ATI SB700/SP5100
	    ATI SB800
	    AMD Hudson-2
	    Serverworks OSB4
@@ -143,6 +143,10 @@ config I2C_PIIX4
	    Serverworks HT-1100
	    SMSC Victory66

	  Some AMD chipsets contain two PIIX4-compatible SMBus
	  controllers. This driver will attempt to use both controllers
	  on the SB700/SP5100, if they have been initialized by the BIOS.

	  This driver can also be built as a module.  If so, the module
	  will be called i2c-piix4.

+1 −12
Original line number Diff line number Diff line
@@ -531,15 +531,7 @@ static struct pci_driver ali1535_driver = {
	.remove		= __devexit_p(ali1535_remove),
};

static int __init i2c_ali1535_init(void)
{
	return pci_register_driver(&ali1535_driver);
}

static void __exit i2c_ali1535_exit(void)
{
	pci_unregister_driver(&ali1535_driver);
}
module_pci_driver(ali1535_driver);

MODULE_AUTHOR("Frodo Looijaard <frodol@dds.nl>, "
	      "Philip Edelbrock <phil@netroedge.com>, "
@@ -547,6 +539,3 @@ MODULE_AUTHOR("Frodo Looijaard <frodol@dds.nl>, "
	      "and Dan Eaton <dan.eaton@rocketlogix.com>");
MODULE_DESCRIPTION("ALI1535 SMBus driver");
MODULE_LICENSE("GPL");

module_init(i2c_ali1535_init);
module_exit(i2c_ali1535_exit);
Loading