aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-12 16:25:00 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-07-12 16:25:00 -0400
commit068345f4a873e8b0b511e8f94a595a20e176eeff (patch)
treef67503164f017b45ab425827d71fb7d23920a519 /Documentation
parentc39736823232bc3ca113c8228fa852c09fba300e (diff)
parent0a85e9a271a754e352af8a8b625025017fd97449 (diff)
Merge branch 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6
* 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6: (26 commits) i2c-rpx: Remove i2c-mpc: work around missing-9th-clock-pulse bug i2c: New PMC MSP71xx TWI bus driver i2c-savage4: Delete many unused defines i2c/tsl2550: Speed up initialization i2c: New bus driver for the TAOS evaluation modules i2c-i801: Use the internal 32-byte buffer on ICH4+ i2c-i801: Various cleanups i2c: Add support for the TSL2550 i2c-pxa: Support new-style I2C drivers i2c-gpio: Make some internal functions static i2c-gpio: Add support for new-style clients i2c-iop3xx: Switch to static adapter numbering i2c-sis5595: Resolve resource conflict with sis5595 matroxfb: Clean-up i2c header inclusions i2c-nforce2: Add support for SMBus block transactions i2c-mpc: Use i2c_add_numbered_adapter i2c-mv64xxx: Use i2c_add_numbered_adapter i2c-piix4: Add support for the ATI SB700 i2c: New DS1682 chip driver ...
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/DocBook/kernel-api.tmpl55
-rw-r--r--Documentation/feature-removal-schedule.txt7
-rw-r--r--Documentation/i2c/busses/i2c-i8014
-rw-r--r--Documentation/i2c/busses/i2c-piix42
-rw-r--r--Documentation/i2c/busses/i2c-taos-evm46
-rw-r--r--Documentation/i2c/chips/max68752
-rw-r--r--Documentation/i2c/chips/x120538
-rw-r--r--Documentation/i2c/summary2
-rw-r--r--Documentation/i2c/writing-clients2
9 files changed, 113 insertions, 45 deletions
diff --git a/Documentation/DocBook/kernel-api.tmpl b/Documentation/DocBook/kernel-api.tmpl
index 8c5698a8c2e1..46bcff2849bd 100644
--- a/Documentation/DocBook/kernel-api.tmpl
+++ b/Documentation/DocBook/kernel-api.tmpl
@@ -643,6 +643,60 @@ X!Idrivers/video/console/fonts.c
643!Edrivers/spi/spi.c 643!Edrivers/spi/spi.c
644 </chapter> 644 </chapter>
645 645
646 <chapter id="i2c">
647 <title>I<superscript>2</superscript>C and SMBus Subsystem</title>
648
649 <para>
650 I<superscript>2</superscript>C (or without fancy typography, "I2C")
651 is an acronym for the "Inter-IC" bus, a simple bus protocol which is
652 widely used where low data rate communications suffice.
653 Since it's also a licensed trademark, some vendors use another
654 name (such as "Two-Wire Interface", TWI) for the same bus.
655 I2C only needs two signals (SCL for clock, SDA for data), conserving
656 board real estate and minimizing signal quality issues.
657 Most I2C devices use seven bit addresses, and bus speeds of up
658 to 400 kHz; there's a high speed extension (3.4 MHz) that's not yet
659 found wide use.
660 I2C is a multi-master bus; open drain signaling is used to
661 arbitrate between masters, as well as to handshake and to
662 synchronize clocks from slower clients.
663 </para>
664
665 <para>
666 The Linux I2C programming interfaces support only the master
667 side of bus interactions, not the slave side.
668 The programming interface is structured around two kinds of driver,
669 and two kinds of device.
670 An I2C "Adapter Driver" abstracts the controller hardware; it binds
671 to a physical device (perhaps a PCI device or platform_device) and
672 exposes a <structname>struct i2c_adapter</structname> representing
673 each I2C bus segment it manages.
674 On each I2C bus segment will be I2C devices represented by a
675 <structname>struct i2c_client</structname>. Those devices will
676 be bound to a <structname>struct i2c_driver</structname>,
677 which should follow the standard Linux driver model.
678 (At this writing, a legacy model is more widely used.)
679 There are functions to perform various I2C protocol operations; at
680 this writing all such functions are usable only from task context.
681 </para>
682
683 <para>
684 The System Management Bus (SMBus) is a sibling protocol. Most SMBus
685 systems are also I2C conformant. The electrical constraints are
686 tighter for SMBus, and it standardizes particular protocol messages
687 and idioms. Controllers that support I2C can also support most
688 SMBus operations, but SMBus controllers don't support all the protocol
689 options that an I2C controller will.
690 There are functions to perform various SMBus protocol operations,
691 either using I2C primitives or by issuing SMBus commands to
692 i2c_adapter devices which don't support those I2C operations.
693 </para>
694
695!Iinclude/linux/i2c.h
696!Fdrivers/i2c/i2c-boardinfo.c i2c_register_board_info
697!Edrivers/i2c/i2c-core.c
698 </chapter>
699
646 <chapter id="splice"> 700 <chapter id="splice">
647 <title>splice API</title> 701 <title>splice API</title>
648 <para>) 702 <para>)
@@ -654,4 +708,5 @@ X!Idrivers/video/console/fonts.c
654!Ffs/splice.c 708!Ffs/splice.c
655 </chapter> 709 </chapter>
656 710
711
657</book> 712</book>
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index 3a159dac04f5..281458b47d75 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -330,3 +330,10 @@ Who: Tejun Heo <htejun@gmail.com>
330 330
331--------------------------- 331---------------------------
332 332
333What: Legacy RTC drivers (under drivers/i2c/chips)
334When: November 2007
335Why: Obsolete. We have a RTC subsystem with better drivers.
336Who: Jean Delvare <khali@linux-fr.org>
337
338---------------------------
339
diff --git a/Documentation/i2c/busses/i2c-i801 b/Documentation/i2c/busses/i2c-i801
index c34f0db78a30..fe6406f2f9a6 100644
--- a/Documentation/i2c/busses/i2c-i801
+++ b/Documentation/i2c/busses/i2c-i801
@@ -5,8 +5,8 @@ Supported adapters:
5 '810' and '810E' chipsets) 5 '810' and '810E' chipsets)
6 * Intel 82801BA (ICH2 - part of the '815E' chipset) 6 * Intel 82801BA (ICH2 - part of the '815E' chipset)
7 * Intel 82801CA/CAM (ICH3) 7 * Intel 82801CA/CAM (ICH3)
8 * Intel 82801DB (ICH4) (HW PEC supported, 32 byte buffer not supported) 8 * Intel 82801DB (ICH4) (HW PEC supported)
9 * Intel 82801EB/ER (ICH5) (HW PEC supported, 32 byte buffer not supported) 9 * Intel 82801EB/ER (ICH5) (HW PEC supported)
10 * Intel 6300ESB 10 * Intel 6300ESB
11 * Intel 82801FB/FR/FW/FRW (ICH6) 11 * Intel 82801FB/FR/FW/FRW (ICH6)
12 * Intel 82801G (ICH7) 12 * Intel 82801G (ICH7)
diff --git a/Documentation/i2c/busses/i2c-piix4 b/Documentation/i2c/busses/i2c-piix4
index 7cbe43fa2701..fa0c786a8bf5 100644
--- a/Documentation/i2c/busses/i2c-piix4
+++ b/Documentation/i2c/busses/i2c-piix4
@@ -6,7 +6,7 @@ Supported adapters:
6 Datasheet: Publicly available at the Intel website 6 Datasheet: Publicly available at the Intel website
7 * ServerWorks OSB4, CSB5, CSB6 and HT-1000 southbridges 7 * ServerWorks OSB4, CSB5, CSB6 and HT-1000 southbridges
8 Datasheet: Only available via NDA from ServerWorks 8 Datasheet: Only available via NDA from ServerWorks
9 * ATI IXP200, IXP300, IXP400 and SB600 southbridges 9 * ATI IXP200, IXP300, IXP400, SB600 and SB700 southbridges
10 Datasheet: Not publicly available 10 Datasheet: Not publicly available
11 * Standard Microsystems (SMSC) SLC90E66 (Victory66) southbridge 11 * Standard Microsystems (SMSC) SLC90E66 (Victory66) southbridge
12 Datasheet: Publicly available at the SMSC website http://www.smsc.com 12 Datasheet: Publicly available at the SMSC website http://www.smsc.com
diff --git a/Documentation/i2c/busses/i2c-taos-evm b/Documentation/i2c/busses/i2c-taos-evm
new file mode 100644
index 000000000000..9146e33be6dd
--- /dev/null
+++ b/Documentation/i2c/busses/i2c-taos-evm
@@ -0,0 +1,46 @@
1Kernel driver i2c-taos-evm
2
3Author: Jean Delvare <khali@linux-fr.org>
4
5This is a driver for the evaluation modules for TAOS I2C/SMBus chips.
6The modules include an SMBus master with limited capabilities, which can
7be controlled over the serial port. Virtually all evaluation modules
8are supported, but a few lines of code need to be added for each new
9module to instantiate the right I2C chip on the bus. Obviously, a driver
10for the chip in question is also needed.
11
12Currently supported devices are:
13
14* TAOS TSL2550 EVM
15
16For addtional information on TAOS products, please see
17 http://www.taosinc.com/
18
19
20Using this driver
21-----------------
22
23In order to use this driver, you'll need the serport driver, and the
24inputattach tool, which is part of the input-utils package. The following
25commands will tell the kernel that you have a TAOS EVM on the first
26serial port:
27
28# modprobe serport
29# inputattach --taos-evm /dev/ttyS0
30
31
32Technical details
33-----------------
34
35Only 4 SMBus transaction types are supported by the TAOS evaluation
36modules:
37* Receive Byte
38* Send Byte
39* Read Byte
40* Write Byte
41
42The communication protocol is text-based and pretty simple. It is
43described in a PDF document on the CD which comes with the evaluation
44module. The communication is rather slow, because the serial port has
45to operate at 1200 bps. However, I don't think this is a big concern in
46practice, as these modules are meant for evaluation and testing only.
diff --git a/Documentation/i2c/chips/max6875 b/Documentation/i2c/chips/max6875
index 96fec562a8e9..a0cd8af2f408 100644
--- a/Documentation/i2c/chips/max6875
+++ b/Documentation/i2c/chips/max6875
@@ -99,7 +99,7 @@ And then read the data
99 99
100 or 100 or
101 101
102 count = i2c_smbus_read_i2c_block_data(fd, 0x84, buffer); 102 count = i2c_smbus_read_i2c_block_data(fd, 0x84, 16, buffer);
103 103
104The block read should read 16 bytes. 104The block read should read 16 bytes.
1050x84 is the block read command. 1050x84 is the block read command.
diff --git a/Documentation/i2c/chips/x1205 b/Documentation/i2c/chips/x1205
deleted file mode 100644
index 09407c991fe5..000000000000
--- a/Documentation/i2c/chips/x1205
+++ /dev/null
@@ -1,38 +0,0 @@
1Kernel driver x1205
2===================
3
4Supported chips:
5 * Xicor X1205 RTC
6 Prefix: 'x1205'
7 Addresses scanned: none
8 Datasheet: http://www.intersil.com/cda/deviceinfo/0,1477,X1205,00.html
9
10Authors:
11 Karen Spearel <kas11@tampabay.rr.com>,
12 Alessandro Zummo <a.zummo@towertech.it>
13
14Description
15-----------
16
17This module aims to provide complete access to the Xicor X1205 RTC.
18Recently Xicor has merged with Intersil, but the chip is
19still sold under the Xicor brand.
20
21This chip is located at address 0x6f and uses a 2-byte register addressing.
22Two bytes need to be written to read a single register, while most
23other chips just require one and take the second one as the data
24to be written. To prevent corrupting unknown chips, the user must
25explicitely set the probe parameter.
26
27example:
28
29modprobe x1205 probe=0,0x6f
30
31The module supports one more option, hctosys, which is used to set the
32software clock from the x1205. On systems where the x1205 is the
33only hardware rtc, this parameter could be used to achieve a correct
34date/time earlier in the system boot sequence.
35
36example:
37
38modprobe x1205 probe=0,0x6f hctosys=1
diff --git a/Documentation/i2c/summary b/Documentation/i2c/summary
index aea60bf7e8f0..003c7319b8c7 100644
--- a/Documentation/i2c/summary
+++ b/Documentation/i2c/summary
@@ -67,7 +67,6 @@ i2c-proc: The /proc/sys/dev/sensors interface for device (client) drivers
67Algorithm drivers 67Algorithm drivers
68----------------- 68-----------------
69 69
70i2c-algo-8xx: An algorithm for CPM's I2C device in Motorola 8xx processors (NOT BUILT BY DEFAULT)
71i2c-algo-bit: A bit-banging algorithm 70i2c-algo-bit: A bit-banging algorithm
72i2c-algo-pcf: A PCF 8584 style algorithm 71i2c-algo-pcf: A PCF 8584 style algorithm
73i2c-algo-ibm_ocp: An algorithm for the I2C device in IBM 4xx processors (NOT BUILT BY DEFAULT) 72i2c-algo-ibm_ocp: An algorithm for the I2C device in IBM 4xx processors (NOT BUILT BY DEFAULT)
@@ -81,6 +80,5 @@ i2c-pcf-epp: PCF8584 on a EPP parallel port (uses i2c-algo-pcf) (NOT mkpatch
81i2c-philips-par: Philips style parallel port adapter (uses i2c-algo-bit) 80i2c-philips-par: Philips style parallel port adapter (uses i2c-algo-bit)
82i2c-adap-ibm_ocp: IBM 4xx processor I2C device (uses i2c-algo-ibm_ocp) (NOT BUILT BY DEFAULT) 81i2c-adap-ibm_ocp: IBM 4xx processor I2C device (uses i2c-algo-ibm_ocp) (NOT BUILT BY DEFAULT)
83i2c-pport: Primitive parallel port adapter (uses i2c-algo-bit) 82i2c-pport: Primitive parallel port adapter (uses i2c-algo-bit)
84i2c-rpx: RPX board Motorola 8xx I2C device (uses i2c-algo-8xx) (NOT BUILT BY DEFAULT)
85i2c-velleman: Velleman K8000 parallel port adapter (uses i2c-algo-bit) 83i2c-velleman: Velleman K8000 parallel port adapter (uses i2c-algo-bit)
86 84
diff --git a/Documentation/i2c/writing-clients b/Documentation/i2c/writing-clients
index 3d8d36b0ad12..2c170032bf37 100644
--- a/Documentation/i2c/writing-clients
+++ b/Documentation/i2c/writing-clients
@@ -571,7 +571,7 @@ SMBus communication
571 u8 command, u8 length, 571 u8 command, u8 length,
572 u8 *values); 572 u8 *values);
573 extern s32 i2c_smbus_read_i2c_block_data(struct i2c_client * client, 573 extern s32 i2c_smbus_read_i2c_block_data(struct i2c_client * client,
574 u8 command, u8 *values); 574 u8 command, u8 length, u8 *values);
575 575
576These ones were removed in Linux 2.6.10 because they had no users, but could 576These ones were removed in Linux 2.6.10 because they had no users, but could
577be added back later if needed: 577be added back later if needed: