Skip to content

Commit

Permalink
i2c: Adding support for Intel iSMT SMBus 2.0 host controller
Browse files Browse the repository at this point in the history
The iSMT (Intel SMBus Message Transport) supports multi-master I2C/SMBus,
as well as IPMI.  It's operation is DMA-based and utilizes descriptors to
initiate transactions on the bus.

The iSMT hardware can act as both a master and a target, although this
driver only supports being a master.

Signed-off-by: Neil Horman <nhorman@tuxdriver.com>
Signed-off-by: Bill Brown <bill.e.brown@intel.com>
Tested-by: Seth Heasley <seth.heasley@intel.com>
Reviewed-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Wolfram Sang <wolfram@the-dreams.de>
  • Loading branch information
nhorman authored and wsakernel committed Feb 10, 2013
1 parent e789029 commit 13f35ac
Show file tree
Hide file tree
Showing 4 changed files with 1,010 additions and 0 deletions.
36 changes: 36 additions & 0 deletions Documentation/i2c/busses/i2c-ismt
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
Kernel driver i2c-ismt

Supported adapters:
* Intel S12xx series SOCs

Authors:
Bill Brown <bill.e.brown@intel.com>


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

* bus_speed (unsigned int)
Allows changing of the bus speed. Normally, the bus speed is set by the BIOS
and never needs to be changed. However, some SMBus analyzers are too slow for
monitoring the bus during debug, thus the need for this module parameter.
Specify the bus speed in kHz.
Available bus frequency settings:
0 no change
80 kHz
100 kHz
400 kHz
1000 kHz


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

The S12xx series of SOCs have a pair of integrated SMBus 2.0 controllers
targeted primarily at the microserver and storage markets.

The S12xx series contain a pair of PCI functions. An output of lspci will show
something similar to the following:

00:13.0 System peripheral: Intel Corporation Centerton SMBus 2.0 Controller 0
00:13.1 System peripheral: Intel Corporation Centerton SMBus 2.0 Controller 1
10 changes: 10 additions & 0 deletions drivers/i2c/busses/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,16 @@ config I2C_ISCH
This driver can also be built as a module. If so, the module
will be called i2c-isch.

config I2C_ISMT
tristate "Intel iSMT SMBus Controller"
depends on PCI && X86
help
If you say yes to this option, support will be included for the Intel
iSMT SMBus host controller interface.

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

config I2C_PIIX4
tristate "Intel PIIX4 and compatible (ATI/AMD/Serverworks/Broadcom/SMSC)"
depends on PCI
Expand Down
1 change: 1 addition & 0 deletions drivers/i2c/busses/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ obj-$(CONFIG_I2C_AMD756_S4882) += i2c-amd756-s4882.o
obj-$(CONFIG_I2C_AMD8111) += i2c-amd8111.o
obj-$(CONFIG_I2C_I801) += i2c-i801.o
obj-$(CONFIG_I2C_ISCH) += i2c-isch.o
obj-$(CONFIG_I2C_ISMT) += i2c-ismt.o
obj-$(CONFIG_I2C_NFORCE2) += i2c-nforce2.o
obj-$(CONFIG_I2C_NFORCE2_S4985) += i2c-nforce2-s4985.o
obj-$(CONFIG_I2C_PIIX4) += i2c-piix4.o
Expand Down

0 comments on commit 13f35ac

Please sign in to comment.