Skip to content

Commit 13f35ac

Browse files
nhormanwsakernel
authored andcommitted
i2c: Adding support for Intel iSMT SMBus 2.0 host controller
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 <[email protected]> Signed-off-by: Bill Brown <[email protected]> Tested-by: Seth Heasley <[email protected]> Reviewed-by: Jean Delvare <[email protected]> Signed-off-by: Wolfram Sang <[email protected]>
1 parent e789029 commit 13f35ac

File tree

4 files changed

+1010
-0
lines changed

4 files changed

+1010
-0
lines changed

Documentation/i2c/busses/i2c-ismt

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
Kernel driver i2c-ismt
2+
3+
Supported adapters:
4+
* Intel S12xx series SOCs
5+
6+
Authors:
7+
Bill Brown <[email protected]>
8+
9+
10+
Module Parameters
11+
-----------------
12+
13+
* bus_speed (unsigned int)
14+
Allows changing of the bus speed. Normally, the bus speed is set by the BIOS
15+
and never needs to be changed. However, some SMBus analyzers are too slow for
16+
monitoring the bus during debug, thus the need for this module parameter.
17+
Specify the bus speed in kHz.
18+
Available bus frequency settings:
19+
0 no change
20+
80 kHz
21+
100 kHz
22+
400 kHz
23+
1000 kHz
24+
25+
26+
Description
27+
-----------
28+
29+
The S12xx series of SOCs have a pair of integrated SMBus 2.0 controllers
30+
targeted primarily at the microserver and storage markets.
31+
32+
The S12xx series contain a pair of PCI functions. An output of lspci will show
33+
something similar to the following:
34+
35+
00:13.0 System peripheral: Intel Corporation Centerton SMBus 2.0 Controller 0
36+
00:13.1 System peripheral: Intel Corporation Centerton SMBus 2.0 Controller 1

drivers/i2c/busses/Kconfig

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,16 @@ config I2C_ISCH
122122
This driver can also be built as a module. If so, the module
123123
will be called i2c-isch.
124124

125+
config I2C_ISMT
126+
tristate "Intel iSMT SMBus Controller"
127+
depends on PCI && X86
128+
help
129+
If you say yes to this option, support will be included for the Intel
130+
iSMT SMBus host controller interface.
131+
132+
This driver can also be built as a module. If so, the module will be
133+
called i2c-ismt.
134+
125135
config I2C_PIIX4
126136
tristate "Intel PIIX4 and compatible (ATI/AMD/Serverworks/Broadcom/SMSC)"
127137
depends on PCI

drivers/i2c/busses/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ obj-$(CONFIG_I2C_AMD756_S4882) += i2c-amd756-s4882.o
1414
obj-$(CONFIG_I2C_AMD8111) += i2c-amd8111.o
1515
obj-$(CONFIG_I2C_I801) += i2c-i801.o
1616
obj-$(CONFIG_I2C_ISCH) += i2c-isch.o
17+
obj-$(CONFIG_I2C_ISMT) += i2c-ismt.o
1718
obj-$(CONFIG_I2C_NFORCE2) += i2c-nforce2.o
1819
obj-$(CONFIG_I2C_NFORCE2_S4985) += i2c-nforce2-s4985.o
1920
obj-$(CONFIG_I2C_PIIX4) += i2c-piix4.o

0 commit comments

Comments
 (0)