aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2013-02-26 12:41:53 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2013-02-26 12:41:53 -0500
commit52caa59ed335616c5254adff7911465a57ed9f14 (patch)
treede0a1e91850c9e439e82f83f228d89fee3b90b09 /Documentation
parent4c8c225abf972ce422c241579ce1d4d27eaeb166 (diff)
parent55827f4aa6442ddd1d6a4e1e32f2f457eb113c22 (diff)
Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux
Pull i2c updates from Wolfram Sang: "Highlights: - new drivers for Intel ismt & Broadcom bcm2835 - a number of drivers got support for more variants and mostly got cleaned up on the way (sis630, i801, at91, tegra, designware) - i2c got rid of all *_set_drvdata(..., NULL) on remove/probe failure - removed the i2c_smbus_process_call from the core since there are no users - mxs can now switch between PIO and DMA depending on the message size and the bus speed can now be arbitrary In addition, there is the usual bunch of fixes, cleanups, devm_* conversions, etc" Fixed conflict (and buggy devm_* conversion) in i2c-s3c2410.c * 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (39 commits) i2c: Remove unneeded xxx_set_drvdata(..., NULL) calls i2c: pxa: remove incorrect __exit annotations i2c: ocores: Fix pointer to integer cast warning i2c: tegra: remove warning dump if timeout happen in transfer i2c: fix i2c-ismt.c printk format warning i2c: i801: Add Device IDs for Intel Wellsburg PCH i2c: add bcm2835 driver i2c: ismt: Add Seth and Myself as maintainers i2c: sis630: checkpatch cleanup i2c: sis630: display unsigned hex i2c: sis630: use hex to constants for SMBus commands i2c: sis630: fix behavior after collision i2c: sis630: clear sticky bits i2c: sis630: Add SIS964 support i2c: isch: Add module parameter for backbone clock rate if divider is unset i2c: at91: fix unsed variable warning when building with !CONFIG_OF i2c: Adding support for Intel iSMT SMBus 2.0 host controller i2c: sh_mobile: don't send a stop condition by default inside transfers i2c: sh_mobile: eliminate an open-coded "goto" loop i2c: sh_mobile: fix timeout error handling ...
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/devicetree/bindings/i2c/brcm,bcm2835-i2c.txt20
-rw-r--r--Documentation/devicetree/bindings/i2c/i2c-s3c2410.txt2
-rw-r--r--Documentation/i2c/busses/i2c-i8012
-rw-r--r--Documentation/i2c/busses/i2c-ismt36
-rw-r--r--Documentation/i2c/busses/i2c-sis6309
-rw-r--r--Documentation/i2c/smbus-protocol4
-rw-r--r--Documentation/i2c/writing-clients4
7 files changed, 73 insertions, 4 deletions
diff --git a/Documentation/devicetree/bindings/i2c/brcm,bcm2835-i2c.txt b/Documentation/devicetree/bindings/i2c/brcm,bcm2835-i2c.txt
new file mode 100644
index 000000000000..e9de3756752b
--- /dev/null
+++ b/Documentation/devicetree/bindings/i2c/brcm,bcm2835-i2c.txt
@@ -0,0 +1,20 @@
1Broadcom BCM2835 I2C controller
2
3Required properties:
4- compatible : Should be "brcm,bcm2835-i2c".
5- reg: Should contain register location and length.
6- interrupts: Should contain interrupt.
7- clocks : The clock feeding the I2C controller.
8
9Recommended properties:
10- clock-frequency : desired I2C bus clock frequency in Hz.
11
12Example:
13
14i2c@20205000 {
15 compatible = "brcm,bcm2835-i2c";
16 reg = <0x7e205000 0x1000>;
17 interrupts = <2 21>;
18 clocks = <&clk_i2c>;
19 clock-frequency = <100000>;
20};
diff --git a/Documentation/devicetree/bindings/i2c/i2c-s3c2410.txt b/Documentation/devicetree/bindings/i2c/i2c-s3c2410.txt
index e9611ace8792..f98d4c5b5cca 100644
--- a/Documentation/devicetree/bindings/i2c/i2c-s3c2410.txt
+++ b/Documentation/devicetree/bindings/i2c/i2c-s3c2410.txt
@@ -8,6 +8,8 @@ Required properties:
8 (b) "samsung, s3c2440-i2c", for i2c compatible with s3c2440 i2c. 8 (b) "samsung, s3c2440-i2c", for i2c compatible with s3c2440 i2c.
9 (c) "samsung, s3c2440-hdmiphy-i2c", for s3c2440-like i2c used 9 (c) "samsung, s3c2440-hdmiphy-i2c", for s3c2440-like i2c used
10 inside HDMIPHY block found on several samsung SoCs 10 inside HDMIPHY block found on several samsung SoCs
11 (d) "samsung, exynos5440-i2c", for s3c2440-like i2c used
12 on EXYNOS5440 which does not need GPIO configuration.
11 - reg: physical base address of the controller and length of memory mapped 13 - reg: physical base address of the controller and length of memory mapped
12 region. 14 region.
13 - interrupts: interrupt number to the cpu. 15 - interrupts: interrupt number to the cpu.
diff --git a/Documentation/i2c/busses/i2c-i801 b/Documentation/i2c/busses/i2c-i801
index 157416e78cc4..d55b8ab2d10f 100644
--- a/Documentation/i2c/busses/i2c-i801
+++ b/Documentation/i2c/busses/i2c-i801
@@ -22,6 +22,8 @@ Supported adapters:
22 * Intel Panther Point (PCH) 22 * Intel Panther Point (PCH)
23 * Intel Lynx Point (PCH) 23 * Intel Lynx Point (PCH)
24 * Intel Lynx Point-LP (PCH) 24 * Intel Lynx Point-LP (PCH)
25 * Intel Avoton (SOC)
26 * Intel Wellsburg (PCH)
25 Datasheets: Publicly available at the Intel website 27 Datasheets: Publicly available at the Intel website
26 28
27On Intel Patsburg and later chipsets, both the normal host SMBus controller 29On Intel Patsburg and later chipsets, both the normal host SMBus controller
diff --git a/Documentation/i2c/busses/i2c-ismt b/Documentation/i2c/busses/i2c-ismt
new file mode 100644
index 000000000000..737355822c0b
--- /dev/null
+++ b/Documentation/i2c/busses/i2c-ismt
@@ -0,0 +1,36 @@
1Kernel driver i2c-ismt
2
3Supported adapters:
4 * Intel S12xx series SOCs
5
6Authors:
7 Bill Brown <bill.e.brown@intel.com>
8
9
10Module Parameters
11-----------------
12
13* bus_speed (unsigned int)
14Allows changing of the bus speed. Normally, the bus speed is set by the BIOS
15and never needs to be changed. However, some SMBus analyzers are too slow for
16monitoring the bus during debug, thus the need for this module parameter.
17Specify the bus speed in kHz.
18Available bus frequency settings:
19 0 no change
20 80 kHz
21 100 kHz
22 400 kHz
23 1000 kHz
24
25
26Description
27-----------
28
29The S12xx series of SOCs have a pair of integrated SMBus 2.0 controllers
30targeted primarily at the microserver and storage markets.
31
32The S12xx series contain a pair of PCI functions. An output of lspci will show
33something 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
diff --git a/Documentation/i2c/busses/i2c-sis630 b/Documentation/i2c/busses/i2c-sis630
index 0b9697366930..ee7943631074 100644
--- a/Documentation/i2c/busses/i2c-sis630
+++ b/Documentation/i2c/busses/i2c-sis630
@@ -4,9 +4,11 @@ Supported adapters:
4 * Silicon Integrated Systems Corp (SiS) 4 * Silicon Integrated Systems Corp (SiS)
5 630 chipset (Datasheet: available at http://www.sfr-fresh.com/linux) 5 630 chipset (Datasheet: available at http://www.sfr-fresh.com/linux)
6 730 chipset 6 730 chipset
7 964 chipset
7 * Possible other SiS chipsets ? 8 * Possible other SiS chipsets ?
8 9
9Author: Alexander Malysh <amalysh@web.de> 10Author: Alexander Malysh <amalysh@web.de>
11 Amaury Decrême <amaury.decreme@gmail.com> - SiS964 support
10 12
11Module Parameters 13Module Parameters
12----------------- 14-----------------
@@ -18,6 +20,7 @@ Module Parameters
18* high_clock = [1|0] Forcibly set Host Master Clock to 56KHz (default, 20* high_clock = [1|0] Forcibly set Host Master Clock to 56KHz (default,
19 what your BIOS use). DANGEROUS! This should be a bit 21 what your BIOS use). DANGEROUS! This should be a bit
20 faster, but freeze some systems (i.e. my Laptop). 22 faster, but freeze some systems (i.e. my Laptop).
23 SIS630/730 chip only.
21 24
22 25
23Description 26Description
@@ -36,6 +39,12 @@ or like this:
3600:00.0 Host bridge: Silicon Integrated Systems [SiS] 730 Host (rev 02) 3900:00.0 Host bridge: Silicon Integrated Systems [SiS] 730 Host (rev 02)
3700:01.0 ISA bridge: Silicon Integrated Systems [SiS] 85C503/5513 4000:01.0 ISA bridge: Silicon Integrated Systems [SiS] 85C503/5513
38 41
42or like this:
43
4400:00.0 Host bridge: Silicon Integrated Systems [SiS] 760/M760 Host (rev 02)
4500:02.0 ISA bridge: Silicon Integrated Systems [SiS] SiS964 [MuTIOL Media IO]
46 LPC Controller (rev 36)
47
39in your 'lspci' output , then this driver is for your chipset. 48in your 'lspci' output , then this driver is for your chipset.
40 49
41Thank You 50Thank You
diff --git a/Documentation/i2c/smbus-protocol b/Documentation/i2c/smbus-protocol
index d1f22618e14b..6012b12b3510 100644
--- a/Documentation/i2c/smbus-protocol
+++ b/Documentation/i2c/smbus-protocol
@@ -137,8 +137,8 @@ available for writes where the two data bytes are the other way
137around (not SMBus compliant, but very popular.) 137around (not SMBus compliant, but very popular.)
138 138
139 139
140SMBus Process Call: i2c_smbus_process_call() 140SMBus Process Call:
141============================================= 141===================
142 142
143This command selects a device register (through the Comm byte), sends 143This command selects a device register (through the Comm byte), sends
14416 bits of data to it, and reads 16 bits of data in return. 14416 bits of data to it, and reads 16 bits of data in return.
diff --git a/Documentation/i2c/writing-clients b/Documentation/i2c/writing-clients
index 3a94b0e6f601..6b344b516bff 100644
--- a/Documentation/i2c/writing-clients
+++ b/Documentation/i2c/writing-clients
@@ -365,8 +365,6 @@ in terms of it. Never use this function directly!
365 s32 i2c_smbus_read_word_data(struct i2c_client *client, u8 command); 365 s32 i2c_smbus_read_word_data(struct i2c_client *client, u8 command);
366 s32 i2c_smbus_write_word_data(struct i2c_client *client, 366 s32 i2c_smbus_write_word_data(struct i2c_client *client,
367 u8 command, u16 value); 367 u8 command, u16 value);
368 s32 i2c_smbus_process_call(struct i2c_client *client,
369 u8 command, u16 value);
370 s32 i2c_smbus_read_block_data(struct i2c_client *client, 368 s32 i2c_smbus_read_block_data(struct i2c_client *client,
371 u8 command, u8 *values); 369 u8 command, u8 *values);
372 s32 i2c_smbus_write_block_data(struct i2c_client *client, 370 s32 i2c_smbus_write_block_data(struct i2c_client *client,
@@ -381,6 +379,8 @@ These ones were removed from i2c-core because they had no users, but could
381be added back later if needed: 379be added back later if needed:
382 380
383 s32 i2c_smbus_write_quick(struct i2c_client *client, u8 value); 381 s32 i2c_smbus_write_quick(struct i2c_client *client, u8 value);
382 s32 i2c_smbus_process_call(struct i2c_client *client,
383 u8 command, u16 value);
384 s32 i2c_smbus_block_process_call(struct i2c_client *client, 384 s32 i2c_smbus_block_process_call(struct i2c_client *client,
385 u8 command, u8 length, u8 *values); 385 u8 command, u8 length, u8 *values);
386 386