aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-09-23 12:30:48 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2009-09-23 12:30:48 -0400
commit40aba218969914d1b225e742617adb921cf94eae (patch)
tree663ec9cdadbedec5f8eab754cbc590298c1d40be /Documentation
parentb64ada6b23d4a305fb3ca59b79dd38707fc53b69 (diff)
parentcfd550ed3d3bd509b475c7a9d425fc63bf843a7c (diff)
Merge branch 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging
* 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging: i2c: Clearly mark ACPI drivers as such i2c: Add driver for SMBus Control Method Interface i2c-pnx: Correct use of request_region/request_mem_region MAINTAINERS: Add maintainer for AT24 and PCA9564/PCA9665 i2c-piix4: Add AMD SB900 SMBus device ID i2c/chips: Remove deprecated pcf8574 driver i2c/chips: Remove deprecated pca9539 driver i2c/chips: Remove deprecated pcf8575 driver gpio/pcf857x: Copy i2c_device_id from old pcf8574 driver i2c/scx200_acb: Provide more information on bus errors i2c: Provide compatibility links for i2c adapters i2c: Convert i2c adapters to bus devices i2c: Convert i2c clients to a device type i2c/tsl2550: Use combined SMBus transactions i2c-taos-evm: Switch echo off to improve performance i2c: Drop unused i2c_driver.id field
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/i2c/busses/i2c-piix42
-rw-r--r--Documentation/i2c/chips/pca953958
-rw-r--r--Documentation/i2c/chips/pcf857465
-rw-r--r--Documentation/i2c/chips/pcf857569
4 files changed, 2 insertions, 192 deletions
diff --git a/Documentation/i2c/busses/i2c-piix4 b/Documentation/i2c/busses/i2c-piix4
index f889481762b5..c5b37c570554 100644
--- a/Documentation/i2c/busses/i2c-piix4
+++ b/Documentation/i2c/busses/i2c-piix4
@@ -8,6 +8,8 @@ Supported adapters:
8 Datasheet: Only available via NDA from ServerWorks 8 Datasheet: Only available via NDA from ServerWorks
9 * ATI IXP200, IXP300, IXP400, SB600, SB700 and SB800 southbridges 9 * ATI IXP200, IXP300, IXP400, SB600, SB700 and SB800 southbridges
10 Datasheet: Not publicly available 10 Datasheet: Not publicly available
11 * AMD SB900
12 Datasheet: Not publicly available
11 * Standard Microsystems (SMSC) SLC90E66 (Victory66) southbridge 13 * Standard Microsystems (SMSC) SLC90E66 (Victory66) southbridge
12 Datasheet: Publicly available at the SMSC website http://www.smsc.com 14 Datasheet: Publicly available at the SMSC website http://www.smsc.com
13 15
diff --git a/Documentation/i2c/chips/pca9539 b/Documentation/i2c/chips/pca9539
deleted file mode 100644
index 6aff890088b1..000000000000
--- a/Documentation/i2c/chips/pca9539
+++ /dev/null
@@ -1,58 +0,0 @@
1Kernel driver pca9539
2=====================
3
4NOTE: this driver is deprecated and will be dropped soon, use
5drivers/gpio/pca9539.c instead.
6
7Supported chips:
8 * Philips PCA9539
9 Prefix: 'pca9539'
10 Addresses scanned: none
11 Datasheet:
12 http://www.semiconductors.philips.com/acrobat/datasheets/PCA9539_2.pdf
13
14Author: Ben Gardner <bgardner@wabtec.com>
15
16
17Description
18-----------
19
20The Philips PCA9539 is a 16 bit low power I/O device.
21All 16 lines can be individually configured as an input or output.
22The input sense can also be inverted.
23The 16 lines are split between two bytes.
24
25
26Detection
27---------
28
29The PCA9539 is difficult to detect and not commonly found in PC machines,
30so you have to pass the I2C bus and address of the installed PCA9539
31devices explicitly to the driver at load time via the force=... parameter.
32
33
34Sysfs entries
35-------------
36
37Each is a byte that maps to the 8 I/O bits.
38A '0' suffix is for bits 0-7, while '1' is for bits 8-15.
39
40input[01] - read the current value
41output[01] - sets the output value
42direction[01] - direction of each bit: 1=input, 0=output
43invert[01] - toggle the input bit sense
44
45input reads the actual state of the line and is always available.
46The direction defaults to input for all channels.
47
48
49General Remarks
50---------------
51
52Note that each output, direction, and invert entry controls 8 lines.
53You should use the read, modify, write sequence.
54For example. to set output bit 0 of 1.
55 val=$(cat output0)
56 val=$(( $val | 1 ))
57 echo $val > output0
58
diff --git a/Documentation/i2c/chips/pcf8574 b/Documentation/i2c/chips/pcf8574
deleted file mode 100644
index 235815c075ff..000000000000
--- a/Documentation/i2c/chips/pcf8574
+++ /dev/null
@@ -1,65 +0,0 @@
1Kernel driver pcf8574
2=====================
3
4Supported chips:
5 * Philips PCF8574
6 Prefix: 'pcf8574'
7 Addresses scanned: none
8 Datasheet: Publicly available at the Philips Semiconductors website
9 http://www.semiconductors.philips.com/pip/PCF8574P.html
10
11 * Philips PCF8574A
12 Prefix: 'pcf8574a'
13 Addresses scanned: none
14 Datasheet: Publicly available at the Philips Semiconductors website
15 http://www.semiconductors.philips.com/pip/PCF8574P.html
16
17Authors:
18 Frodo Looijaard <frodol@dds.nl>,
19 Philip Edelbrock <phil@netroedge.com>,
20 Dan Eaton <dan.eaton@rocketlogix.com>,
21 Aurelien Jarno <aurelien@aurel32.net>,
22 Jean Delvare <khali@linux-fr.org>,
23
24
25Description
26-----------
27The PCF8574(A) is an 8-bit I/O expander for the I2C bus produced by Philips
28Semiconductors. It is designed to provide a byte I2C interface to up to 16
29separate devices (8 x PCF8574 and 8 x PCF8574A).
30
31This device consists of a quasi-bidirectional port. Each of the eight I/Os
32can be independently used as an input or output. To setup an I/O as an
33input, you have to write a 1 to the corresponding output.
34
35For more informations see the datasheet.
36
37
38Accessing PCF8574(A) via /sys interface
39-------------------------------------
40
41The PCF8574(A) is plainly impossible to detect ! Stupid chip.
42So, you have to pass the I2C bus and address of the installed PCF857A
43and PCF8574A devices explicitly to the driver at load time via the
44force=... parameter.
45
46On detection (i.e. insmod, modprobe et al.), directories are being
47created for each detected PCF8574(A):
48
49/sys/bus/i2c/devices/<0>-<1>/
50where <0> is the bus the chip was detected on (e. g. i2c-0)
51and <1> the chip address ([20..27] or [38..3f]):
52
53(example: /sys/bus/i2c/devices/1-0020/)
54
55Inside these directories, there are two files each:
56read and write (and one file with chip name).
57
58The read file is read-only. Reading gives you the current I/O input
59if the corresponding output is set as 1, otherwise the current output
60value, that is to say 0.
61
62The write file is read/write. Writing a value outputs it on the I/O
63port. Reading returns the last written value. As it is not possible
64to read this value from the chip, you need to write at least once to
65this file before you can read back from it.
diff --git a/Documentation/i2c/chips/pcf8575 b/Documentation/i2c/chips/pcf8575
deleted file mode 100644
index 40b268eb276f..000000000000
--- a/Documentation/i2c/chips/pcf8575
+++ /dev/null
@@ -1,69 +0,0 @@
1About the PCF8575 chip and the pcf8575 kernel driver
2====================================================
3
4The PCF8575 chip is produced by the following manufacturers:
5
6 * Philips NXP
7 http://www.nxp.com/#/pip/cb=[type=product,path=50807/41735/41850,final=PCF8575_3]|pip=[pip=PCF8575_3][0]
8
9 * Texas Instruments
10 http://focus.ti.com/docs/prod/folders/print/pcf8575.html
11
12
13Some vendors sell small PCB's with the PCF8575 mounted on it. You can connect
14such a board to a Linux host via e.g. an USB to I2C interface. Examples of
15PCB boards with a PCF8575:
16
17 * SFE Breakout Board for PCF8575 I2C Expander by RobotShop
18 http://www.robotshop.ca/home/products/robot-parts/electronics/adapters-converters/sfe-pcf8575-i2c-expander-board.html
19
20 * Breakout Board for PCF8575 I2C Expander by Spark Fun Electronics
21 http://www.sparkfun.com/commerce/product_info.php?products_id=8130
22
23
24Description
25-----------
26The PCF8575 chip is a 16-bit I/O expander for the I2C bus. Up to eight of
27these chips can be connected to the same I2C bus. You can find this
28chip on some custom designed hardware, but you won't find it on PC
29motherboards.
30
31The PCF8575 chip consists of a 16-bit quasi-bidirectional port and an I2C-bus
32interface. Each of the sixteen I/O's can be independently used as an input or
33an output. To set up an I/O pin as an input, you have to write a 1 to the
34corresponding output.
35
36For more information please see the datasheet.
37
38
39Detection
40---------
41
42There is no method known to detect whether a chip on a given I2C address is
43a PCF8575 or whether it is any other I2C device, so you have to pass the I2C
44bus and address of the installed PCF8575 devices explicitly to the driver at
45load time via the force=... parameter.
46
47/sys interface
48--------------
49
50For each address on which a PCF8575 chip was found or forced the following
51files will be created under /sys:
52* /sys/bus/i2c/devices/<bus>-<address>/read
53* /sys/bus/i2c/devices/<bus>-<address>/write
54where bus is the I2C bus number (0, 1, ...) and address is the four-digit
55hexadecimal representation of the 7-bit I2C address of the PCF8575
56(0020 .. 0027).
57
58The read file is read-only. Reading it will trigger an I2C read and will hence
59report the current input state for the pins configured as inputs, and the
60current output value for the pins configured as outputs.
61
62The write file is read-write. Writing a value to it will configure all pins
63as output for which the corresponding bit is zero. Reading the write file will
64return the value last written, or -EAGAIN if no value has yet been written to
65the write file.
66
67On module initialization the configuration of the chip is not changed -- the
68chip is left in the state it was already configured in through either power-up
69or through previous I2C write actions.